2.4.9 Link Purpose (Link Only)
A mechanism is available to allow the purpose of each link to be identified from link text alone, except where the purpose of the link would be ambiguous to users in general.
What this rule means
WCAG 2.4.9 is the enhanced version of 2.4.4 (Link Purpose — In Context). While 2.4.4 allows link purpose to be determined from surrounding context, this AAA criterion requires that every link's purpose can be determined from the link text alone — without relying on the surrounding paragraph, heading, or list item.
This means link text like "Read more" is never acceptable under this criterion, even if the surrounding context clarifies the destination. Every link must be self-descriptive. The only exception is when the link's purpose would be ambiguous to all users, not just assistive technology users.
Why it matters
Screen reader users commonly navigate using a links list — a dialog that shows all links on the page extracted from their context. When link text is self-descriptive, users can scan this list and immediately find the link they need. This is significantly faster and more efficient than navigating to each link in the page and relying on surrounding content for context.
Self-descriptive links also benefit users of voice control software who activate links by speaking their visible text, and users with cognitive disabilities who may not track the relationship between link text and surrounding context.
Related axe-core rules
- identical-links-same-purpose — Ensures that links with identical accessible names serve the same purpose.
How to test
- Generate a list of all links on the page (screen reader links list or browser extension).
- Review each link in isolation — can you determine where it leads without any surrounding context?
- Run axe-core to detect identical-links-same-purpose violations.
- Check that no links use generic text like "click here", "read more", "learn more", or "here" as standalone link text.
- Verify that image links have alt text that fully describes the link destination.
How to fix
Replace all generic link text with self-descriptive text, or use aria-label to provide descriptive accessible names.
Self-descriptive link text
<!-- Fails 2.4.9: Requires context to understand -->
<article>
<h3>Accessibility Audit Service</h3>
<p>We test your site for compliance. <a href="/services/audit">Read more</a></p>
</article>
<!-- Passes 2.4.9: Link text is self-descriptive -->
<article>
<h3>Accessibility Audit Service</h3>
<p>We test your site for compliance.
<a href="/services/audit">Learn about our accessibility audit service</a>
</p>
</article>
Cards with self-descriptive links
<!-- Fails: Multiple "View details" links on the same page -->
<div class="card">
<h3>Monthly Report</h3>
<a href="/reports/monthly">View details</a>
</div>
<div class="card">
<h3>Annual Summary</h3>
<a href="/reports/annual">View details</a>
</div>
<!-- Passes: Each link is uniquely descriptive -->
<div class="card">
<h3>Monthly Report</h3>
<a href="/reports/monthly">View monthly report details</a>
</div>
<div class="card">
<h3>Annual Summary</h3>
<a href="/reports/annual">View annual summary details</a>
</div>
Using aria-label when visual text must be short
<!-- Visual design requires "Read more" but a11y needs detail -->
<a href="/blog/wcag-guide"
aria-label="Read more about the complete WCAG compliance guide">
Read more
</a>
Common mistakes
- Any use of "click here", "read more", "learn more", "here", or "more" as link text — even with surrounding context.
- Multiple links with the same text pointing to different destinations (e.g., multiple "Download" links).
- Relying on aria-describedby for link purpose — this adds a description but does not change the accessible name.
- Image links where the alt text says "icon" or "image" instead of describing the link destination.
- Links that combine an image and text but result in duplicate announcements by screen readers.
Resources
- Deque: identical-links-same-purpose Rule— Deque University