What ARIA Can Do
- Add roles to define what an element is
(e.g.,role="dialog",role="tablist") - Add states and properties
(e.g.,aria-expanded,aria-hidden) - Provide labels and descriptions
(aria-label,aria-labelledby,aria-describedby)
ARIA is a standard for adding accessibility information to HTML elements, especially when building custom components with no native equivalents.
It is critical for assistive technologies to understand the role, state, and properties of elements that might not be natively accessible.
role="dialog", role="tablist")aria-expanded, aria-hidden)aria-label, aria-labelledby, aria-describedby)Only use ARIA when there’s no accessible native element.
ARIA only describes elements—it doesn’t make them interactive.
For example, when a dropdown opens, set aria-expanded="true".
Don’t guess—check the WAI-ARIA specification.
Use aria-label, aria-labelledby, or native <label> elements.
ARIA can behave differently across devices and browsers.
Example: <div role="button"> instead of <button>
→ This removes native keyboard and screen reader behavior.
Using role="navigation" on non-navigation content will confuse users, or using a role="menu" to indicate a navigation menu instead of an application menu.
Dialogs and menus need focus traps and to return focus when closed. Conversely, ensure there are no focus traps in main page content.