let’s be real · •ember-a11y •us navy veteran @melaniersumner. reality check. developer...

43
Let’s Be Real A practical, developer guide to common accessibility challenges

Upload: others

Post on 23-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Let’s Be RealA practical, developer guide to common

accessibility challenges

Page 2: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Melanie Sumner• LinkedIn• Ember Chicago Meetup• EmberJS Core Team• ember-a11y • US Navy Veteran

@melaniersumner

Page 3: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Reality Check

Page 4: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Developer Concerns• Package

management• Code environment• Workspaces• Performance• Optimizations• Asset loading• Server-side

rendering• CDN optimizations

• Collaboration tools• Review tools• Linting• Formatting• Coverage reports• Lighthouse scores• Examples• Documentation• Changelogs• Version control

• Package publishing• Deployments• Unit tests• Integration tests• Visual regression

tests• API integration tests• Continuous

deployment• Accessibility

Page 5: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Who We’re Working With*•Project Manager•Content Manager•BA•Designer•Developer•QA

*probably

Page 6: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

You have a team. You are not alone.

P.S. if you don’t have a team and you are alone, you especially have no excuse…

Page 7: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

You are not alone, but….•Accessibility is not only your responsibility but

developers need to be realistic about this.

•You’re the technical expert. You’re probably the one who makes accessible code a reality.

Page 8: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

You do not require permission to create

accessible code. -Melanie Sumner

Page 9: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

What do you do…• If your hard drive failed?• If your monitor wouldn’t turn on?• If GitHub went down?• If you didn’t have the basics you needed to complete your work?

Page 10: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Alt text: a cat with a look of panic on its face

Page 11: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Alt text: a baby with a scrunched up crying face

Page 12: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

What do you do…•When there is no keyboard navigation pattern in the spec?•When you’re reviewing code that works but isn’t using semantic HTML?•When you can tell the designs don’t have enough contrast?

Page 13: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Alt text: a cartoon dog sitting on a chair and smiling, while the room around him is on fire.

Page 14: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Stop just accepting it.

You’re being set up for failure.

You deserve better.

Page 15: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Speak Up•Gracefully educate your colleagues• “I noticed the keyboard specs were missing-

would you like me to add them?”

•Set them up for success, too! • “Here’s where I get the common keyboard

navigation patterns. They’re super useful!”

Page 16: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Be Persistent

https://www.youtube.com/watch?v=KxGRhd_iWuE

Page 17: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Focus, please!

Page 18: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Focus vs. Selection•Focus•Focus is a pointer (think, mouse cursor)•There is only ONE point of focus at any time • Interactions happen at the point of focus

Page 19: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Focus vs. Selection (con’t)•Selection•Selection can be performed on specific

elements•You could have a multi-select•When focus leaves, the selection persists

Page 20: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Simple Developer Rule• document.activeElement must alwayshave a value•The value can’t be null•The value can’t be the body element

•Maybe you can test for this somehow…

Page 21: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Overlays• It might look like an overlay.• It might act like an overlay.• If I can use my keyboard to navigate to the

options behind the overlay, guess what? • It’s not an overlay.

Page 22: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Keyboard Navigation

Page 24: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Know what already exists•Operating systems •Assistive technology•Browsers•Common conventions

Page 25: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

http://w3c.github.io/aria-practices/#keyboard

Page 26: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

A11ynomicon#noBlackMagic

Page 27: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Presentation Role•WAI-ARIA requires browsers to automatically

apply role=“presentation” to some types of UI components. •Role-based, not element based. • Even if you ‘div’, this is a gotcha!

Page 28: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Drumroll, please…• button• checkbox• img• math• menuitemcheckbox• menuitemradio• option• progressbar

• radio• scrollbar• separator• slider• switch• tab

Page 29: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Wait, what?

Page 30: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

*Insert Incantation Here*

Page 31: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations
Page 32: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

How to succeedMel’s list for developer success

Page 33: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#10

Accept that “Not Invented Here” syndrome is real

Page 34: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#9

Use a checklist.

Page 35: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#8

Be part of the conversation. Silence is not golden.

Page 36: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#7

Get to know the techniques…and the failures.

https://www.w3.org/TR/WCAG20-TECHS/

Page 37: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#6

Keyboard navigation must exist!

Page 38: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#5

Sometimes the answer isn’t more code, it’s a simpler UX.

Page 39: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#4

There might be several ways to do a thing. Keep an open mind.

Page 40: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#3

There is no substitute for knowing how assistive technology works.

Page 41: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#2

Use semantic HTML.

Page 42: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

#1

Be Magnanimous.

Page 43: Let’s Be Real · •ember-a11y •US Navy Veteran @melaniersumner. Reality Check. Developer Concerns •Package management •Code environment •Workspaces •Performance •Optimizations

Thank you! I believe in you. You got this. Persistence,

patience and passion will win. I’m proud of you. I

want to tell you that incase no one else ever has.

Don’t beat yourself up. You are a work in

progress which means you’ll get there a little at a

time, not all at once. Everything will be okay in

the end. If it’s not okay, it’s not the end. You are

much stronger than you think. A little progress

each day adds up to big results. You are amazing.

You are good enough. You are worth it.

@melaniersumner