Kelly Mears

ARIA

Attributes that describe roles, states, and relationships to assistive technology when HTML cannot.

Design & Interface2 min read219 words15 out · 30 in
also calledWAI-ARIAAccessible Rich Internet Applications

ARIA is a specification of attributes that convey an element's role, state, and relationships to assistive technology. It exists to describe interface patterns that HTML has no element for — a tab set, a combobox, a live region.

Its first rule is the one most worth remembering: do not use ARIA if a native element will do. A native button already has the role, the keyboard behavior, and the states. Applying a role to a generic element declares a contract that the element does not fulfil — announcing "button" to a screen reader while doing nothing on Enter is worse than the unlabeled original.

Practical hazards accumulate around the details. Some attributes are computed by the browser and must not be supplied by hand, while their siblings must be. An accessible name derived from a related element outranks a directly supplied label, so a menu can end up announcing its trigger's text instead of its own — and clearing that requires explicitly passing nothing, not simply omitting it. Hiding content outside a modal can be done by marking it hidden from the accessibility tree or by making it truly inert; those are different, and only one of them stops pointer events, which produces a very specific class of bug where clicks land on elements a screen reader cannot see.

See also15

Semantic HTML

Using elements for their meaning, so the document conveys structure without extra description.

Design & Interface24 connections

Headless Component

A component supplying behavior and accessibility with no styling of its own.

Design & Interface16 connections

Focus Trap

Confining keyboard focus inside a modal surface so it cannot wander behind it.

Design & Interface13 connections

Portal

Rendering an element into a different part of the document than its logical parent.

Web Platform18 connections

UI Primitive

The small set of typed components through which all interface markup is expressed.

Design & Interface12 connections

Accessibility

Designing so that people with disabilities can use a thing, and the standards that make it checkable.

Design & Interface44 connections

Keyboard Navigation

Making every interactive affordance reachable and operable without a pointer.

Design & Interface34 connections

Focus Management

Deliberately controlling which element receives keyboard focus as an interface changes.

Design & Interface28 connections

Document Object Model

The live tree of objects a browser builds from a document, and the surface every UI framework writes to.

Web Platform27 connections

Alt Text

The short text that stands in for an image for people who can't see it, read aloud by screen readers and shown when images fail, which works best when it describes what the image is for rather than what it looks like.

Design & Interface10 connections

Accordion

A stack of headings that each expand to reveal a section of content, saving space on long pages and small screens at the cost of hiding what readers might have needed to see.

Design & Interface12 connections

Dropdown Menu

A control that hides a list of options until it's opened, saving space at the cost of hiding choices, which ranges from desktop menu bars to the web's notoriously hard-to-style select element and the sprawling mega menus of retail sites.

Design & Interface17 connections

Accessibility Testing

Checking that people using screen readers, keyboards, magnification, or other assistive technology can actually use an interface, through a mix of automated scans and hands-on testing.

Testing & Verification14 connections

Tooltip

A small label that appears when hovering or focusing an element, useful for naming icons and easy to make inaccessible, unreachable on touch, or covered by other layers.

Design & Interface14 connections

Toast Notification

A brief, non-blocking message that slides in to confirm an action or report a background event, then disappears on its own.

Design & Interface10 connections

Linked from30