One small click for developers,
one giant leap for a11y
@kimberlymunoz
Accessible interfaces must be adaptable for everyone
ACCESSIBLE INTERFACES HELP
- vim users
visual users with UX enhancement
- People using laptops one-handed
visual physical-impaired users
- Screenreader users
blind users
Essentials of keyboard navigability
- Can you navigate to everything with a keyboard?
- Can you skip repetitive links and tabbing?
-
Can you see when you're navigating?
- Can you get your keyboard focus "stuck"?
These are all listed under WCAG
https://www.w3.org/WAI/intro/wcag
Turning on keyboard accessibility
How to test!
tab
tab
shift
Move forward
Move backward
Pro-Tip:
If you use links and buttons, you probably have this covered.
How to test!
enter
spacebar
↑
↓
→
←
Spacebar can select items like dropdowns, buttons, checkboxes.
Scroll through dropdowns, radio buttons, sliders, autocompletes.
Enter can select buttons and links.
Resources
Cheatsheet:
http://webaim.org/techniques/keyboard/
WAI-ARIA Authoring Practices:
(For complex widgets)
Let's try this
Common pitfalls
Watch your focus!
a { outline: none; }
Also, make sure it makes sense. Don't skip around.
Skip repetitive links with skip links
#skip-nav {
position: absolute;
top: unit(-@grid_gutter-width / @base-font-size-px, em);
left: unit(@grid_gutter-width / @base-font-size-px, em);
background: transparent;
transition: transform 1s ease, background .5s linear;
z-index: 20;
}
#skip-nav:focus {
// Your button markup
position: absolute;
top: 0;
outline: 0;
transition: transform .1s ease, background .2s linear;
}
<div class="button"></div>
<div class="button" role="button"></div>
<div class="button"
role="button"
tabindex="0"></div>
Using unsemantic HTML
// Use semantic elements wherever possible.
<button></button>
Use semantic HTML
Common Pitfalls:
Can you get stuck using a keyboard?
- Can you tab out of a modal without exiting?
- Can you trap your keyboard focus unintentionally and never get out?
Can we automate it?
Automated tools!
Axe-core
https://github.com/dequelabs/axe-core
Node-Wcag
https://github.com/cfpb/node-wcag
Tota11y
http://khan.github.io/tota11y/
Questions?
Keyboard Testing Presentation
By Kimberly Munoz
Keyboard Testing Presentation
Presentation given at WaffleJS on keyboard testing.
- 3,702