Redundant ARIA role duplicates implicit element semantics
Part of Documentation, UX & Accessibility, which counts for 15% of the overall score. When this check fires it deducts 2 points from that category, once per scan, no matter how many places it turns up.
What it detects
Elements like <button>, <img>, <nav>, or a linked <a> already expose the exact role an explicit role="..." attribute would add, so the attribute is dead weight: it adds a line to maintain and a chance for the role to drift from the element if the tag is later changed. Delete the redundant role attribute; the native element already provides it. Severity is informational since this never breaks anything, it is pure cleanup.
Why it matters
An explicit role="..." on an element that already implies that exact role through its tag (a <button> with role="button", an <img> with role="img") adds nothing: assistive technology already reads the native semantics. It is not a bug today, but it is a maintenance trap: if the tag is ever changed (a <button> refactored into something else) the stale role can silently start asserting the wrong semantics, and it is one more thing for a reviewer to double-check for no benefit.
How to fix it
Delete the redundant role attribute and let the native element speak for itself. This is a pure cleanup with no behavior change, verified by confirming the element's accessible role is unchanged before and after in devtools or an accessibility tree inspector.
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo