Andy Ernst
Software Engineer at Axon
http://www.interactiveaccessibility.com/accessibility-statistics
fix it now!
Dyslexic
Low vision, color blind
Hearing-impaired
Motor impaired
Non-sighted
http://geon.github.io/programming/2016/03/03/dsxyliea
user-scalable=no
auto-play?
Keyboard-only navigation
tabindex > 0
tabindex="1"? tabindex="2"? tabindex="5"?
tabindex="0"
tabindex="-1"
focusable
js-focusable
Instead:
Use native HTML
:hover, :focus {
outline: none;
}
Don't override
Instead:
:hover, :focus {
border-left: 2px solid blue;
}
?
⌘ + F5
Voice Over is Installed on all iPhones and macs
See training in System Preferences > Accessibility > Voice Over > Open Training
aria-label
aria-hidden
aria-live
role="listitem"
aria-label="Search"
aria-hidden="true"
aria-live="assertive"
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
position: absolute;
height: 1px;
width: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
}
<span role="checkbox"
aria-checked="true"
tabindex="0">
label name
</span>
Semantic HTML is always best!
<article className={classes} role="listitem" aria-owns="open-product-details">
var axe = require('react-axe');
axe(React, ReactDOM, 1000);
Pure HTML, no CSS, no JS
But we break it with nice styles and JS functionality
Accessible website? You win!
Andy Ernst
aernst@axon.com
axon.com/react-a11y