FrontEnd NE, Newcastle 2018
Jaws | NVDA | Voiceover | Narrator | Orca |
(Freedom Scientific) | (NV Access) | (Apple) | (Microsoft) | (GNOME) |
details
& summary
elements<details>
<summary>Tequila...</summary>
Makes me happy!
</details>
details
elementdetails
& summary
elementsdiv
& span
elementsHave neutral semantics
<div class="toolbar">
<span class="button">Bold</span><span class="button">Italic</span>...
</div>
div
& span
elementsAttributes that polyfill missing role, name, and state information for screen readers
ARIA 1.1 (W3C Recommendation)
w3.org/TR/wai-aria-1.1
role
attribute70+ roles, including:
aria-
attributes45+ states and properties, including:
aria-invalid
, aria-required
aria-pressed
, aria-expanded
aria-controls
, aria-owns
span
element<span id="button">Tequila!</span>
span
elementspan
element<span id="button" role="button" tabindex="0">...</span>
button
element<button>Tequila!</button>
button
elementrole
<button role="heading" aria-level="1">Tequila!</button>
role
<a href="#here" id="button" role="button">Tequila!</a>
var button = document.getElementById('button');
button.addEventListener('keydown', function(event) {
if (event.keyCode == 13) {
doSomething();
}
});
<span id="button" role="button" tabindex="0">Tequila!</span>
var button = document.getElementById('button');
button.addEventListener('keydown', function(event) {
if (event.keyCode == 13 || event.keyCode == 32) {
toggle();
}
});
application
role<body role="application">...</body>
Several roles invoke applications mode, including:
tablist
roleARIA Authoring Practices Guide (APG) 1.1:
w3.org/tr/wai-aria-practices-1.1/
tablist
role + keyboard supportAccessibility Object Model (AOM):
github.com/wicg/aom
Thank you