From 7cc618b32c8c37b5b452d8d85f50238f5a9f2d78 Mon Sep 17 00:00:00 2001 From: Josh Holland Date: Tue, 26 Jan 2016 17:35:35 +0000 Subject: [PATCH] Add alt attributes for images on front page Some images have an empty alt attribute (alt=""); this isn't a mistake, it's part of the HTML spec for images that don't add any information. Debatably, some images marked up as such with this commit do add information, but that information (e.g. what the Habitica UI looks like from the intro image) isn't likely to be useful to someone not able to see. It's also difficult to convey purely visual concepts like the arrows with alt-text, especially as the arrows themselves are not images and therefore cannot have an alt attribute. Fixes #6560. --- common/locales/en/front.json | 30 +++++++++- website/views/static/front.jade | 101 ++++++++++++++++---------------- 2 files changed, 80 insertions(+), 51 deletions(-) diff --git a/common/locales/en/front.json b/common/locales/en/front.json index 186ec48753..44b34b91d2 100644 --- a/common/locales/en/front.json +++ b/common/locales/en/front.json @@ -194,5 +194,33 @@ "landingCopy2": "Battle monsters with friends to stay accountable to your goals.", "landingCopy3": "Join over <%= userCount %> people having fun as they improve their lives.", "alreadyHaveAccount": "I already have an account!", - "getStartedNow": "Get Started Now!" + "getStartedNow": "Get Started Now!", + "altAttrNavLogo": "Habitica home", + "altAttrLifehacker": "Lifehacker", + "altAttrNewYorkTimes": "The New York Times", + "altAttrMakeUseOf": "MakeUseOf", + "altAttrForbes": "Forbes", + "altAttrCnet": "CNet", + "altAttrFastCompany": "Fast Company", + "altAttrKickstarter": "Kickstarter", + "altAttrDiscover": "Discover Magazine", + "altAttrFrabjabulous": "Frabjabulous: ", + "altAttrAlexandraSo": "_AlexandraSo_: ", + "altAttrEvaGantz": "EvaGantz: ", + "altAttrSupermouse35": "supermouse35: ", + "altAttrAlthaire": "Althaire: ", + "altAttrInfH": "InfH: ", + "altAttrDreiM": "Drei-M: ", + "altAttrKazui": "Kazui: ", + "altAttrAutumnesquirrel": "autumnesquirrel: ", + "altAttrIrishfeet123": "irishfeet123: ", + "altAttrElmi": "Elmi: ", + "altAttr16bitFil": "16bitFil: ", + "altAttrZelahMeyer": "Zelah Meyer: ", + "altAttrSkysailor": "skysailor: ", + "altAttrIonic": "Ionic", + "altAttrWebstorm": "WebStorm", + "altAttrGithub": "GitHub", + "altAttrTrello": "Trello", + "altAttrSlack": "Slack" } diff --git a/website/views/static/front.jade b/website/views/static/front.jade index 1ded830cfb..c1a2a5683e 100644 --- a/website/views/static/front.jade +++ b/website/views/static/front.jade @@ -60,7 +60,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') span.icon-bar span.icon-bar a.navbar-brand(href='#') - img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/habitica_lockup2_desat.png') + img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/habitica_lockup2_desat.png', alt=env.t('altAttrNavLogo')) // Collect the nav links, forms, and other content for toggling #bs-example-navbar-collapse-1.collapse.navbar-collapse ul.nav.navbar-nav.navbar-right @@ -78,7 +78,8 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') button#header-play-button.btn.btn-primary.navbar-btn.navbar-right(ng-click='playButtonClick()')= env.t('playButtonFull') #intro h1=env.t('motivate1') - img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/intro.png') + img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/intro.png', alt='') + //- The empty alt attribute isn't a mistake, it's part of the spec for purely decorative images that add no information // insert intro images .introcall.bg-success h4= env.t('joinOthers', {userCount:userCount}) @@ -87,14 +88,14 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .presslogos.text-center.img-rendering-auto = env.t('featuredIn') br - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/lifehacker.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/nyt-logo.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/makeuseof.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Forbes_logo.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Cnetlogo.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Fast-Company-logo.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/kickstarter-logo.png') - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/discover-logo.png') + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/lifehacker.png', alt=env.t('altAttrLifehacker')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/nyt-logo.png', alt=env.t('altAttrNewYorkTimes')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/makeuseof.png', alt=env.t('altAttrMakeUseOf')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Forbes_logo.png', alt=env.t('altAttrForbes')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Cnetlogo.png', alt=env.t('altAttrCnet')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/Fast-Company-logo.png', alt=env.t('altAttrFastCompany')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/kickstarter-logo.png', alt=env.t('altAttrKickstarter')) + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/discover-logo.png', alt=env.t('altAttrDiscover')) #intro-text .container-fluid .row @@ -106,7 +107,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .row .col-md-3.col-md-offset-1 h2= env.t('testimonialHeading') - img.img-say.img-responsive.visible-lg-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/publicSpaces.png') + img.img-say.img-responsive.visible-lg-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/publicSpaces.png', alt='') // Testimonials .col-md-8.col-sm-10.col-sx-10 #quote-carousel.carousel.slide(data-interval='10000', data-ride='carousel') @@ -211,16 +212,16 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .task-btn(style='display: inline-block; width: 1.62765em; height: 1.62765em; padding: 0px; margin:0px; line-height: 1.62765; text-align: center; color: rgb(34, 34, 34); float:left; cursor: pointer; vertical-align: top; left:0px; position:relative; background-color: rgb(220, 93, 93); border-right: 1px solid rgba(0, 0, 0, 0.25);') + .task-btn(style='display: inline-block; width: 1.62765em; height: 1.62765em; padding: 0px; margin:0px; line-height: 1.62765; text-align: center; color: rgb(34, 34, 34); float:left; cursor: pointer; vertical-align: top; background-color: rgb(220, 93, 93); border-right: 0px none;') - .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('businessSample5') - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/coding.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/coding.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='frabjabulous', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/frabjabulous.png') + img(data-toggle='tooltip', data-placement='top', title='frabjabulous', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/frabjabulous.png', alt=env.t('altAttrFrabjabulous')) .usetweet.tweet.popover.right .arrow .popover-content = env.t('frabjabulousQuote') .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='_AlexandraSo_', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/AlexandraSo.png') + img(data-toggle='tooltip', data-placement='top', title='_AlexandraSo_', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/AlexandraSo.png', alt=env.t('altAttrAlexandraSo')) .usetweet.tweet.popover.right .arrow .popover-content @@ -255,16 +256,16 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .task-btn(style='display: inline-block; width: 1.62765em; height: 1.62765em; padding: 0px; margin:0px; line-height: 1.62765; text-align: center; color: rgb(34, 34, 34); float:left; cursor: pointer; vertical-align: top; left:0px; position:relative; background-color: rgb(255, 207, 66); border-right: 1px solid rgba(0, 0, 0, 0.25);') + |   .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('healthSample5') - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/clipart-rosemonkeyct-meditation.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/clipart-rosemonkeyct-meditation.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='EvaGantz', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/EvaGantz.png') + img(data-toggle='tooltip', data-placement='top', title='EvaGantz', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/EvaGantz.png', alt=env.t('altAttrEvaGantz')) .usetweet.tweet.popover.right .arrow .popover-content = env.t('evagantzQuote') .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='supermouse35', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/supermouse35.png') + img(data-toggle='tooltip', data-placement='top', title='supermouse35', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/supermouse35.png', alt=env.t('altAttrSupermouse35')) .usetweet.tweet.popover.right .arrow .popover-content @@ -293,10 +294,10 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') |   .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('teamSample3') br - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/publicSpaces.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/publicSpaces.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='Althaire', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Althaire.png') + img(data-toggle='tooltip', data-placement='top', title='Althaire', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Althaire.png', alt=env.t('altAttrAlthaire')) .usetweet.tweet.popover.right .arrow .popover-content @@ -331,15 +332,15 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .task-btn(style='display: inline-block; width: 1.62765em; height: 1.62765em; padding: 0px; margin:0px; line-height: 1.62765; text-align: center; color: rgb(34, 34, 34); float:left; cursor: pointer; vertical-align: top; left:0px; position:relative; background-color: rgb(90, 98, 223); border-right: 1px solid rgba(0, 0, 0, 0.25);') + .task-btn(style='display: inline-block; width: 1.62765em; height: 1.62765em; padding: 0px; margin:0px; line-height: 1.62765; text-align: center; color: rgb(34, 34, 34); float:left; cursor: pointer; vertical-align: top; background-color: rgb(90, 98, 223); border-right: 0px none;') - .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('schoolSample5') - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/reading.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/reading.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='InfH', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/InfH.png') + img(data-toggle='tooltip', data-placement='top', title='InfH', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/InfH.png', alt=env.t('altAttrInfH')) .usetweet.tweet.popover.right .arrow .popover-content= env.t('infhQuote') .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='Drei-M', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Drei-M.png') + img(data-toggle='tooltip', data-placement='top', title='Drei-M', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Drei-M.png', alt=env.t('altAttrDreiM')) .usetweet.tweet.popover.right .arrow .popover-content @@ -368,10 +369,10 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') |   .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('goalSample3') br - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/gaining_an_achievement_by_cosmic_caterpillar-d7uyv5z.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/gaining_an_achievement_by_cosmic_caterpillar-d7uyv5z.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='Kazui', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Kazui.png') + img(data-toggle='tooltip', data-placement='top', title='Kazui', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Kazui.png', alt=env.t('altAttrKazui')) .usetweet.tweet.popover.right .arrow .popover-content @@ -400,15 +401,15 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') |   .task-desc(style='display: inline-block; font-family: Lato,sans-serif; padding: 0.6em 0px 0em 1em; letter-spacing: normal; float:left; word-wrap: break-word;')= env.t('choreSample3') br - img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/dusting_by_leephon.png') + img.sample-img.visible-lg-inline-block(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/uses/dusting_by_leephon.png', alt='') .usetweet-groups.col-lg-5.col-md-6.visible-lg-inline-block.visible-md-inline-block .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='autumnesquirrel', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/autumnesquirrel.png') + img(data-toggle='tooltip', data-placement='top', title='autumnesquirrel', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/autumnesquirrel.png', alt=env.t('altAttrAutumnesquirrel')) .usetweet.tweet.popover.right .arrow .popover-content= env.t('autumnesquirrelQuote') .usetweet-group - img(data-toggle='tooltip', data-placement='top', title='irishfeet123', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/irishfeet123.png') + img(data-toggle='tooltip', data-placement='top', title='irishfeet123', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/irishfeet123.png', alt=env.t('altAttrIrishfeet123')) .usetweet.tweet.popover.right .arrow .popover-content @@ -428,7 +429,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') br = env.t('rewardByline2') .scrolltweet.hidden-xs.hidden-sm - img.img-rendering-auto.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='Elmi', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Elmi.png') + img.img-rendering-auto.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='Elmi', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Elmi.png', alt=env.t('altAttrElmi')) .tweet.popover.right.pull-right .arrow .popover-content= env.t('elmiQuote') @@ -438,12 +439,12 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') span.glyphicon.glyphicon-check h2 span.glyphicon.glyphicon-arrow-down - img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png') - img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png') + img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png', alt='') + img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png', alt='') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/misc/shop_gold.png', alt='') h2 span.glyphicon.glyphicon-arrow-down - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/TVreward.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/TVreward.png', alt='') button.btn.btn-primary.btn-lg.fixedcta.gamifybutton(ng-click='playButtonClick()')= env.t('gamifyButton') section#levels.container-fluid .row @@ -457,17 +458,17 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') br = env.t('unlockByline2') .scrolltweet.hidden-xs.hidden-sm - img.img-rendering-auto.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='16bitFil', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/16bitFil.png') + img.img-rendering-auto.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='16bitFil', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/16bitFil.png', alt=env.t('altAttr16bitFil')) .tweet.popover.right.pull-right .arrow .popover-content = env.t('sixteenBitFilQuote') .col-lg-4.col-md-4.col-lg-offset-1.col-sm-8.well.col-xs-8.col-xs-offset-2.col-sm-offset-2 .avatarscroll - img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/avatar/avatarstatic.png') + img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/avatar/avatarstatic.png', alt='') h2 span.glyphicon.glyphicon-arrow-down - img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/SAMPLEadventurers.png') + img.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/SAMPLEadventurers.png', alt='') button.btn.btn-primary.btn-lg.fixedcta.gamifybutton(ng-click='playButtonClick()')= env.t('gamifyButton') section#health.bg-danger.container-fluid .row @@ -478,7 +479,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') h2= env.t('punishHeading2') p.sectioninfo= env.t('punishByline') .scrolltweet.hidden-xs.hidden-sm - img.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='Zelah Meyer', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Zelah_Meyer.png') + img.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='Zelah Meyer', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/Zelah_Meyer.png', alt=env.t('altAttrZelahMeyer')) .tweet.popover.right.pull-right .arrow .popover-content @@ -513,13 +514,13 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') br = env.t('questByline2') .scrolltweet.hidden-xs.hidden-sm - img.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='skysailor', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/skysailor.png') + img.scrolltweet-image(data-toggle='tooltip', data-placement='top', title='skysailor', src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/testimonials/skysailor.png', alt=env.t('altAttrSkysailor')) .tweet.popover.right.pull-right .arrow .popover-content = env.t('skysailorQuote') .col-lg-4.col-md-6.col-md-offset-1.col-lg-offset-1.col-sm-10.well.col-xs-10.col-xs-offset-1.col-sm-offset-1.well-lg - img.clearfix.img-responsive.center-block(style='padding-bottom:30px;', src="https://d2afqr2xdmyzvu.cloudfront.net/front/images/Quest_dilatory_dragonSmall.png") + img.clearfix.img-responsive.center-block(style='padding-bottom:30px;', src="https://d2afqr2xdmyzvu.cloudfront.net/front/images/Quest_dilatory_dragonSmall.png", alt='') .row .col-lg-5.col-md-5.col-sm-5.col-sm-offset-0.col-xs-5.col-xs-offset-0 .health-progress @@ -529,7 +530,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .bar div(style='width:20%;')   .quest-friend-img - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/party/AnnaCosplay.png') + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/party/AnnaCosplay.png', alt='') .col-md-1.col-sm-1.col-xs-1 h2 span.glyphicon.glyphicon-arrow-right @@ -541,7 +542,7 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .bar div(style='width:0%;')   .quest-friend-img - img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/party/GrimReaper.png') + img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/party/GrimReaper.png', alt='') button.btn.btn-primary.btn-lg.fixedcta.gamifybutton(ng-click='playButtonClick()')= env.t('gamifyButton') section#features.bg-info.container-fluid .row @@ -549,29 +550,29 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .row .col-md-4.col-md-offset-2.col-sm-6 .feature-img - img.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Mount.png') + img.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Mount.png', alt='') .featuretext h4= env.t('featurePetHeading') p = env.t('featurePetByline') .col-md-4.col-sm-6 .feature-img.center-block - img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/achievement-triadbingo.png') - img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/achievement-perfect.png') + img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/achievement-triadbingo.png', alt='') + img.img-rendering-auto(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/achievement-perfect.png', alt='') .featuretext h4= env.t('featureAchievementHeading') p= env.t('featureAchievementByline') .row .col-md-4.col-md-offset-2.col-sm-6 .feature-img - img.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Promo_springclasses2015.png') + img.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Promo_springclasses2015.png', alt='') .featuretext h4= env.t('featureEquipHeading') p = env.t('featureEquipByline') .col-md-4.col-sm-6 .feature-img - img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Party-Header.png') + img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/Party-Header.png', alt='') .featuretext h4= env.t('featureSocialHeading') p @@ -590,19 +591,19 @@ html(ng-app='habitrpg', ng-controller='RootCtrl') .row .col-lg-2.col-md-2.col-md-offset-1.col-sm-4.col-sm-offset-1.col-xs-6.col-xs-offset-1 a(href='http://ionicframework.com/') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/ionic-logo-horizontal-transparent.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/ionic-logo-horizontal-transparent.png', alt=env.t('altAttrIonic')) .col-lg-2.col-lg-offset-0.col-md-2.col-md-offset-0.col-sm-4.col-sm-offset-1.col-xs-6.col-xs-offset-1 a(href='https://www.jetbrains.com/webstorm/') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/logo_webstorm.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/logo_webstorm.png', alt=env.t('altAttrWebstorm')) .col-lg-2.col-lg-offset-0.col-md-2.col-md-offset-0.col-sm-4.col-sm-offset-1.col-xs-6.col-xs-offset-1 a(href='http://github.com/') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/GitHub_Logo.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/GitHub_Logo.png', alt=env.t('altAttrGithub')) .col-lg-2.col-lg-offset-0.col-md-2.col-md-offset-0.col-sm-4.col-sm-offset-1.col-xs-6.col-xs-offset-1 a(href='https://trello.com/') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/trello-logo-blue.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/trello-logo-blue.png', alt=env.t('altAttrTrello')) .col-lg-2.col-lg-offset-0.col-md-2.col-md-offset-0.col-sm-4.col-sm-offset-1.col-xs-6.col-xs-offset-1 a(href='https://slack.com/') - img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/landing_slack_hash_wordmark_logo.png') + img.img-rendering-auto.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/landing_slack_hash_wordmark_logo.png', alt=env.t('altAttrSlack')) .row.footer-content include ../shared/footer