ARIA Roles and Properties Accessibility Audit
Guide to auditing ARIA roles, states, and properties for WCAG 2.1 criteria 4.1.2 and 4.1.3. Covers custom widgets, live regions, landmarks, and common ARIA mistakes.
Detailed Explanation
ARIA Roles and Properties Audit
ARIA (Accessible Rich Internet Applications) attributes bridge the gap between custom UI components and assistive technologies. WCAG criteria 4.1.2 (Name, Role, Value) and 4.1.3 (Status Messages) directly depend on correct ARIA usage.
When to Use ARIA
The first rule of ARIA is: do not use ARIA if native HTML can achieve the same result. Native <button>, <input>, <select>, and <nav> elements have built-in accessibility.
ARIA is needed when:
- Building custom widgets (tabs, accordions, comboboxes)
- Creating dynamic content updates (live regions)
- Providing additional context (descriptions, labels)
- Defining page landmarks beyond HTML5 semantics
Key ARIA Attributes to Audit
Roles: Verify custom widgets use correct roles:
role="tablist",role="tab",role="tabpanel"for tab interfacesrole="dialog"for modal dialogsrole="menu",role="menuitem"for application menusrole="alert"for important, time-sensitive messages
States: Verify dynamic states are updated:
aria-expanded="true/false"for collapsible sectionsaria-selected="true/false"for tabs and list itemsaria-checked="true/false"for custom checkboxesaria-disabled="true/false"for disabled controls
Properties: Verify relationships are defined:
aria-labeloraria-labelledbyfor accessible namesaria-describedbyfor additional descriptionsaria-controlsto connect triggering elements to controlled regionsaria-live="polite/assertive"for dynamic content updates
Common ARIA Mistakes
- Using ARIA instead of native HTML —
<div role="button">instead of<button> - Incorrect role hierarchy —
role="tab"not insiderole="tablist" - Missing required children —
role="list"withoutrole="listitem"children - Stale ARIA states —
aria-expandednot updating when toggled - Conflicting roles — Applying ARIA roles to elements with implicit roles
Use Case
ARIA auditing is essential for any web application using custom widgets, single-page architecture, or dynamic content updates. React, Vue, and Angular applications frequently need ARIA attributes for custom components. Front-end developers should verify ARIA during code review.
Try It — Accessibility Audit Checklist
Perceivable
Operable
Understandable
Robust
50 criteria shown · Click the status badge to cycle through Pass / Fail / N/A / Untested