Placeholder Image

Subtitles section Play video

  • everybody, Uh, how's everybody doing?

  • Get cool.

  • Uncle s.

  • Oh, my name is Trish.

  • You could also find me at at Beef on the Internet.

  • And my pronouns are, See her.

  • Uh, presently, I am a friend and engineer at Slack, where I focus on working with a team of amazing friend and engineers building our internal design system and component Lord library A specifically a building out react components that comprise a foundational layer of the slack client, you know, in love.

  • Um, so I've been working in the tech industry a little bit over 10 years at this point.

  • And if there is one thing I am familiar with, it's failure.

  • But I'm here to tell you that that's okay.

  • Everybody fails.

  • Um, we feel and then we learn, and then we probably fail again in an equally spectacular way.

  • Uh, for example, just today at lunch, I got my, uh, Colby and fried chicken and went by the pool to stay with Jonathan to have food and any realized, but 10 minutes later, my short to roll with because I sat in a pool of water.

  • Um, which then, of course, like, luckily went upstairs Change my pants.

  • And then I realized all I was wearing these.

  • I wasn't wearing the shorts because I spilled food on them yesterday.

  • Uh, that's okay.

  • I will learn my lesson.

  • And tomorrow I'll look, if I sit down before sitting in another pool of water.

  • So good.

  • Um, I'm sure as friend and engineers yourselves, you are all equally familiar with this feeling of failure.

  • Everybody knows browser rendering inconsistencies often feel like you're in the Wild West.

  • Dealing with Web compilers are kind of like a black box of nightmares.

  • And then there's the dreaded last step of any project accessibility.

  • So allowing me to share a personal story of failure, um, has anybody here you slack before?

  • Cool.

  • Cool.

  • Uh, okay.

  • So maybe a little bit over a year ago, I was getting ready to launch my first big feature while working at Slack, and I felt super excited.

  • I was gonna share this new tool with everybody here who raised their hands.

  • A bunch of my friends, a little bit of my family.

  • It was great, great feeling.

  • And then I got a message like this one.

  • So this raids hatred.

  • Uh, congrats on the lunch By the way.

  • Are you using options list?

  • Because I'm not sure if you realize, but your feature is completely inaccessible.

  • Uh, that means I can't use it with my screen reader.

  • So sorry to rain on your parade, Love George out.

  • Uh, it was really hard for me not to feel like a complete failure at this point.

  • Thankfully, at Slack, I'm really proud to say that we treat accessibility bugs as broken functionality and product blockers.

  • What and Web accessibility bug means is that there's real humans out there on the Internet who cannot interact with your website or your Web product.

  • And for Slack, where we have over 10 million users online daily being unable to communicate with their teammates, interact with content, uh, or being blocked from your doing, doing your work at all.

  • It is completely unacceptable.

  • But accessibility is by no means easy.

  • Even the Queen Bee herself had some issues with this earlier this year when she was sued over her website, Beyonce dot com.

  • Being inaccessible since then of Internet has come together to put a petition to hire one of my amazing and talented Cooper's Meena Markham.

  • You may have heard of her, um, remedy the situation.

  • So I do hope you will all go and sign this petition so we can resolve this matter quickly.

  • So I am not an accessibility expert.

  • But luckily, when I received this message from George on our accessibility team, it was only after an internal lunch, and all that he was letting me know was that I had a lot more to learn and a little bit of work to do before I could launch this to the general public.

  • Since then, I have gone through a ton of training, and I've learned a lot about the complexities of screen readers, how to test for accessibility and howto build inclusive experiences.

  • And that's what I want to share with you all today.

  • As it turns out, I am not an accessibility expert, but you don't need to be to do this kind of work.

  • So let's flip the script.

  • And instead of talking about how to fail, let's talk about how not the failed at accessibility Cool.

  • Yes, awesome.

  • All right, so we'll cover three main areas today.

  • First, how do you know whether or not your website is accessible or inaccessible?

  • To start with uh, Secondly, once you've identified some bugs.

  • How do you go about coating to fix those bugs?

  • And then, lastly, how can you adapt your process to prevent bugs like that from happening in the first place?

  • Okay, kicking things off with testing.

  • Um, so what is accessibility you mean at all?

  • It's a very broad, the scope term, but luckily it is thoroughly documented.

  • If you've ever had to look up the definition of a nature channel element or a CSS property, you may be familiar with the W three c organization.

  • Not only do they have that handy resource, but they also have what is known as the Web content, accessibility guidelines or W CAG for short.

  • So if you visit this website, you will find a very lovely text heavy for Bo's document, where you can learn anything that you've ever wanted to know about accessibility, some light reading, if you will.

  • Um, what they still are, what feature what makes features on the Web accessible or not accessible, and they grade them based on level a double a triple A.

  • It's like we shoot so have double a compliance for all of our features that we release and wherever possible, triple a compliance as well.

  • Cool.

  • So the spectrum of human abilities and the tech that exists to support them is infinitely broad.

  • And while I'd love to cover everything, uh, got like 20 minutes left so we're going to start with hello World of accessibility, if you will.

  • Eso.

  • Here's some four areas that you can get started with testing today.

  • Cool.

  • 1st 1 is color.

  • Contrast the Teenage Mutant Ninja turtle Talk earlier.

  • Help preface this so it's awesome.

  • Second up is user interface zoom, then keyboard interaction model and lastly, building in screen reader support.

  • Okay, so what is color contrast mean?

  • We got a brief look at this earlier, but in general, we're not trying to analyze every single color across your beautiful website and said we're trying to make sure that the information and interactive elements that you have are understandable and perceivable by all users, and that specifically is looking at things like the normal text on your website.

  • Large sex on your website, which is 14 point and bold and above or 18 point and above, and also interactive elk or user interface elements such as iconography and form elements.

  • There is a super handy tool called the Color Contrast Analyzer, where you can either input your hex values or even just use the eyedropper tool.

  • And it will immediately tell you at the bottom whether or not you're hitting those contrast standards.

  • There are also a few websites.

  • I think somebody mentioned one earlier Web game where you can input the earl of your website, and it'll do a scan to kind of check if there are any in, uh, areas that don't meet the guidelines.

  • It should come as no surprise.

  • But using light great tests on a white background does not meet accessibility standards.

  • Okay, next up, we have user interface zoom and this, uh, when my co worker jokes that this is the easiest one to test for.

  • But it's also the easiest one for people to forget.

  • User interface Zoom refers to the browsers built in functionality to zoom into your Web content, using either Apple Plus minus or control plus minus.

  • It's like our designers provide mock ups at all of the levels of zoom that we support and the easiest way for you to go about testing.

  • This is just doing that you could take your website hit Apple plus plus and then spend like a week using your website like that.

  • And let's try to see if you notice anything where areas feel funky or broken next.

  • That keyboard interaction, model or keyboard inevitability.

  • This refers to navigating your website entirely with a keyboard on Lee, using the common patterns of tab and shift tab to move backwards and forwards through elements and then using things like the arrow keys enter Escape in Space Bar to interact with those elements.

  • Um, every year in May are accessibility.

  • Team hosts a challenge for the Global Accessibility Awareness Day, where we encourage all of the employees that slack to take our mice and put them in the desk drawer and on Lee using keyboards, navigate our products.

  • Like, um, I tried this last year, and I was really, really surprised to see what areas I was able to make more efficient in what areas I got stuck because I wasn't familiar with the common patterns that existed.

  • We also have a handy pellet of keyboard shortcuts that you can access using command forward slash um, and this is awesome because it not only helps folks with limited mobility, but it also helps in able to enable people to become power users of slack.

  • So once you've got your keyboard navigation down, the guidelines also require you to indicate what has current focus.

  • Um, you can tell here with the focus ring.

  • It's like the blue fuzzy circle that follows around where you're navigating with its have.

  • And lastly, if you are navigating around and you notice that you can tap into an area, but you can't tap away from it, this is what's known as a keyboard trap.

  • And it's something that you should avoid like this cat.

  • Very sad inside.

  • Uh, cool.

  • Okay, The last but not least, we're moving into some trickier territory and testing for screen readers support.

  • Um, Luckily, if you've already cleaned up your keyboard interaction model, you're 50 halfway there to making sure your website is screen reader supported.

  • If you are using a Mac, there's software built in to help you test this, and you can access it through the systems preference panel than the accessibility pain and then enable voice over.

  • They're also free software options for PCs and other platforms like N V.

  • D a.

  • Okay.

  • Anybody here used age Green reader before.

  • Oh, good.

  • Okay, so let's let's listen to a quick example of what it's like using a screen reader.

  • So I want you to listen along here and see if you can identify what is happening.

  • You are currently on Web content to enter the wet area.

  • Press control option.

  • Shift down.

  • Arrow late like Paige Button Link pushing love struck cat face Play video button.

  • You are currently in a group to exit link.

  • Pushing Loves my page Button link Video.

  • Lunar New Year Duration.

  • Seven seconds.

  • Public button like like toggle button.

  • You are love toggle button.

  • You are currently on a toggle button inside of a toolbar to select or deselect this check box press control option space to navigate items on this two of our press control option and then a barrow piled toggle button.

  • Wow toggle button.

  • Any guesses lately, Ben?

  • Okay, so let's look at that one more time with the visual cues for anybody.

  • If you didn't get that on Facebook, um, you'll notice that as you're navigating the keyboard or the screen reader will announce what has current focus, it'll say What is that type of element that is being focused, the definition of it, and with things like the like, where you can choose six different lights, it'll update as you're interacting with that element.

  • You are currently on Web content to enter the wet area.

  • Press control option Shift down Arrow link like Paige Button Link pushing love struck cat face Play video button You are currently in a group denies it.

  • Link pushing loves my page button link video, Lunar New Year duration seven seconds.

  • Public button like like toggle button.

  • You are love toggle button.

  • You are currently on a toggle button inside of a toolbar to select or deselect this check box press control option space to navigate items on this two of our press control option and then a barrow piled toggle button.

  • Wow!

  • Toggle button.

  • Cool.

  • Um, okay.

  • So in addition to these basics, screenwriters also use a tool known as the road er.

  • And this is one of the most important reasons you should make sure you have clean and semantic hte e mail because the rotor scans your content and that's what it uses to populate the menus.

  • Here's what it looks like.

  • Chrome Pope Recipe.

  • Google search Google grown window Hopeless If he Googles Archie Web Content links Menu You are currently in the voiceover menu.

  • This is a list, Linc, Linc, Accessibility help link except headings.

  • Menu heading level one.

  • Accessibility heading level petting level one.

  • Search heading left.

  • Heading level heading.

  • Level three.

  • Heading level three.

  • Easy homemade ahi tuna.

  • Hopeful recipe link.

  • Easy home able to tune up Hope recipe.

  • Just cool so you can pull it.

  • That menu using the control Was it control?

  • Option you and then left and right to navigate between the different menu options.

  • You'll notice that it had, like, 123 and those air like h one h two h three.

  • And also that the creator did not know howto pronounce Pok properly said poke Pretty sure.

  • Uh, cool.

  • All right.

  • Nice to have everybody.

  • You're all on a rule, so give your neighbor Hi, Fi Haven't like we'll keep on moving.

  • Um oh, I see.

  • Okay, So the next area here is how do we improve our code?

  • Thio have clean, accessible experiences.

  • There are three broad level things that you want to consider here.

  • Um, first of all, as I mentioned for screen readers providing clean, semantic HTML and also proper aria labels is super important.

  • Then you'll get very comfortable with programmatic focused management, which everybody loves.

  • JavaScript.

  • So hopefully easy.

  • Um, And then you can figure out how to leverage motor modern coding practices help as well.

  • Okay, let's step back earlier to that call out from George.

  • The future that I was working on at the time was a pretty common Web interface pattern.

  • So there was a box.

  • There's a list below it.

  • You type into the box, the list below, it gets filtered.

  • This is what's known as a combo box.

  • So I want you to take a look at the before and after fixing before and after I fix the accessibility issue.

  • Can anybody tell with friends?

  • No, not a trick.

  • I sent your question.

  • Okay, um, to me, they look exactly the same.

  • They both still have a box with a list below it.

  • The problem was that I when I first set out to build it, I approached it exactly the way that it sounds.

  • So I built the text element, and then I built old lists menu element.

  • Um, and since they are like typographic lee.

  • Similar there have clothes, composition on the page or, like told pixels apart.

  • And they're contained together against, like a white background box.

  • Obviously, they're related elements.

  • The problem there is with my initial assumption, even though to me they were visually distinct, a separate elements to a screen reader, they do not have the benefit of those visual cues.

  • So we was still treating it as two separate element.

  • Instead, I needed to switch to a completely different underlying architecture from two components toe one component.

  • So this way, using the select.

  • Even though it also has a text input and options list, the screen reader can only maintain focus on one element at a time.

  • So this marina reader will focus on the select.

  • And then the internal child components have a way of updating the parent component to then tell the screen reader what is happening, whether somebody is navigating up and down in the list or if they're typing into the box.

  • But how does that even work?

  • Weird.

  • Okay, so back to that handy w three c document.

  • They've also defined an A P I for indicating to assistive technologies what is happening on screen.

  • This is known as area or accessible rich Internet applications.

  • What's happening behind the scenes is that this accessibility AP I parses the dom on your website communicates that to the screen reader or whatever assistive technology is being used.

  • And then that information gets out.

  • Put to a human on the other side.

  • So spoiler alert.

  • But just in the same way that browsers sometimes have trouble rendering CSS, they can also sometimes have a little bit trouble understanding your aria labels.

  • This is not a huge problem, just a reminder to always be testing thoroughly cross cross platform and cross browser, as I'm sure that you all already d'oh!

  • Okay, so it's black.

  • We've now learned to build an aria pattern with each text back we write so that before we start coating anything, we should know that the component should be accessible from the start.

  • However, as I mentioned, we're building component libraries and since they have to support a multitude of different use cases, um, sometimes doesn't look a simple and inside it looks a little bit more like this.

  • Um, just make sure that you workshop these things with your peers and that you're covering all of your bases.

  • Once you get to the code level, things start looking a little bit more like this where you may have a feature spread out across a few separate components, and then you can use things like javascript utilities to build and connect the ideas that are informing your aria attributes.

  • Okay, when do you have everything built out properly?

  • Here's what a combo box should sound like.

  • Filter for auction list Combo box.

  • Certain suggestions start the threat.

  • Slack and reaction slack copy lakes lack.

  • Delete message.

  • Black clickable t Hey, or star message Black.

  • Start the threats.

  • Black Star Message Black.

  • Okay, cool.

  • So you all are on a roll.

  • Thank you again for sticking through it.

  • We got one more section to go.

  • Okay.

  • The next section.

  • You know everybody here.

  • Oh, okay.

  • I know everybody here loves bugs, but how do you prevent bugs from happening in the first place?

  • I've got a few going over a few tips, but let's step back to what things look like.

  • It's like a year ago when I joined there was 75 front and engineers.

  • But there was only one accessibility expert.

  • As I mentioned, I am not that expert.

  • We have the fame Todd Clue.

  • It's, um, who is incredibly talented and amazing to work with.

  • But even so, one engineer is not enough to support all of accessibility features we want to include.

  • So over the past year we've rolled out training similar to this one to inter all front and engineers at Slack understand the accessibility criteria that we're shooting for and how to build and test for it.

  • More importantly, that means that since we all have this understanding, when we're reviewing each other's code reviews and her code and claw requests that we know how to test accessibility for everybody else's features, too, we've taken it one step further, and we also ensure that our designers know what accessibility is and isn't, um, and they provide things like the keyboard interaction model for us, so we can then build it out.

  • Um, we haven't are using our internal design system has helped formalize a lot of best practices.

  • So over the last year, we've also conducted a color audit to simplify and ensure that our smaller a new set of colors meets all of our contrast standards.

  • We've also set up things like letters to prevent folks from adding one off colors.

  • It was just one of the sets that we've taken to help prepare for one of the most requested futures of slack dark mode, so that once it does roll out, we can ensure that it'll still be fully accessible.

  • So having front under is used.

  • A centralized component library that is accessible by default is awesome.

  • Um, we currently use these components in nearly 75% of applicable areas of our code base, and we're trying to increase that steadily.

  • But the single most useful thing I've learned is that you need to consider accessibility as early on in the proper process is possible, because it's easier to add the blueberries in before you.

  • Big loving somebody once said, We also have a dedicated que a team, uh, run throw checks before we launch a future.

  • And also you don't utilize 1/3 party service called Ultra who conduct an audit as well.

  • So even if you don't have the benefit of of a component library or design system or Q A team and you're so load of working by yourself, hopefully this a starter kit is enough to get you learning to become your own resident expert.

  • Awesome.

  • So nice job, everybody.

  • You've learned this, hon, and I know that you're gonna apply all these best practices once you're back in the real world.

  • But I want you all to stop for a minute and think about how you got.

  • So where you're sitting here today in a conference room in Hawaii.

  • Maybe you first heard about this conference on Twitter.

  • You thought it sounded cool.

  • You navigated onto their web site.

  • You really like the line up on the idea of learning JavaScript on a beach?

  • So of course you bought a ticket.

  • Then you went on to buy a cheapest plane ticket.

  • Possible to get yourself here.

  • And of course, you asked all your friends for the best food recommendations.

  • So you knew where to go for Pok and Local Moco.

  • Once you were on the island, a recent study in the UK found that nearly 70% of their websites were inaccessible.

  • So I want you to think about all these websites you touched along the way just in one day.

  • And imagine that every time you want to fill out a form or even just browse and read content.

  • You were hit with a JavaScript air.

  • I've always found it pretty interesting that other engineering preparations have a lot more strict certifications that they have to undergo.

  • So think about civil engineers need to be tested before they can build bridges and buildings to make sure that they're safe for humans.

  • And while I do not want this type of gatekeeping behavior in our industry, I do want us to hold ourselves and each other more accountable to make sure that we're responsible with our code and that we're building an Internet that is safe for other humans to use to.

  • I hope that this is something that you remember once you're all back and you have a P M breathing down your neck about an upcoming deadline, your peers are trusting your expertise in all things front end.

  • And that includes knowing that for to have a complete Web project, it has to be accessible, Even though it takes a little bit more time of front.

  • It'll save you infinitely long.

  • In the long run, it's become more and more apparent that there are no average users.

  • This is a myth.

  • Instead, we should be designing for the extremes of human ability, much like everything else and especially with Emily's talked earlier.

  • Prioritizing inclusivity and designing for the most marginalized groups actually makes a better experience for everyone.

  • Uh, there are countless examples of this, too.

  • I'm not sure the last time you enjoyed a video that had close captioning or if you enjoy text messaging or any voice activated software, all of these have their roots in assistive technology, so I hope you will take.

  • This is a sign that you two can build for accessibility, even if you're not an expert.

  • And if you wanna get stuck along the way, or if you just want to tell me about your favorite accessibility bug, you can find me at Beach on the Internet or come find me after the talk.

  • Or, if you want to come work, it's black and build component library things.

  • Um, more than happy to hear about it.

  • Thank you all for having me.

  • Thank you for the organizer's for bringing us all here to, uh, cool.

everybody, Uh, how's everybody doing?

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it