Control has no accessible name
73 audited sites hit the "Control has no accessible name" issue; this hub breaks it down by platform, gatekeeper, vertical and country.
What it means
An element with role="button" (or similar interactive role) that has no aria-label, aria-labelledby, or visible text content. The element exists in the DOM but has no accessible name, so screen readers and AI agents can't tell what it does.
Why it matters
Without an accessible name, the element is invisible to assistive technology and to AI agents that parse semantic HTML. This means links, buttons, and nav items with empty or missing names won't be discovered or followed by crawlers and agents, reducing internal link equity and breaking navigation for both users and AI retrieval systems.
How to fix it
- Add descriptive
aria-label="<purpose>"oraria-labelledby="<id>"to the element. - Replace
role="button"on a<div>with a native<button>element, which carries its own accessible name from its text content. - Ensure the element has visible text (e.g.,
<button>Submit</button>) or analtattribute if it's an image-based button. - Verify with a screen reader and axe DevTools that the accessible name is now reported.
When it's not a problem
It's acceptable when the element is decorative and truly non-interactive (e.g., a purely visual icon with aria-hidden="true"), or when it's part of a larger labeled container where the parent provides the accessible name via aria-labelledby.
How common is it?
73 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.
Audit your own site — free
77 checks, internal PageRank, render-diff. No signup, results in ~30s.