ARIA Attributes Cheat Sheet
1. Naming and Labeling Attributes
aria-label
Provides an accessible name (text label)
<button aria-label="Close menu"></button>
aria-labelledby
References one or more elements that label this
<div aria-labelledby="header1">...</div>
aria-describedby
References element(s) that describe this element
<input aria-describedby="hint1">
aria-valuetext
Overrides the text representation of a value
<div role="slider" aria-valuetext="Halfway"></div>
2. State and Property Attributes
aria-hidden
Hides element from assistive tech
"true"
or "false"
aria-disabled
Indicates element is disabled
"true"
or "false"
aria-checked
Check state for checkbox, radio, or menuitemcheckbox
"true"
, "false"
, or "mixed"
aria-selected
Indicates selection in list, grid, tablist, etc.
"true"
or "false"
aria-expanded
Shows if expandable element is expanded
"true"
or "false"
aria-pressed
Toggle button pressed state
"true"
, "false"
, or "mixed"
aria-required
Marks input as required
"true"
or "false"
aria-readonly
Element is read-only
"true"
or "false"
aria-busy
Indicates loading or updating content
"true"
or "false"
3. Relationships and Ownership Attributes
aria-controls
Identifies element(s) controlled by this element
<button aria-controls="menu1">Toggle Menu</button>
aria-owns
Creates a parent/child relationship not in DOM
<div aria-owns="item1 item2">...</div>
aria-activedescendant
Identifies currently active child element
<input aria-activedescendant="option3">
aria-flowto
Indicates next element in reading order
<div aria-flowto="section2">...</div>
4. Live Region Attributes
aria-live
Announces dynamic updates to assistive tech
"off"
, "polite"
, "assertive"
aria-atomic
Whether updates are presented as a whole or partial
"true"
or "false"
aria-relevant
What types of changes are relevant for announcements
"additions"
, "removals"
, "text"
5. Widget-Specific Attributes
aria-valuenow
Current value for slider, spinbutton, progressbar
<div role="slider" aria-valuenow="50">
aria-valuemin
Minimum value
<div role="slider" aria-valuemin="0">
aria-valuemax
Maximum value
<div role="slider" aria-valuemax="100">
aria-colcount
Number of columns in a grid or table
<table aria-colcount="5">
aria-rowcount
Number of rows in a grid or table
<table aria-rowcount="10">
aria-colindex
Index of column
<td aria-colindex="3">
aria-rowindex
Index of row
<tr aria-rowindex="2">
6. Modal and Dialog Attributes
aria-modal
Indicates a modal dialog
<div role="dialog" aria-modal="true">...</div>
aria-describedby
Description for dialog or alert
<div id="desc1">Form is required</div><div role="alert" aria-describedby="desc1">Error</div>
7. Miscellaneous Attributes
aria-live
Live region announcements
<div aria-live="polite">Content updated</div>
aria-atomic
Atomic updates of live region
"true"
or "false"
aria-haspopup
Indicates presence of popup/menu/dialog
<button aria-haspopup="true">Open Menu</button>
aria-level
Heading or treeitem level
<h2 role="heading" aria-level="2">Section title</h2>
Notes and Best Practices
Prefer native HTML semantics before using ARIA attributes.
Use ARIA to enhance accessibility for custom or complex widgets.
Combine ARIA roles and attributes for clear, rich information.
Test your pages with screen readers and keyboard navigation.
Avoid overusing
aria-hidden="true"
which can hide content from assistive tech unintentionally.
Last updated