Accessibility

DOM plus semantics plus ARIA becomes an accessibility tree that assistive technology reads. Keyboard operation, focus management and announcement are engineering requirements, not a later pass.

The Accessibility Tree
▶ lab

The browser derives a second tree from the DOM — role, name, state and relationships — and hands it to the platform. That tree, not your markup and not your pixels, is what assistive technology reads.

Q · What does assistive technology actually read, and where does it come from?
Semantics Before ARIA

The first rule of ARIA is not to use ARIA. A native element brings role, focusability, keyboard behaviour and default actions; ARIA brings a label in a tree and nothing else.

Q · Why is a native element better than a `div` plus ARIA, when the accessibility tree ends up looking the same?
Keyboard Operability

Every interaction must be reachable, understandable and completable with a keyboard alone — because the keyboard is also the switch device, the voice command, the braille display and the screen reader.

Q · Can a person reach, understand and complete every flow in this interface without a pointer?
Focus Management

Focus is a single pointer into the document that the browser maintains for you — until your application replaces the DOM underneath it. Then it becomes yours to move, contain and restore.

Q · Where is focus right now, where should it go next, and who is responsible for putting it there?
The Rules of ARIA

ARIA has a small set of rules that exist because each one describes a real way people break pages. The underlying one: a wrong ARIA attribute is worse than no ARIA at all, because the browser will faithfully repeat your mistake.

Q · What are the actual rules for using ARIA, and why is wrong ARIA worse than none?
Live Regions and Announcement

Nothing announces itself. A DOM change away from the user's focus is silent unless it happens inside a region the assistive technology was already watching — and announcing everything is its own failure.

Q · Something changed on the page and the user was not looking at it. How do they find out — and how do I avoid telling them about everything?
Contrast, Colour and Motion

Perceivability is measurable and it is a user preference. Contrast has a computed value, colour must never be the only carrier of meaning, and motion, contrast and target size are all things the operating system already knows about the person using your page.

Q · Can this interface be perceived by someone with low vision, colour vision deficiency, a vestibular disorder or an imprecise pointer?
Accessible Component Patterns
▶ lab

The lab: modal, menu, tabs, accordion and form, each written as a contract — semantics, keys, focus and announcement — because a component that does not state these has not specified its behaviour at all.

Q · What exactly does each of the standard interactive components owe a keyboard and a screen reader?