Skip to main content

Accessibility Glossary

WCAG criteria, patterns, and standards — with interactive demos, detection methods, and audit data.

Common interface components (tabs, modals, carousels). Each has an accessible recipe — and well-known ways to get it wrong.

16 terms
Section 1
Section 2
Section 3

Accordion

Use <details>/<summary> or button + aria-expanded + aria-controls. Arrow keys optional. Content panel must be associated with its trigger.

UI Patterns
Home/
Products/
Shoes

Breadcrumb

Use nav with aria-label='Breadcrumb', an ordered list, and aria-current='page' on the last item. Separators should be decorative (CSS or aria-hidden). Helps orientation for all users.

UI Patterns
Slide 2

Carousel / Slider

Provide pause/stop controls. Support keyboard navigation (arrows for slides). Role='group' on each slide with aria-roledescription='slide'. Auto-rotation must respect prefers-reduced-motion.

UI Patterns
Search…
Apple
Banana
Cherry

Combobox / Autocomplete

A text input with a popup list of options. One of the hardest ARIA patterns: role='combobox' + aria-expanded + aria-activedescendant + listbox. Broken implementations are everywhere — test with screen readers.

UI Patterns
Name
Role
Dept

Data Table

Use <th> with scope='col'/'row'. Add <caption> or aria-labelledby. Never use tables for layout. Only 19% of observed tables had valid markup in the 2026 WebAIM Million.

UI Patterns

Data Visualization

Charts and graphs need a text alternative — a short summary, a data table, or both. Don't tell data series apart by color alone; add labels, patterns, or direct annotations. Bars, lines, and segments must meet 3:1 non-text contrast.

UI Patterns
April 2026
M
T
W
T
F
S
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Date Picker

Notoriously inaccessible. Must support keyboard navigation (arrow keys for days, page up/down for months). Always provide a text input alternative. Native <input type='date'> is often the best option.

UI Patterns

Dialog / Modal

65% fail

Focus trap inside, Escape to close, focus returns to trigger on dismiss. Use <dialog> or role='dialog' + aria-modal='true'. One of the most commonly broken patterns.

Essential UI Patterns
<label> ✓
Email
placeholder ✗

Form Input Labels

49% fail

Every input needs a visible, programmatically associated <label for='id'>. Placeholder is not a label. Found missing on 49% of homepages. The second most common WCAG failure after contrast.

Essential UI Patterns 1.3.1
jane@acme.co
autocomplete="email"

Input Purpose / Autocomplete

Inputs collecting personal data (name, email, address, credit card) must have autocomplete attributes. Helps autofill and assistive tech identify fields: autocomplete='email', 'given-name', etc.

UI Patterns 1.3.5
Home
About
Contact

Mobile Navigation

Hamburger menus need: button trigger (not div) with aria-expanded, focus trap when open, Escape to close, focus returns to trigger. Content behind the menu should be inert when open.

UI Patterns
1
2
3
4

Pagination

Wrap in nav with aria-label='Pagination'. Mark current page with aria-current='page'. Use meaningful link text ('Page 3') not just numbers. Previous/Next need clear labels, not just arrows.

UI Patterns
Tab 1
Tab 2
Tab 3

Tabs

role='tablist' → role='tab' → role='tabpanel'. Arrow keys move between tabs, Tab moves into the panel. aria-selected on active tab. One of the trickiest ARIA patterns to get right.

UI Patterns
Saved

Toast / Notification

Transient messages must use role='status' or aria-live='polite' so screen readers announce them. Must not auto-dismiss too quickly (<5s minimum). Must be dismissible. Must not steal focus from the user's task.

UI Patterns
Save your work
💾

Tooltip

Must be triggerable by focus (not just hover). Dismissible with Escape. Persistent while hovering over it. Use aria-describedby to associate with trigger. Avoid for critical information.

UI Patterns
CC

Video Player

All controls keyboard-accessible. Captions toggle visible and labeled. Volume, play/pause, seek, fullscreen all need accessible names. Captions must be synchronized. Provide transcript link nearby.

UI Patterns