- What ARIA Is and What It Is Meant For
- Common ARIA Misuse Patterns
- Adding Roles That Already Exist
- Assigning the Wrong Role
- Using ARIA to Fake Semantic HTML
- Why Incorrect ARIA Is Dangerous
- Where ARIA Is Commonly Overused
- Principles for Using ARIA Correctly
- Example of Proper ARIA Usage
- Mistakes to Avoid
- Benefits of Using ARIA Correctly
- Conclusion
This problem is especially common in custom UI components and JavaScript-heavy applications.
What ARIA Is and What It Is Meant For
ARIA (Accessible Rich Internet Applications) is a set of attributes designed to provide additional semantic information when native HTML alone is not sufficient.
ARIA should be used only when:
- No native HTML element correctly represents the UI component
- The interface is built dynamically with JavaScript
- Extra state or role information must be exposed to assistive technologies
A critical rule of accessibility: if native HTML can do the job, do not use ARIA.
Common ARIA Misuse Patterns
Adding Roles That Already Exist
<button role="button">Submit</button>
The <button> element already has a default role. Adding another one is redundant and potentially harmful.
Assigning the Wrong Role
<a href="#" role="button">Open</a>
A link is not a button. If the behavior is a button, use a <button> instead of patching semantics with ARIA.
Using ARIA to Fake Semantic HTML
<div role="heading" aria-level="2">
Section Title
</div>
This should be written as:
<h2>Section Title</h2>
Why Incorrect ARIA Is Dangerous
ARIA misuse is more harmful than many basic accessibility errors.
- Screen readers may announce incorrect roles or states
- Different assistive technologies may behave inconsistently
- Debugging accessibility issues becomes extremely difficult
- Accessibility scores can drop despite added ARIA
Incorrect ARIA is often worse than having no ARIA at all.
Where ARIA Is Commonly Overused
- Custom buttons and dropdowns
- Hand-built modals and dialogs
- Complex JavaScript components
- Interfaces trying to “force” accessibility compliance
Principles for Using ARIA Correctly
- Always prefer native semantic HTML
- Never add roles to elements that already have them
- Do not use ARIA to fix invalid HTML
- Use ARIA only to enhance, not replace, semantics
- Test with real screen readers, not just audit tools
Example of Proper ARIA Usage
ARIA is appropriate when adding state information:
<button aria-expanded="false">
Open menu
</button>
In this case, ARIA supplements native HTML with meaningful state information.
Mistakes to Avoid
- Adding ARIA everywhere “just in case”
- Using roles to compensate for poor semantic structure
- Copying ARIA patterns without understanding them
- Fixing audit warnings without understanding the cause
Benefits of Using ARIA Correctly
When ARIA is applied properly:
- Screen readers interpret UI components accurately
- User experience becomes more consistent
- Code is cleaner and easier to maintain
- Accessibility improves in meaningful ways
Conclusion
The ARIA roles used incorrectly error is not caused by a lack of accessibility knowledge, but by misapplying that knowledge. ARIA is a powerful tool, but it must be used with restraint. Semantic HTML is always the foundation, and ARIA should only be added when it truly provides value.
Comments