Control has no accessible name: how to fix it
Buttons and controls without an accessible name break screen readers and AI agents. Find unnamed controls and learn how to label them properly.
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.
Example
<button><svg>...</svg></button>
<a href="/cart"><img src="/cart.svg"></a><button aria-label="Open menu"><svg>...</svg></button>
<a href="/cart" aria-label="View cart"><img src="/cart.svg" alt=""></a>Icon-only buttons and links have no text, so their accessible name is empty. Add aria-label so screen readers and AI agents know what they do.
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 Crawlinx detects it
We inspect interactive elements (buttons, links) for a computed accessible name — visible text, aria-label, or aria-labelledby. Elements with none are counted and reported; an agent can't target a control it can't name.
How common is it?
10035 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.
FAQ
- What is an accessible name?
- The label assistive tech announces for a control, computed from its visible text, aria-label, aria-labelledby, or an image's alt. Icon-only controls with none are effectively unlabeled.
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.