Catalog/Control has no accessible name
SEO issue

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.

10035
audited sites affected

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

  1. Add descriptive aria-label="<purpose>" or aria-labelledby="<id>" to the element.
  2. Replace role="button" on a <div> with a native <button> element, which carries its own accessible name from its text content.
  3. Ensure the element has visible text (e.g., <button>Submit</button>) or an alt attribute if it's an image-based button.
  4. Verify with a screen reader and axe DevTools that the accessible name is now reported.

Example

Before — HTML
<button><svg>...</svg></button>
<a href="/cart"><img src="/cart.svg"></a>
After — HTML
<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.
Breakdowns

CMS

View breakdown →

Category

View breakdown →

Related
Catalog Invalid ARIA role Category CMS Dialog has no accessible name Heading levels skip a level No llms.txt for AI agents No main landmark for AI agents

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →