WAI-ARIA Authoring Practices Guide
Accessibility
made simple.
Learn WAI-ARIA APG (Authoring Practices Guide) patterns with live demos, Good / Bad comparisons, and keyboard/ARIA references. Understand the "why" behind accessible implementations.
This site is for developers who write HTML/CSS/JavaScript and for anyone reviewing UI for accessibility.
Interactive Demos
Try components with a keyboard or screen reader to understand the difference firsthand.
Good / Bad Comparison
See common mistakes side-by-side with recommended implementations to understand what goes wrong and why.
Implementation Checklist
Each pattern includes a ready-to-use checklist for code reviews.
Recent Changes
Tracking the latest changes to the W3C APG.
G183: Rework to be purely about contrast ratio
Sufficient technique G183 for SC 1.4.1 Use of Color was reworked to be purely about maintaining a contrast ratio of at least 3:1 with surrounding text. The former wording about additional visual cues on hover was removed and the title was changed. The new title is reflected in this site’s techniques data.
PR #5186(opens in a new tab)2.5.1 / 2.5.7: Clarify one cannot be the alternative for the other
Notes were added to the Understanding documents for SC 2.5.1 Pointer Gestures and SC 2.5.7 Dragging Movements clarifying that a dragging movement cannot serve as the alternative for a path-based gesture, and vice versa. No changes were needed to this site’s data.
PR #5212(opens in a new tab)Reinstate G200 as advisory for 3.2.5
Technique G200 (opening new windows and tabs from a link only when necessary), once deleted, was reinstated as an advisory technique for SC 3.2.5 Change on Request with its inaccurate wording removed. G200 is included again in this site’s techniques data (also associated with SC 3.2.1 as advisory, matching the current primary sources).
PR #5187(opens in a new tab)
All Patterns
Pick any pattern that interests you. Patterns marked "Coming soon" will be published gradually.
Show/Hide & Expand
Notifications & Dialogs
Alert
AvailableA notification that immediately announces important messages via a live region without moving focus.
Dialog (Modal)
AvailableA dialog that renders in the foreground while making the background inert. Requires a focus trap and Escape key to close.
Alert and Message Dialogs
AvailableA dialog that requires the user to confirm or respond, such as "Are you sure you want to delete?"
Navigation
Breadcrumb
AvailableNavigation showing the current location within a site. Uses nav, a list structure, and aria-current for the current page.
Menu and Menubar
AvailableAn application-style menu built with role="menu" and related roles, navigated using arrow keys.
Menu Button
AvailableA button that opens a menu on activation. Uses aria-haspopup and aria-expanded to convey the relationship.
Link
AvailableThe fundamental yet nuanced link. Explains why you should use the a element instead of a div with onclick.
Landmarks
AvailableDivides the page into regions using header, nav, main, footer, etc., enabling quick navigation for assistive technologies.
Forms & Input
Button
AvailableThe most fundamental control. Covers the built-in accessibility the button element provides and the pitfalls of custom implementations.
Checkbox
AvailableAn on/off selection control. Also covers handling the indeterminate (mixed) state.
Radio Group
AvailableSelects one option from many. A prime example of arrow key navigation with roving tabindex.
Switch
AvailableAn on/off toggle. Covers the difference from checkbox and how to use role="switch".
Combobox
AvailableA text input combined with a suggestion list (autocomplete). One of the most complex patterns in the APG.
Listbox
AvailableSelecting from a list of options. Supports single and multi-select with arrow key navigation.
Slider
AvailableSelects a value from a range. Uses aria-valuenow/min/max with keyboard operation.
Slider (Multi-Thumb)
AvailableRange selection such as price ranges. Key considerations include thumb interaction constraints and labeling.
Spinbutton
AvailableA numeric input that increments and decrements via Up/Down keys or buttons, with range announcements.
Meter
AvailableA read-only indicator showing a quantity within a known range, such as disk usage.
Tabs & Toolbars
Data Display
Table
AvailableTabular data. Properly associating the table element with header cells is key for screen reader announcement.
Grid
AvailableAn interactive table (data grid) where individual cells are keyboard-navigable.
Treegrid
AvailableA grid with expandable and collapsible rows. A composite of tree and grid patterns.
Tree View
AvailableDisplays a hierarchical structure. Supports expand/collapse and navigation similar to a folder tree.
Feed
AvailableMakes an infinitely scrolling article list navigable and readable with assistive technologies.
Others
Carousel
AvailableAutomatically rotating slides. Play/pause controls and screen reader considerations are essential.
Tooltip
UpdatedAvailableSupplementary text that appears on focus or hover. Uses aria-describedby with keyboard support.
Window Splitter
AvailableA resize handle that moves the boundary between two panes via drag or keyboard.