The 2025 TestParty Guide to WCAG 2.4.9 – Link Purpose (Link Only) (Level AAA)
Why did the "click here" link fail its accessibility audit? Because it had an identity crisis—nobody could tell where "here" was without reading the entire paragraph!
WCAG 2.4.9 requires that every link's purpose be clear from its text alone, without needing surrounding context. This Level AAA criterion ensures that users navigating by links—especially those using screen readers—can understand where a link goes before activating it.
Table of Contents
- What WCAG 2.4.9 Requires
- Why This Matters
- Quick Implementation Guide
- Common Mistakes to Avoid
- How to Test for WCAG 2.4.9
- How TestParty Helps
- FAQs
What WCAG 2.4.9 Requires
WCAG 2.4.9 demands that the purpose of each link be identifiable from the link text itself, without relying on surrounding paragraphs, headings, or other context.
Key requirements:
- Link text must be self-explanatory when read in isolation
- Users should understand the link's destination or function from the link text alone
- The only exception is when the link purpose would be ambiguous to everyone (not just people with disabilities)
- This applies to all links: navigation, in-content, buttons styled as links, and image links
What's covered:
- Text links (
<a>elements) - Image links (where the image is the only link content)
- Area elements in image maps
- PDF link annotations
- Icon-only links with accessible names
This is a stricter standard than Level A's 2.4.4 (Link Purpose in Context), which allows surrounding context to clarify link meaning.
Why This Matters
Screen reader users often navigate by pulling up a list of all links on a page. When links say "click here," "read more," or "learn more," that list becomes useless—just a column of identical, meaningless phrases.
Legal and compliance context:
While 2.4.9 is Level AAA (not required for most ADA Title II or Section 508 compliance), organizations pursuing comprehensive accessibility or serving federal contracts often adopt AAA criteria. The European Accessibility Act and EN 301 549 reference WCAG 2.1 Level AA as baseline, but many organizations exceed this standard. Courts have increasingly scrutinized vague link text in ADA lawsuits, even when not explicitly required.
Business benefits:
Descriptive links improve SEO—search engines use anchor text as ranking signals. They also improve usability for everyone: mobile users, people skimming content, and anyone trying to decide whether to follow a link.
Quick Implementation Guide
1. Make link text describe the destination or action
Instead of "click here to download," use "Download the 2024 annual report (PDF, 2.3 MB)."
2. Avoid generic phrases
Replace "read more," "click here," "learn more," and "more info" with specific descriptions.
3. For image links, ensure alt text is descriptive
<!-- Good: Alt text describes destination -->
<a href="/products/ergonomic-keyboard">
<img src="keyboard-thumb.jpg" alt="Ergonomic Keyboard Product Page">
</a>
<!-- Bad: Alt text doesn't indicate link purpose -->
<a href="/products/ergonomic-keyboard">
<img src="keyboard-thumb.jpg" alt="keyboard">
</a>4. Use `aria-label` when visible text must stay short
<!-- Visible text is "Pricing" but aria-label provides full context -->
<a href="/enterprise-pricing" aria-label="Enterprise pricing plans">
Pricing
</a>5. For icon-only links, provide accessible names
Use aria-label, aria-labelledby, or visually-hidden text (not title alone).
Key techniques: G91 (descriptive link text), H30 (anchor text), ARIA8 (aria-label), C7 (CSS to hide supplemental text).
Common Mistakes to Avoid
Generic link text scattered throughout pages
Dozens of "read more" or "learn more" links create an incomprehensible link list. Each needs unique, descriptive text.
Image links with missing or generic alt text
An image link with alt="image" or no alt text fails both 2.4.9 and 1.1.1 (Non-text Content). The alt text must describe the link's purpose, not just the image content.
Relying on `title` attribute alone
The title attribute is not reliably exposed to screen readers and doesn't satisfy 2.4.9. Use aria-label or descriptive link text instead.
Assuming surrounding context is enough
Even if a heading or paragraph makes the link purpose clear, 2.4.9 requires the link text itself to be self-explanatory. A link that says "download" after a paragraph about tax forms should say "Download 2024 tax forms (PDF)."
How to Test for WCAG 2.4.9
Automated checks:
- Scan for common generic phrases: "click here," "read more," "more," "here," "link"
- Flag image links with missing or generic alt text
- Identify links with identical text pointing to different destinations
Manual review (required):
- Generate a link list: Use a screen reader (NVDA, JAWS, VoiceOver) to pull up all links. Does each link make sense in isolation?
- Check context-dependent links: Look for links where meaning depends on surrounding text (e.g., "download" after a product name).
- Verify image links: Ensure alt text describes the link destination, not just the image.
- Test icon links: Confirm each has an accessible name that describes its purpose.
Browser tools:
- Use browser extensions (WAVE, Axe DevTools) to list all links and their accessible names
- Check the accessibility tree to see what screen readers announce
Automated tools catch obvious failures (missing alt text, "click here"), but human judgment is essential to verify that link text is truly descriptive and unambiguous.
How TestParty Helps
TestParty's AI-powered platform automates detection of vague and ambiguous link text, suggests context-aware fixes, and integrates compliance checks directly into your development workflow.
What TestParty detects:
TestParty's DOM and source code analysis flags:
- Generic link phrases ("click here," "read more," "more info," "learn more," "here")
- Image links with missing, empty, or generic alt text (e.g.,
alt="image"oralt="icon") - Multiple links with identical text pointing to different URLs (ambiguous purpose)
- Icon-only links missing accessible names (
aria-label,aria-labelledby, or visually-hidden text) - Links relying solely on
titleattributes for context - PDF link annotations without descriptive text
TestParty's pattern-matching engine identifies not just exact matches but variations and context-specific issues—such as "download" links that lack file type or size information.
How TestParty suggests fixes:
For each flagged link, TestParty generates AI-powered remediation suggestions:
- Contextual link text: TestParty analyzes surrounding headings, paragraphs, and page structure to suggest specific, descriptive link text. For example, a "read more" link in a blog post about WCAG 2.2 might become "Read more about WCAG 2.2 updates."
- Alt text for image links: Using computer vision and page context, TestParty suggests descriptive alt text that conveys link purpose (e.g., "View product details for Ergonomic Keyboard").
- Aria-label additions: When visible text must stay concise (e.g., icon links or space-constrained UI), TestParty suggests
aria-labelvalues that provide full context. - Visually-hidden text patterns: TestParty can generate CSS-hidden spans to supplement link text without changing visual design (using the C7 technique).
All suggestions are reviewed by your developers or TestParty accessibility specialists before being committed—ensuring fixes are accurate and contextually appropriate.
Developer workflow integration:
TestParty embeds link purpose checks into your SDLC:
- CI/CD gates: Block merges when new "click here" or image links without alt text are introduced, preventing regressions.
- Pull request annotations: TestParty comments on PRs with line-level feedback, flagging vague links and suggesting fixes inline.
- IDE integration: Real-time linting in VS Code, WebStorm, or your editor of choice—catch generic link text as you write it.
For ecommerce platforms (Shopify, WordPress, headless storefronts), TestParty works at the theme and template level. Fixing a "read more" link in a product card template cascades the improvement across thousands of product pages.
Ongoing monitoring:
TestParty's dashboard tracks link purpose compliance over time:
- Violation trends: See how many generic links exist, which pages have the most issues, and whether new violations are being introduced.
- Regression alerts: Get notified when a deployment reintroduces "click here" or breaks previously descriptive links.
- Audit-ready reports: Export detailed reports showing all link text, accessible names, and compliance status for legal or procurement reviews.
TestParty also provides embedded guidance with each flagged issue, explaining why "click here" fails 2.4.9 and offering best-practice examples. This helps teams build accessibility knowledge while fixing issues.
Because 2.4.9 requires human judgment—what's "descriptive" depends on context—TestParty balances automation with oversight. It surfaces issues, suggests fixes, and enforces standards, but your team retains control over final link text to ensure it's accurate and on-brand.
Some TestParty features described in this article are currently under development. Visit TestParty.ai to learn more about our current capabilities and roadmap, or book a demo at TestParty.ai/book-a-demo to see TestParty in action.
Disclaimer: Some of this article was generated with Large Language Models (LLMs) and Artificial Intelligence (AI). There may be some errors and we advise you to consult with human professionals for detailed questions.
FAQs About WCAG 2.4.9
What is WCAG 2.4.9 in plain language?
WCAG 2.4.9 requires that every link's purpose be clear from the link text alone, without needing to read surrounding sentences or headings. Screen reader users navigating by links should understand where each link goes or what it does just from hearing the link text.
Is WCAG 2.4.9 required for ADA compliance?
No, 2.4.9 is Level AAA and not required for ADA Title II or Section 508 baseline compliance (which reference Level AA). However, many organizations adopt AAA criteria for comprehensive accessibility, and courts have scrutinized vague link text in ADA cases even when not explicitly required.
What's the difference between WCAG 2.4.4 and 2.4.9?
WCAG 2.4.4 (Level A) allows link purpose to be determined from link text plus surrounding context (like a heading or paragraph). WCAG 2.4.9 (Level AAA) requires link purpose to be clear from the link text alone, without any surrounding context.
Can I use "read more" if I add aria-label?
Yes, if you add an aria-label that provides full context (e.g., aria-label="Read more about WCAG 2.4.9 compliance"), the link satisfies 2.4.9. The visible text can stay "read more," but the accessible name must be descriptive.
Do identical links need unique text?
Only if they point to different destinations. Multiple "Contact Us" links pointing to the same contact page are fine. But if "download" links point to different files, each needs unique text (e.g., "Download user guide (PDF)" vs. "Download installation instructions (PDF)").
How do I handle icon-only links?
Icon-only links must have an accessible name via aria-label, aria-labelledby, or visually-hidden text. The accessible name should describe the link's purpose (e.g., aria-label="View shopping cart" for a cart icon). The title attribute alone is insufficient.
Stay informed
Accessibility insights delivered
straight to your inbox.


Automate the software work for accessibility compliance, end-to-end.
Empowering businesses with seamless digital accessibility solutions—simple, inclusive, effective.
Book a Demo