Links Must Have Discernible Text: Fix Empty and Icon-Only Links

No Comments
Links must have discernible text: fix empty and icon-only links

Your audit flagged one or more links that a screen reader announces as nothing more than "link" — no words, no destination, no clue. This is the axe-core link-name rule, and it maps to WCAG 2.4.4 (Link Purpose in Context) and 4.1.2 (Name, Role, Value). A link with no discernible text is invisible to assistive tech and a dead end for the crawlers that follow your links to understand your site.

What "discernible text" actually means for a link

A link's accessible name is the text a screen reader reads aloud when a user lands on it. Sighted users get that name from visible words. A blind user, or Google's crawler, gets it from the accessible name computation: the text inside the anchor, or an aria-label, or the alt of an image inside the link. When all of those are empty, the link has no name. That's the failure.

The three usual suspects: an anchor wrapping only an icon font (<i class="fa-twitter">) with no label, an anchor wrapping an image that has an empty alt, or a completely empty anchor left behind by a page builder.

A real failing example and the fix

<!-- FAILS: icon-only link, screen reader says just "link" -->
<a href="/contact"><i class="icon-envelope"></i></a>

<!-- FAILS: image link with empty alt -->
<a href="/"><img src="logo.svg" alt=""></a>

<!-- FAILS: empty anchor from a builder -->
<a href="/pricing"></a>
<!-- FIXED: give the icon link an accessible name -->
<a href="/contact" aria-label="Contact us">
  <i class="icon-envelope" aria-hidden="true"></i>
</a>

<!-- FIXED: describe where the logo link goes -->
<a href="/"><img src="logo.svg" alt="Acme Tools home"></a>

<!-- FIXED: real, visible link text -->
<a href="/pricing">See pricing</a>

Note the aria-hidden="true" on the icon. Once the anchor has an aria-label, you hide the decorative glyph so the name doesn't get muddied.

Failure pattern to accessible fix

What the audit foundWhy it has no nameThe fix
Icon-only link (<a><i></i></a>)Icon fonts carry no text nodeAdd aria-label on the anchor, aria-hidden on the icon
Image link, alt=""Empty alt gives the image no name to pass upWrite a destination-based alt (not "logo")
Empty anchorNo child content at allAdd visible text, or remove the dead link
SVG-only linkInline SVG has no <title>Add <title> inside the SVG or aria-label on the anchor
Text hidden with display:noneHidden text is excluded from the nameUse aria-label or visually-hidden CSS instead

Why it matters for accessibility and SEO

For a keyboard or screen-reader user, an unnamed link is a locked door. They hear "link, link, link" down your navigation with no way to tell where any of them go. That alone fails the audit, and it makes your site genuinely unusable for a chunk of your audience.

On the search side, anchor text is a ranking signal — it's how Google infers what the target page is about. An empty or icon-only link passes zero descriptive context to the destination. A link that says "See pricing" tells both the user and the crawler exactly what waits on the other side; an empty <a> tells nobody anything.

How to detect it on your own site

  1. axe DevTools — install the browser extension, open DevTools, run a scan, and filter for the link-name rule. It points to the exact anchor.
  2. Lighthouse — run the Accessibility category in Chrome DevTools; "Links do not have a discernible name" appears under failing audits with the offending nodes.
  3. WAVE — the wave.webaim.org extension flags "Empty Link" with a red icon right on the page.
  4. Manual tab test — tab through the page. When focus lands on a link, check the status bar or listen with a screen reader (VoiceOver: Cmd+F5). If it announces "link" and nothing else, it's unnamed.
  5. Devtools inspection — right-click the link, Inspect, and read the Accessibility panel's "Name" field. Empty means flagged.

How to fix it

  1. Open the flagged link in your template or page builder.
  2. Decide the true destination and write a short, human name for it ("Contact us", "Download the guide", "Acme home").
  3. If there's visible text that fits, put it inside the anchor. If the design is icon-only by choice, add aria-label to the anchor and aria-hidden="true" to the icon.
  4. For image links, replace the empty alt with text describing the destination, not the picture.
  5. For inline SVG, add a <title> element as the first child, or an aria-label on the anchor.
  6. Re-run axe or Lighthouse to confirm the count drops to zero.

FAQ

Is title the same as aria-label for naming a link?

No. The title attribute only appears on mouse hover and is inconsistently exposed to screen readers, so axe won't accept it as a reliable name. Use aria-label or real link text.

Does adding aria-label hurt my SEO?

It doesn't hurt, but visible anchor text is stronger. Google reads on-page text more confidently than ARIA attributes, so prefer real words in the link when the design allows, and reserve aria-label for genuinely icon-only controls.

My logo link keeps getting flagged. Why?

Because the logo image has alt="". A logo that links home is functional, not decorative, so it needs a name. Set alt="Brand name home" on the image.

Is this an error or a warning?

axe-core rates link-name as a serious violation, not a soft warning. It's a genuine barrier, so treat every flagged instance as something to fix rather than dismiss.

What about "click here" links — are those flagged too?

Not by this rule. "Click here" has discernible text, so it passes link-name, but it's still weak. See our note on non-descriptive anchor text for why generic labels underperform.

Related checks

This is the link-specific sibling of two other "discernible text" checks: buttons must have discernible text (for <button> controls) and form input elements must have labels. Also worth a look: same link text should go to the same place, and the broader picture in accessibility and SEO.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog