Redundant ARIA Role
Every HTML element carries an implicit ARIA role. An <a href> is already a link, a <nav> is already a navigation landmark, a <ul> is already a list. Writing the role again changes nothing for assistive technology and adds a second source of truth that can drift from the first.
How common is this error?
We ran this validator over the home page of the Tranco top 5,000 websites in August 2026. 748 of the 2,655 sites we could reach hit it. That makes it the 8th most common HTML problem we found, across 6,095 occurrences. See the full study.
Most frequent wording: Redundant role "link" on <a>
Why It Matters
Harmless at runtime, costly in maintenance, and found on 28% of sites. The real risk is what redundancy teaches: a codebase full of roles that do nothing trains its authors to sprinkle roles without checking, and eventually one lands on an element where it overrides the correct semantics with a wrong one.
Common Causes
- Older accessibility guidance from the HTML5 transition, when landmark roles were added for browsers that did not yet map the new elements.
- Linters or checklists that ask for landmark roles without distinguishing implicit from explicit.
- Copying markup from a tutorial written before the implicit mappings were reliable.
Code Examples
<a href="/pricing" role="link">Pricing</a> <nav role="navigation">...</nav> <header role="banner">...</header> <ul role="list"><li role="listitem">One</li></ul>
<a href="/pricing">Pricing</a> <nav>...</nav> <header>...</header> <ul><li>One</li></ul>
How to Fix
- 1Delete the role when it matches the element's implicit one. The first rule of ARIA is not to use ARIA when native HTML already says it.
- 2Keep a role only when it genuinely differs, such as role="tablist" or role="alert", which no element implies.
- 3Check the implicit role before adding one: MDN lists it for every element.
- 4Treat a redundant role as a smell worth reading. If someone felt the need to add it, the surrounding markup may not be as semantic as it looks.
Frequently Asked Questions
Do redundant roles hurt accessibility?
Why do people add role="list" to a <ul>?
Should I add landmark roles for older browsers?
Check Your HTML Now
Our validator detects this error automatically and shows the exact line number.
Open HTML ValidatorRelated HTML Errors
ARIA Role Instead of a Native Element
A div with role="button" is not a button. Learn what native elements give you for free (focus, keyboard, forms) and what you must rebuild by hand without them.
Deprecated HTML Attribute
align, bgcolor, border and the anchor name attribute were removed from HTML5. Learn the modern replacement for each and why id beats name for anchors.
Incorrect Tag Nesting
Incorrect HTML nesting makes browsers silently rewrite your DOM. Learn the nesting rules and fix p inside p, div inside span, and other broken structures.