WCAG 2.4.9 — Link Purpose (Link Only)
At AAA, "click here" is finally a hard fail. The link text alone — out of context, lifted into a list of every link on the page — must say where the link goes.
What this requires
The purpose of each link must be identifiable from the link text alone, except where the purpose would be ambiguous to users in general. The AA criterion (2.4.4) lets context disambiguate; the AAA criterion removes that escape hatch. A screen-reader user who pulls up the "list all links" view should be able to understand each link without surrounding content.
How AI coding tools fail this
When asked to write microcopy or generate link text, AI tools default to spatial or generic phrasing: "read more", "learn more", "click here", "see details". The text is fine in context — the surrounding paragraph names the topic — and is meaningless out of context.
The second pattern: card layouts where the link is the title of the card but the card body is the content that explains it. Lifted out of the card, the link text "Q3 launch" doesn't say "blog post about the Q3 launch announcement".
The third: identical link text pointing to different destinations. Five "Read more" links on the same page, each pointing to a different article. The screen-reader user can't tell them apart.
Edge cases
- Exception for inherently ambiguous links. A list of search results where every item is "result 1", "result 2", "result 3" is the example the spec gives. In practice this exception is narrow.
- Programmatic context counts in 2.4.4 (the surrounding sentence
or
aria-describedby), but not in 2.4.9. The text itself must stand alone. - Repeated identical link text to the same destination is fine — it's still unambiguous.
- Icons-only links need an accessible name from
aria-labelor visually hidden text. The criterion measures the accessible name, not the visible text alone. - "Skip to main content" and similar utility links are unambiguous by convention.
How Jeikin handles this
axe-core detects generic link text patterns ("click here", "read more", "learn more"). For AAA-targeting projects, the dashboard treats these as hard fails rather than warnings. The reviewer can record an exception with a documented reason (e.g. "search results where titles are intentionally generic").