Uh, presently, I am a friendandengineeratSlack, where I focusonworkingwith a teamofamazingfriendandengineersbuildingourinternaldesignsystemandcomponentLordlibrary A specifically a buildingoutreactcomponentsthatcomprise a foundationallayeroftheslackclient, youknow, inlove.
Um, so I'vebeenworkinginthetechindustry a littlebitover 10 yearsatthispoint.
Andifthereisonething I amfamiliarwith, it's failure.
Uh, forexample, justtodayatlunch, I gotmy, uh, ColbyandfriedchickenandwentbythepooltostaywithJonathantohavefoodandanyrealized, but 10 minuteslater, myshorttorollwithbecause I satin a poolofwater.
BeinginaccessiblesincethenofInternethascometogethertoput a petitiontohireoneofmyamazingandtalentedCooper's MeenaMarkham.
Youmayhaveheardofher, um, remedythesituation.
So I dohopeyouwillallgoandsignthispetitionsowecanresolvethismatterquickly.
So I amnotanaccessibilityexpert.
Butluckily, when I receivedthismessagefromGeorgeonouraccessibilityteam, itwasonlyafteraninternallunch, andallthathewaslettingmeknowwasthat I had a lotmoretolearnand a littlebitofworktodobefore I couldlaunchthistothegeneralpublic.
Sincethen, I havegonethrough a tonoftraining, and I'velearned a lotaboutthecomplexitiesofscreenreaders, howtotestforaccessibilityandhowtobuildinclusiveexperiences.
Andthat's what I wanttosharewithyoualltoday.
Asitturnsout, I amnotanaccessibilityexpert, butyoudon't needtobetodothiskindofwork.
I thinksomebodymentionedoneearlierWebgamewhereyoucaninputtheearlofyourwebsite, andit'lldo a scantokindofcheckifthereareanyin, uh, areasthatdon't meettheguidelines.
Itshouldcomeasnosurprise.
Butusinglightgreattestson a whitebackgrounddoesnotmeetaccessibilitystandards.
Thisreferstonavigatingyourwebsiteentirelywith a keyboardonLee, usingthecommonpatternsoftabandshifttabtomovebackwardsandforwardsthroughelementsandthenusingthingslikethearrowkeysenterEscapeinSpaceBartointeractwiththoseelements.
Um, everyyearinMayareaccessibility.
Teamhosts a challengefortheGlobalAccessibilityAwarenessDay, whereweencouragealloftheemployeesthatslacktotakeourmiceandputtheminthedeskdrawerandonLeeusingkeyboards, navigateourproducts.
Like, um, I triedthislastyear, and I wasreally, reallysurprisedtoseewhatareas I wasabletomakemoreefficientinwhatareas I gotstuckbecause I wasn't familiarwiththecommonpatternsthatexisted.
Wealsohave a handypelletofkeyboardshortcutsthatyoucanaccessusingcommandforwardslashum, andthisisawesomebecauseitnotonlyhelpsfolkswithlimitedmobility, butitalsohelpsinabletoenablepeopletobecomepowerusersofslack.
Youarecurrentlyon a togglebuttoninsideof a toolbartoselectordeselectthischeckboxpresscontroloptionspacetonavigateitemsonthistwoofourpresscontroloptionandthen a barrowpiledtogglebutton.
Youarecurrentlyon a togglebuttoninsideof a toolbartoselectordeselectthischeckboxpresscontroloptionspacetonavigateitemsonthistwoofourpresscontroloptionandthen a barrowpiledtogglebutton.
Wow!
Togglebutton.
Cool.
Um, okay.
Soinadditiontothesebasics, screenwritersalsouse a toolknownastheroader.
Andthisisoneofthemostimportantreasonsyoushouldmakesureyouhavecleanandsemantichte e mailbecausetherotorscansyourcontentandthat's whatitusestopopulatethemenus.
Andthey'recontainedtogetheragainst, like a whitebackgroundbox.
Obviously, they'rerelatedelements.
Theproblemthereiswithmyinitialassumption, eventhoughtometheywerevisuallydistinct, a separateelementsto a screenreader, theydonothavethebenefitofthosevisualcues.
Sowewasstilltreatingitastwoseparateelement.
Instead, I neededtoswitchto a completelydifferentunderlyingarchitecturefromtwocomponentstoeonecomponent.
Sothisway, usingtheselect.
Eventhoughitalsohas a textinputandoptionslist, thescreenreadercanonlymaintainfocusononeelementat a time.
Sothismarinareaderwillfocusontheselect.
Andthentheinternalchildcomponentshave a wayofupdatingtheparentcomponenttothentellthescreenreaderwhatishappening, whethersomebodyisnavigatingupanddowninthelistorifthey'retypingintothebox.
Buthowdoesthatevenwork?
Weird.
Okay, sobacktothathandy w three c document.
They'vealsodefinedan A P I forindicatingtoassistivetechnologieswhatishappeningonscreen.
What's happeningbehindthescenesisthatthisaccessibilityAP I parsesthedomonyourwebsitecommunicatesthattothescreenreaderorwhateverassistivetechnologyisbeingused.
Andthenthatinformationgetsout.
Putto a humanontheotherside.
Sospoileralert.
ButjustinthesamewaythatbrowserssometimeshavetroublerenderingCSS, theycanalsosometimeshave a littlebittroubleunderstandingyourarialabels.
Thisisnot a hugeproblem, just a remindertoalwaysbetestingthoroughlycrosscrossplatformandcrossbrowser, as I'm surethatyouallalready d'oh!
However, as I mentioned, we'rebuildingcomponentlibrariesandsincetheyhavetosupport a multitudeofdifferentusecases, um, sometimesdoesn't look a simpleandinsideitlooks a littlebitmorelikethis.
Onceyougettothecodelevel, thingsstartlooking a littlebitmorelikethiswhereyoumayhave a featurespreadoutacross a fewseparatecomponents, andthenyoucanusethingslikejavascriptutilitiestobuildandconnecttheideasthatareinformingyourariaattributes.
Okay, whendoyouhaveeverythingbuiltoutproperly?
Here's what a comboboxshouldsoundlike.
FilterforauctionlistCombobox.
Certainsuggestionsstartthethreat.
Slackandreactionslackcopylakeslack.
Deletemessage.
Blackclickable t Hey, orstarmessageBlack.
Startthethreats.
BlackStarMessageBlack.
Okay, cool.
Soyouallareon a roll.
Thankyouagainforstickingthroughit.
Wegotonemoresectiontogo.
Okay.
Thenextsection.
Youknoweverybodyhere.
Oh, okay.
I knoweverybodyherelovesbugs, buthowdoyoupreventbugsfromhappeninginthefirstplace?
I'vegot a fewgoingover a fewtips, butlet's stepbacktowhatthingslooklike.
It's like a yearagowhen I joinedtherewas 75 frontandengineers.
Soevenifyoudon't havethebenefitofof a componentlibraryordesignsystemor Q A teamandyou'resoloadofworkingbyyourself, hopefullythis a starterkitisenoughtogetyoulearningtobecomeyourownresidentexpert.
Awesome.
Sonicejob, everybody.
You'velearnedthis, hon, and I knowthatyou'regonnaapplyallthesebestpracticesonceyou'rebackintherealworld.
But I wantyoualltostopfor a minuteandthinkabouthowyougot.
Sowhereyou'resittingheretodayin a conferenceroominHawaii.
MaybeyoufirstheardaboutthisconferenceonTwitter.
Youthoughtitsoundedcool.
Younavigatedontotheirwebsite.
YoureallylikethelineupontheideaoflearningJavaScripton a beach?
Andwhile I donotwantthistypeofgatekeepingbehaviorinourindustry, I dowantustoholdourselvesandeachothermoreaccountabletomakesurethatwe'reresponsiblewithourcodeandthatwe'rebuildinganInternetthatissafeforotherhumanstouseto.
I hopethatthisissomethingthatyourememberonceyou'reallbackandyouhave a P M breathingdownyourneckaboutanupcomingdeadline, yourpeersaretrustingyourexpertiseinallthingsfrontend.
Andthatincludesknowingthatfortohave a completeWebproject, ithastobeaccessible, Eventhoughittakes a littlebitmoretimeoffront.
Prioritizinginclusivityanddesigningforthemostmarginalizedgroupsactuallymakes a betterexperienceforeveryone.
Uh, therearecountlessexamplesofthis, too.
I'm notsurethelasttimeyouenjoyed a videothathadclosecaptioningorifyouenjoytextmessagingoranyvoiceactivatedsoftware, allofthesehavetheirrootsinassistivetechnology, so I hopeyouwilltake.
Thisis a signthatyoutwocanbuildforaccessibility, evenifyou'renotanexpert.