Eric Eggert is a Web Developer and Teacher who works with Knowbility and the W3C on improving the Web for People with Disabilities, and everyone else.
My name is Eric Eggert and I work with Knowbility and the W3C to improve the Web for People with Disabilities. I work with Knowbility and they donate 50% of my work time to W3C in a fellowship for which Iʼm very grateful.
Slide 3
Important Note:
This presentation contains ARIA examples that are preventing websites and applications from being accessible. Don’t just copy & paste code.
Slide 4
WAI-ARIA: Accessible Rich Internet Applications
WAI = Web Accessibility Initiative
Slide 5
Internet Applications
➡ Emphasis on Internet Applications
Slide 6
Internet Applications
Slide 7
ARIA ≠
or
ARIA is neither witchcraft nor sorcery
!
Slide 8
No
aria-make-accessible=”true”
Although some people seem to think there is In reality we have to understand the ARIA principles fully and then deploy it where needed
Slide 9
Rules of ARIA
1
1
Using ARIA
Slide 10
If you can use a native HTML element or attribute with the semantics and behavior you require already built in, instead of re-purposing an element and adding an ARIA role, state or property to make it accessible, then do so.
Slide 11
Do not change native semantics, unless you really have to.
Slide 12
Bad Example: <h1 role=”button”>heading button!</h1>
Good Example: <h1><button>heading button!</button>!</h1>
Slide 13
Nicolas Steenhout on Twitter
Slide 14
All interactive ARIA controls must be usable with the keyboard.
Slide 15
If you create a widget that a user can click or tap or drag or drop or slide or scroll, a user must also be able to navigate to the widget and perform an equivalent action using the keyboard. All interactive widgets must be scripted to respond to standard keystrokes or keystroke combinations where applicable.
Slide 16
Example If using role=button the element must be able to receive focus and a user must be able to activate the action associated with the element using both the enter (on WIN OS) or return (MAC OS) and the space key. — ARIA Practices Guide
Slide 17
DEMO
Slide 18
Slide 19
Do not use
role=”presentation” or aria-hidden=”true” on a i
focusable element.
Using either of these on a focusable element will result in some users focusing on ‘nothing’. i
which is equivalent to role=”none”
Slide 20
All interactive elements must have an accessible name.
Slide 21
ARIA Components
Slide 22
Some Roles <div role=”main”> !!!<!— better: <main> !!—> <form role=”search”> <div role=”tooltip”> <output role=”alert”>
Some of these roles are “landmarks”
Slide 23
Some Properties and States <input aria-required=”true”> <input aria-labelledby=”label” aria-describedby=”errormsg”> <button aria-pressed=”false”> <div aria-hidden=”true”>
Slide 24
Live Regions <div aria-live=”off”> <div aria-live=”polite”> <div aria-live=”assertive”>