How to fix: Links with generic text
Replace vague link text like "click here", "read more", or "learn more" with words that describe where the link goes, so the link still makes sense when read on its own.
What it is
Generic link text is a link whose words say nothing about its destination: "click here", "read more", "learn more", "more", "details", or just "here". WCAG Success Criterion 2.4.4 Link Purpose (In Context) requires that the purpose of a link be determinable. A link can technically meet that bar from its surrounding sentence, but vague words force every user to stop and reconstruct the context, and they fail outright the moment the link is pulled out of that context.
The reason this matters so much is how screen reader users actually browse. Many do not read pages top to bottom; they open a generated list of every link on the page and scan it like a menu. In that list there is no surrounding paragraph, so ten links that all read "read more" become ten identical, meaningless entries. The user cannot tell the pricing link from the careers link from the blog link.
The fix is to make the link text self-describing. Instead of "click here to see our pricing", make the words "see our pricing" (or just "Pricing") the link. Instead of a row of "Read more" links under article teasers, link the article titles. Good link text works standing alone, with no help from the sentence around it.
Who it affects & why it matters
Screen reader users are affected most directly, because the out-of-context links list they rely on to navigate is only as useful as the link text in it. A page full of "click here" links is effectively a page with no navigable links at all.
It also affects voice-control users, who activate a link by speaking its name (saying "click read more" is ambiguous when five links share that name), and sighted users skimming a page, who scan for link text as visual landmarks. Descriptive links speed everyone up.
Generic link text is a Level A failure under SC 2.4.4, the most basic conformance tier, and links are a recurring category in automated WCAG audits because vague wording is so easy to detect at scale. WCAG 2.1 Level AA is the de-facto benchmark U.S. courts apply to ADA Title III claims, and Level AA includes every Level A criterion, so this failure sits squarely inside the standard plaintiff firms cite.
ADA website lawsuits have climbed year over year, and the majority target businesses under $25 million in revenue, exactly the segment that tends to ship "read more" buttons without a second thought. The fix carries almost no cost: you are rewriting a few words of visible copy, which often improves clarity and link SEO at the same time.
How to fix it
- Scan the page for links whose visible text is a generic phrase such as "click here", "read more", "learn more", "more", "details", or "here".
- For each one, rewrite the link so its words describe the destination or action, for example "View pricing" or "Read the WCAG checklist".
- When the same call to action repeats (article teasers, card grids), link the unique title or topic instead of a shared "Read more" label.
- Confirm each link makes sense read entirely on its own, with the surrounding sentence covered up.
- Re-scan to verify no link text matches the generic list any longer.
<p>We just shipped a faster scanner. <a href="/blog/faster-scanner">Read more</a></p>
<p>Want the full plan breakdown? <a href="/pricing">Click here</a></p><p>We just <a href="/blog/faster-scanner">shipped a faster scanner</a>.</p>
<p>See the <a href="/pricing">full plan breakdown</a>.</p>How AccessKnight detects this
AccessKnight inspects every <a> element and compares its trimmed, lowercased text content against a fixed set of generic phrases: "click here", "read more", "learn more", "here", "more", "link", "click", "this", "info", and "details". If the link's exact text matches one of those, it is flagged with a suggestion to replace that wording with descriptive text. Links that already include real, destination-specific words pass, even if those words happen to contain one of the generic terms, because the check matches the whole trimmed string rather than a substring.