WCAG 2.1 · Level A · Operable

WCAG 2.4.4 — Link Purpose (In Context), explained with examples

The purpose of every link must be clear from its link text, or from its text combined with the surrounding context. Screen readers can list every link on a page. "Click here", "Read more", and "Learn more" become identical entries with no distinguishing information.

Number
2.4.4
Level
A
Principle
Operable
Guideline
2.4 Navigable

Why this criterion exists

Screen readers can list every link on a page. "Click here", "Read more", and "Learn more" become identical entries with no distinguishing information.

If you only remember one thing: the purpose of every link must be clear from its link text, or from its text combined with the surrounding context. Everything else on this page is detail.

Who feels it when this fails

Accessibility criteria sometimes feel abstract until you see who pays the cost when a site ignores them. Link Purpose (In Context) affects:

  • Screen reader users navigating by link list

  • Voice control users selecting links by text

How sites typically fail it

These are the patterns we see week after week. None are intentional — they are accidents of how teams build interfaces under deadline. Knowing the failure modes is the fastest path to writing them out of your component library.

  • "Click here" / "Read more" without context

  • Icon-only links without aria-label

  • Different links sharing the same text but different destinations

How to test for it

  • List all links with a screen reader; each should make sense in isolation.

Automated scanners catch this criterion most of the time, but never all of the time. Manual testing with the keyboard and a screen reader closes the gap.

A code fix you can copy

Move the meaningful text into the link, or extend it visually-hidden text for the screen reader.

The problem

HTML
<p>Read about our pricing. <a href="/pricing">Read more</a>.</p>

The fix

HTML
<p><a href="/pricing">Read about our pricing</a>.</p>
<!-- Or, when "Read more" must remain visually: -->
<a href="/pricing">Read more <span class="sr-only">about pricing</span></a>

Move the meaningful text into the link, or extend it visually-hidden text for the screen reader.

Frequently asked questions

Is "Learn more" always a 2.4.4 failure?

"Learn more" is a failure when it is the only accessible name for a link. It passes if the surrounding context — within the same sentence, paragraph, list item, or table cell — makes the destination unambiguous to a screen reader reading in linear mode. The safest fix is always to put the descriptive text inside the link itself rather than relying on context.

How does a screen reader navigate links?

Screen reader users routinely pull up a list of all links on the page (NVDA: NVDA+F7, VoiceOver: VO+U then arrow to Links). In that list, every link appears without its surrounding context. "Read more" listed ten times is useless. "Read more about WCAG 1.1.1", "Read more about keyboard traps", "Read more about contrast" — each is immediately useful.

What about links that use aria-label to override visible text?

If you use aria-label on a link, it completely overrides the visible text as the accessible name. A link that says "Buy" but has aria-label="Buy MacBook Pro 14-inch" is fine and passes 2.4.4. A link that says "Click here" but has aria-label="Learn more" is no better. Voice control users (Dragon NaturallySpeaking) say the visible text — so aria-label must contain the visible text per WCAG 2.5.3.

Other Operable criteria

Find every accessibility issue on your site in 60 seconds.

Free public scan. No card. AI-generated fixes for every issue we find.