Shift left on accessibility

Accessibility is often treated as a final checkbox at the end of a sprint, if there’s time. But by then, it’s usually too late. This talk shares practical tips for integrating accessibility into each stage of an agile process for design, engineering, and product. Shift left to make accessibility part of your workflow, avoid last-minute surprises and build more inclusive products.

Geri Reid

Geri is a design systems and accessibility consultant from London. As design lead on design systems at News UK and Lloyds Banking Group, she helped some of the UK’s largest media and banking brands to design at scale. She is currently Lead Accessibility Specialist at Just Eat Takeaway. Geri is a keen accessibility advocate, amateur writer and documentation nerd.

Links

Video Permalink

Transcript

Hey, everyone. I'm Geri, lead accessibility specialist at Just Eat. As a visual description

of me, if you're listening to this, I am a white woman with shoulder length brown hair

and nerdy black glasses. Today, like all days, I'm wearing what I term as corporate goth.

It's a black dress with as many skulls or dead things as I can get away with in a corporate

environment. So, as Dave said, I attended State of the Browser back in March. Can you

put your hand up if you're also there? Woo! Beautifully curated set of talks available

online if you missed out. Here is a photo of the stage in the gorgeous Barbican Theatre.

Now, picture this. It's the end of a long day and you're sitting in the back row of

the conference mentally processing all the incredible talks you've watched. Your mind

is here with an ice cold post conference beverage of your choice. Through the mists of your

thoughts, you vaguely hear Dave mention he's running an event for accessibility week. Then

he invites you to speak in front of the whole conference, which is the first time you've

heard of this. So, a big thank you today for inviting me to speak. Despite being publicly

thrown under the bus, I'm delighted to be here. Jokes aside, I'm always keen to talk

about accessibility at tech events where it's not always on the agenda. And this week is

accessibility week, so a lovely opportunity. So, let's get started. Everyone likes a story,

so sit back and make yourself comfortable. Auntie Geri is going to start this talk with

a tale of something that happens to her regularly in her life as an accessibility consultant.

The story starts late in the afternoon when I get a message from a team who are just about

to release a new feature. It's likely the first time I've seen this feature, which has

already been designed and built. The product manager asks, Geri, is it accessible? I run

through the usual accessibility checks and feedback. Oh, there's a problem. The new feature

isn't announcing as expected on a screen reader. The beleaguered senior engineer who incidentally

is working across five different agile teams says, they'll have to troubleshoot why this

is happening. It's potentially a complex rework and they estimate it will take a couple of

sprints to fix. Ah! This news completely blindsides the PM and rightly so. They have a deadline

to meet and they haven't factored into additional sprints. Where do they go from here? Do they

release something knowing it's not accessible? Oh, that seems wrong and unethical. Or do

they tell the business that their shiny new feature is delayed? That makes their team

look bad and everyone's worked hard on this. How does the story end? It ends with everyone

hating the accessibility person for ruining their day. The same thing happens with accessibility

audits. I call this the accessibility cycle of sadness. We plan, design, build and QA

a new feature. It is released with some fanfare, a Slack announcement and maybe even a celebratory

pizza. The feature gets accessibility tested often by an external agency. Hundreds, sometimes

thousands of accessibility issues get reported. Someone like me with some accessibility knowledge

has to pick through all the fails, ticket them and rank them in priority. Tickets get

assigned back to the original feature team, but the team that worked on this feature may

no longer exist. And if the team does still exist, they haven't accounted in their planning

for all this extra work they have to do. How does this story end? You guessed it. Everyone

hates the accessibility person for ruining their life and we all metaphorically die of

dysentery. If we're talking numbers, Deque estimates it costs $350 to mitigate an accessibility

issue in design and development, $450 in QA, but more than $800 per bug that gets through

post release. Ultimately, if someone can't interact successfully online, they're likely

to call customer services, which becomes even more expensive long term. The way to avoid

falling into this never ending cycle of sadness is to embrace everyone's favorite LinkedIn

keywords. Shift left. If we shift left and sprinkle some accessibility good practices

into each stage of our Agile workflow, we're less likely to get slapped around the chops

with some time sink at the end that we haven't accounted for. So tonight I'm going to cover

some simple ideas on how to integrate accessibility into your Agile product design process as

you plan, design and build stuff. My loose definition of Agile in this talk is you're

working on a website app or software that is being continuously released and your team

is committed to continuous improvement, be that in increased efficiency or customer experience.

I appreciate I've just shat all over 25 years of product management methodology with this

two bullet point generalization. Fight me in the pub later. Starting with planning.

When you're scoping a project, ask questions like what do we know up front and what are

the unknowns that we need to go away and research? If you're fortunate to have some accessibility

support like me, pull them into this planning stage to troubleshoot any potential problems.

And in time for accessibility spikes and investigations when pointing a ticket, these accessibility

investigations take time. Have a think through how this might affect people with access needs

who use different accessibility settings, assistive tools and devices. And consider

what product and design can front load in the sprints before so engineering can hit

the ground running. The teams I've worked in that have done accessibility successfully

is where it's been baked into the team culture and this is reflected in planning. If the

PM sets the expectation that this team produces accessible design and code, we build time

for accessibility in our pointing and we have accessibility acceptance criteria, then after

a while it becomes the default and no one questions it. If it's perceived as extra work

or something that's done at the end of the sprint, if there's time, then it never happens.

If you need help writing accessibility acceptance criteria, there's a brilliant website from

Charlie Triplett called atomica11y. The site's got sections for design, HTML, iOS and Android.

If you select what you're working on, it might be like a component or part of a web page,

it spits out accessibility acceptance criteria either as a user story or as a condensed checklist

that you can cut and paste and adapt to your requirements. This all sounds peachy, Geri,

but won't it slow us down? Yes, it might temporarily slow you down while your team adjusts to some

new ways of working, but discovering a critical blocker the day before release or retrospectively

fielding 750 accessibility bug tickets post release will probably slow you down a lot

more in the long term. I always say it's not accessibility that slows you down, it's surprise

me. So, let's move from planning to design. Deque suggests 67% of accessibility issues

start in design. I hate made up statistics like this, but I kind of reluctantly agree

with this one. I'm going to talk through three aspects of design to consider in a shift left.

Design foundations, design tooling and annotating designs for engineering discussion and handover.

Starting with foundations. If your foundations nudge you towards accessible choices, then

you're more likely to end in accessible outcomes. Most companies or most tech companies now

have design systems where as a designer these foundational choices are already made for

you, but if you're making these decisions yourself, put a system into the choices. As

an example of creating a system to ensure colour contrast, use a tool like Leonardo

colour here to generate your colour ramps where you can specify a minimum contrast ratio

for each step in your ramp. By specifying ramps with contrast stops, you can create

rules around colour. In this example, I made for a company called BPP. I know I can use

white text on background colours 060 and above and I'll always hit a 4.5 to 1 contrast

ratio in any of my colour ramps. The same goes for type and spacing. Get a system into

it that will scale. If you need some inspiration, have a look at how some of the big design

systems and component libraries do this and adapt it for your organisation. From Craig's

talk description, it looks like he's going to go into detail about putting some systems

into your thinking. Maybe. Maybe not on a design level. Maybe on a code level. So, yeah,

it's good to build on solid foundations. So, moving beyond the foundations to starting

to design to tooling. Design tools shape our outcomes. 80% of the market uses Figma, so

my focus is here. Figma's annual conference was last week and there's some great news.

Figma now makes websites! As a designer, you no longer need a pesky engineer or boring

stuff like semantic HTML. We're partying like Macromedia in 1999. All you need is divs.

If you inspect the code on Figma's new magical website making tool, there's no headings,

no roles. I'm being cheeky. I appreciate this is primarily pitched as a tool for quick prototyping,

but this lack of care under the hood just makes me despair. We need to be exposing designers

to good practices so they can learn and improve rather than marinating them in this sort of

div inception of slop. As far as I can see, there are still no fields in the Figma interface

to specify semantic structure, roles, alt text and labels, focus management and states.

This is such a missed opportunity for designers to learn. So, don't assume designers know

about accessibility. They need training and training designers is a key part of your shift

left. I guarantee educating your designers will head off at least 67% of your accessibility

problems. All your money back. Along with training, little nudges in the right moments

are useful. At Just Eat, we have a UX and accessibility review checklist component which

kind of nudges you to consider the basics. Things like check color contrast, add screen

reader announcements, check zoom and increase type size. If you add this to your design

systems library as a component or into your design templates, this is a little nudge that

will make designers remember they need to include this detail. This leads to design

annotations. Design teams usually have an existing way to annotate designs for engineering.

You can use this for accessibility annotations. What can designers annotate? The stuff that's

missing from Figma. Heading levels, if it's not obvious from the design. I've got a grab

of our Just Eat homepage here with H1 down to H4 annotated with stickers. Reading order,

what comes next if I'm swiping through on a screen reader, what order is the content

announced? Focus order, when I tab, what's the next interactive thing that takes focus?

And finally, any non visual stuff like alt text and labels. As a designer, running sessions

where I collaboratively marked up files like this with an engineer was how I learned about

accessibility. I would highly recommend doing this. If you're looking for some training

for designers in a shift left, I highly recommend checking out Stephanie Walter's website. It's

at StephanieWalter.design. She has loads of useful resources. Ultimately, I have mixed

feelings about design tooling and, you know, the effort that goes into this engineering

handover by reducing web pages to flat pictures made at fixed resolutions with no interactivity.

We're abstracting away all of the good stuff that the web ultimately represents. You know,

it's easy to get caught up in these beautiful design artifacts, the complexity of design

libraries and these perfectly crafted prototypes. But it's really all just a means to an end

and the end is code. And with that, onwards to shifting left in development. Scott O'Hara

recently shared this on Blue Sky and it made me chuckle. He says, I don't feel joy in having

someone realize they need to add alt text. That's like congratulating someone for knowing

it's inappropriate to not wear pants in public. Wear pants without a pat on the back, please.

While I agree that alt tags, much like pants, are nonnegotiable in public, it's easy to

assume that everyone knows about accessibility and that includes engineers. In my experience,

the coverage of engineers' accessibility pants varies wildly. I have worked with some senior

React engineers which are firmly in the hot pants zone when it comes to HTML. And conversely,

I've had junior engineers sat in wearing a pair of palazzo pants and throw accessibility

shade over their older cargo panted peers. Accessibility training for engineers is essential

for a shift left to make sure everyone knows the basics. Don't just assume accessibility

knowledge because an engineer is senior. If you've got budget, I highly recommend Sara

Soueidan's practical accessibility course. I revisit this constantly. It's a really comprehensive

resource and it gives you a lovely toolkit and some freebies. As an engineer, if you're

looking for an objective towards your annual review, completing training like this can

be an excellent measurable. I think the key for a shift left to building

accessible products in an agile team is to make sure product and design are frontloading

everything you need to set you up for success. The ticket and the designs you're working

from need to meet a definition of ready for engineering. To shift left, here are five

things you need to be supplied as an engineer up front to start work on a ticket. You need

to know what happens when you zoom in or increase font size. Does the container grow in height

or does the text truncate? You need to know how this will work with no mouse. Keyboard

accessibility is fundamental to so many users. And if you constantly test with keyboard as

you build stuff, you will cover off most accessibility requirements. You need design to either supply

or work with you to step through how a keyboard user will navigate. You need to know what

happens when you interact. What takes focus and in what order? You need to be supplied

the treatment for all interactive states. What if the user prefers reduced motion? If

there's motion in the design you're building from, you need to be supplied a reduced motion

version. Finally, how would a screen reader announce this? If you don't know what should

announce, you'll either have to guess or you'll have to loop back around to design who are

likely to have to go back to the content team which blocks your ticket. If you're not being

supplied the accessibility information you need to build stuff, speak to your PM and

work with them to spec out a definition of ready for engineering. PMs hate a blocked

ticket because it makes those scary looking charts they turn up to retros with look bad.

It's ultimately in their charting interest for the sprint to run smoothly. In terms of

engineering process, I'm a designer, so I'm not here to tell you how to write your code.

We've learned a lot of stuff from Matt. Common sense says you should automate as much as

you can to catch the check box fails. Integrate accessibility into your development environment,

run automated testing tools to scan for WCAG violations. Once you're through all the check

box stuff, the most important bit is to manually test. Here is my quick and dirty checklist

when someone asks me, "Geri, is it accessible?" I make sure all the content makes sense, that

I can zoom to 200%, that I can navigate and perform all actions using keyboard alone and

there's a clear visual focus indicator. I check text has good contrast against the background.

And finally I open it on a screen reader. You all have one on your phone and computer.

If you don't know how to use it, just Google it. You only need to learn four or five commands

to cover basic testing. So that was a few simple ideas to help your team shift left

and incorporate accessibility best practices earlier in the process. You'll notice all

the things I've talked about are straightforward checks that anyone can do. You don't need

to be an accessibility specialist who eats the web content accessibility guidelines for

breakfast. To truly shift left, we need to make accessibility accessible so it becomes

less of a specialist skill and more of a shared responsibility across a whole agile team.

As Matt said, terms and tools that you already know. Before I go, I have two challenges for

you to take away. First is don't hate your friendly neighborhood accessibility person.

They might come at you citing WCAG criteria or loom large in your Figma file judging your

choices but at the end of the day, we're in it to make the web a more equitable place

for everyone. Involve us early. We will be so delighted to hear from you that we might

have biscuits. Second challenge is to take one of the ideas I've talked about today and

apply it to your own process. This could be a teeny tiny thing like speaking to your PM

about including accessibility acceptance criteria on tickets or building time into planning

for an accessibility investigation. It might be including some screen reader annotations

on your designs or upgrading your accessibility pants with some training. Let me know how

you get on. You can find me enthusiastically on Blue Sky or reluctantly on LinkedIn. If

you want to update me on your progress or just fancy a nerdy chat, I am @gerireid.

Thank you.