How to win at Mobile Accessibility
Background image: people around the world using mobile devices
We’ll talk about:
Barriers
UI Patterns
State of Tooling
I won't sugar-coat it: mobile accessibility is hard. But I'm telling you about UI patterns you can control, and pushing to improve tooling for testing and development. That is how we'll make it better.
Mobile++
-In the US, time spent with mobile apps exceeds desktop web access
-Smartphone penetration tops 75% of the US mobile market in Q4 2014
-Very high usage in developing countries
Accessibility
15-20% of the population
Eye
Created by Creative Stall for the Noun Project
Vision
Ear
Created by Hadi Davodpour for the Noun Project
Hearing
Hands on touch device
Created by Magicon for the Noun Project
Motor/Physical
Thinking
Created by Icons8 for the Noun Project
Cognitive
Icons by the Noun Project
Why should I bother?
Shopping cart with British Pound
Created by José Manuel de Laá for the Noun Project
Sales potential
Scale
Created by Ferran Brown for the Noun Project
Legal risk
Light bulb
Created by Sotirios Papavasilopoulos for the Noun Project
Innovation opportunity
Heart with hands
Created by Marianna Nardella for the Noun Project
It’s the right thing to do
Icons by the Noun Project
“Do you use a mobile screen reader more than a desktop screen reader?”
WebAIM Screen Reader Survey 5
Response
# of Respondents
% of Respondents
No
753
56%
About the same
432
32%
Yes
160
12%
iOS Accessibility Features
Voiceover
Dictation
Zoom
Invert colors/grayscale
Switch control
More Info
Android Accessibility Features
TalkBack
Switch access
Braille support
High contrast
Magnification
More Info
Mobile Contexts
Native
Hybrid
Mobile web
Mobile web
Accessibility is easier to get right on native platforms.
¯\_(ツ)_/¯
Less targets.
The Web is trying to be everything for everyone.
Frameworks? which ones? Android has fragmentation, so is it really that much easier?
Mobile web accessibility
Come at me Bro
Locked-down zoom,
Hijacked scrolling
…we all know these techniques exist.
Text is too small
Ambiguous visual icons
Check your privilege, age, ability, demographic...
Conflicting gestures
Other UI affordances needed
VIDEO
http://ionicframework.com/demos/swipe-cards/
Plus X assistive tech devices and user settings
Winning?
Kid dancing is a winner
VIDEO
Mobile UI Patterns
How to Win
You’re competing…
BBC Mobile Accessibility Guidelines
Use buttons*
*And other semantic elements
Touch targets
Don’t: too small
Do: generous padding
Crafting mobile tab order
VIDEO
Hidden links shouldn't be reachable
Angular Material dialog: Before
VIDEO
Hiding content from screen readers
(One technique)
<div style="display: none;">
Fully hide any element, but it’s not animatable.
Disabling interactive elements in HTML
(Another technique)
<div aria-hidden="true">
<button tabindex="-1">Alert</button>
</div>
Keep content visible, but hide from a screen reader.
Inert: disabling the background
Angular Material dialog
function walkDOM(element) {
while (element.parentNode) {
if (element === document.body) {
return;
}
var children = element.parentNode.children;
for (var i = 0; i < children.length; i++) {
// skip over child if it is an ascendant of the dialog
if (element !== children[i]) {
children[i].setAttribute('aria-hidden', isHidden);
}
}
walkDOM(element = element.parentNode);
}
}
Protip: Insert dialog next to <body>
, and you don’t need this much code
Content properly disabled
Angular Material dialog: After
VIDEO
What We Want
Mobile browser testing tools
Screen reader testing tools
Safari Accessibility Audit?
aXe Audit in Firefox Devtools
Not really checking mobile devices…yet
Firefox WebIDE: Add-ons?
Chrome Device Inspect
Chrome Accessibility Developer Tools + Android Tethering
…except mobile Chrome isn't popular for accessibility
Let’s Recap
Accessibility is important
We need mobile testing tools
Use semantics
Optimize for humans
Craft source & tab order
Keep pushing