Accessible Rich Internet Application
Accessible Rich Internet Application
A technical spec by the W3C to help increase accessibility of the web, particularly dynamic content and user interfaces.
Don't use ARIA
Don't use ARIA
Unless there is no way do to what you want to do in native HTML
Don't change semantics
Don't change semantics
Unless you really have to
All interactive elements need to be keyboard friendly
All interactive elements need to be keyboard friendly
If you reinvent an element, like a button, you have to intentionally add keyboard interactions
Role="presentation" is a no go on interactive elements
Role="presentation" is a no go on interactive elements
That role removes the semantic of the element. The element no longer exists for screen readers. Same with role="none". Same with aria-hidden="true"
All interactive elements must have an accessible name
All interactive elements must have an accessible name
Avoid empty elements. Ensure programmatic name is available
<div aria-live="off">
<div aria-live="assertive">
<div aria-live="polite">
<div aria-live="polite" aria-atomic="true">
Present the live region as a whole, or only the bits that changed.
aria-role
<input aria-describedby="someid">
<p id="someid">One thing</p>
<p id="someid">A different thing</p>
aria-label
vs.
aria-labelledby
<input aria-labelledby="label1">
<p id="label1">Some label<p>
<input aria-label="Some label">
Be deliberate in what elements you use, and why you use them.
Ensure what you did matches the intentions.
Test to avoid unintended consequences.
Nicolas Steenhout