WCAG 2.4.4 Link Purpose (In Context)

WCAG 2.2 success criterion 2.4.4, Link Purpose (In Context), is a Level A requirement: link text describes where the link goes. It’s among the most common failures on the web: WebAIM found detectable WCAG failures on 95.9% of the top million home pages, and this criterion covers one of the six failure types they found most often (WebAIM Million, 2026 (opens in a new tab)).

Read the criterion in the W3C Recommendation, WCAG 2.2 (opens in a new tab).

How BearScan checks it

Link text describes where the link goes

Checked automatically: reads the HTML. Severity: medium. Screen-reader users navigate by pulling up a list of links. A list of "Read more, Read more, Click here" tells them nothing.

An approximation: Fails links with no accessible name. Every link label is read by a decisions model (TypeSafe's Jev), in any language, for whether it says where it goes on its own. A generic one is then read again with the words 2.4.4 lets supply its purpose (its sentence, list item or table cell, and the heading before it): it fails at 80% sure those words do not say where it goes, and asks for review between that and 70% sure they do. Context supplied only by aria-describedby or the page's layout is not read.

How to fix it. Write link text that names the destination ("Read the returns policy"), or give generic links an aria-label that does. Every link needs some accessible name.

All WCAG 2.2 criteria · Next: 2.4.5 Multiple Ways

Questions

Is WCAG 2.4.4 required by the ADA?

The ADA doesn't name a technical standard for businesses, but the Justice Department's 2022 guidance points businesses to WCAG, and its 2024 rule for state and local governments adopted WCAG 2.1 Level AA, which includes 2.4.4.

Can an automated tool check WCAG 2.4.4?

Mostly. BearScan checks it automatically (reads the HTML). A clean result still isn't proof every page passes, only the pages scanned.

How do I fix a WCAG 2.4.4 failure?

Write link text that names the destination ("Read the returns policy"), or give generic links an aria-label that does. Every link needs some accessible name.