What WCAG asks for
Criterion 4.1.2 Name, Role, Value requires every link to have an accessible name. Criterion 2.4.4 Link Purpose (In Context) adds that the purpose of each link must be clear from its text, or from the text around it.
Automated checks flag the first problem: a link with no name at all.
Where empty links come from
- Social media icons in the header or footer: an
<a>with only an icon font or an SVG inside. - Image links where the image has no alt text, such as a logo linking to the home page.
- Card layouts with an extra empty link stretched over the whole card.
- Phone and email icons next to a number, where the icon is the link and the number is plain text.
- Carousels and "next" arrows built as links with a background image.
How to fix it
Give icon links visible text, or hidden text that a screen reader reads:
<!-- Visible text is best -->
<a href="https://www.linkedin.com/company/smith-law">
<svg aria-hidden="true" focusable="false"> ... </svg>
LinkedIn
</a>
<!-- Icon only: name it with hidden text or aria-label -->
<a href="https://www.facebook.com/smithlaw" aria-label="Smith & Partners on Facebook">
<svg aria-hidden="true" focusable="false"> ... </svg>
</a>
<!-- Image link: the alt text becomes the link name -->
<a href="/"><img src="logo.svg" alt="Smith & Partners, home"></a>
Make vague links specific. Put the subject into the link text, or add hidden context:
<!-- Before -->
<a href="/services/estate-planning">Read more</a>
<!-- After -->
<a href="/services/estate-planning">More about estate planning</a>
<!-- Or keep the short visual text -->
<a href="/services/estate-planning">
Read more<span class="sr-only"> about estate planning</span>
</a>
For clickable cards, make the heading the link and stretch it with CSS instead of adding a second, empty link.
Good link text
- Describe the destination: "Book a consultation", "Download the 2026 fee schedule (PDF)".
- Avoid "click here", "here" and bare URLs.
- Use the same text for links that go to the same place, and different text for links that go to different places.
- Say when a link opens a file or a new window.
What automated checks miss
A check finds links with no name. It does not know that six links all called "Learn more" lead to six different pages, or that a link named "Click here" makes no sense out of context. Reviewing link text is part of a manual audit.
Last updated October 18, 2026.