WCAGdesk
axe-core: link-name · WCAG 2.4.4 Link Purpose (In Context) · Level A

How to fix the “link-name” accessibility issue

The axe-core link-name rule fails when a link has no accessible name — typically an icon-only link with no text. Screen-reader users hear “link” with no destination. WCAG 2.2 (2.4.4 / 4.1.2, Level A) requires every link to expose its purpose.

What axe-core checks

axe-core fails any <a href> whose computed accessible name is empty — no visible text, no aria-label, and no image alt inside it.

Which standard this maps to

WCAG 2.22.4.4 Link Purpose (In Context) (Level A)
EN 301 5499.2.4.4
BFSG / EAABFSG § 12 via EN 301 549 · EAA Annex I
CategoryLinks & Navigation

Why it matters

Icon links (cart, search, social) are everywhere in e-commerce headers. Without a name they are dead ends for keyboard and screen-reader users — a Level A failure, and an obvious one for a tester to demonstrate in a BFSG complaint.

Common causes

  • Icon-only links (cart, menu, social) with no label
  • Links wrapping an <img> that itself has empty alt
  • Links wrapping an inline <svg> with no title
  • Generic “click here” / “read more” without context

How to fix it

Give the link a name: visible text, an aria-label, or alt text on the contained image. For SVG icons, add an aria-label on the link.

<!-- Fails: no accessible name -->
<a href="/cart"><svg>…</svg></a>

<!-- Passes -->
<a href="/cart" aria-label="Shopping cart"><svg aria-hidden="true">…</svg></a>

FAQ

Does aria-label override visible text?

Yes — aria-label replaces the accessible name. Prefer visible text when possible; use aria-label for icon-only links.

Is “read more” a failure?

Not flagged by axe (it has text), but it is poor practice — make link text describe the destination.

Find every issue like this on your site

Run a free WCAG 2.2 AA scan — real axe-core engine, no signup. Or get a timestamped evidence report for €29.