Skip to content

Empty image links and vague “Read more” links

A banner is made clickable with an empty link laid over it, and the cards below all end in the same “Read more”.

01

The problem

Screen reader users can't tell where a link goes before they follow it.

02

Try it

Press Tab to move through the links.

The panel shows what a screen reader announces for each link, and its list of links. Can you tell where each one goes?

Autumn blends are here

Roasted hojicha, chai and chestnut.

How to brew hojicha

Read more

Our new tasting room

Read more

Choosing a first teapot

Read more

Screen reader says: (Tab to a link)

Its list of links:

  1. (no name) collections/autumn
  2. Read more
  3. Read more
  4. Read more

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Give every link words that say where it goes: add them to the links you have, or make the heading the link.

  1. 1Every link needs words: its text, an image's alt, or a name that starts with the visible label.
  2. 2Name the link laid over a banner, or replace it with a heading link stretched by a pseudo-element.
  3. 3Extend “Read more” with visually hidden text, or replace it with the destination.
Before An empty link over the banner
<div class="banner">  <img src="/images/autumn.jpg" alt="">  <a href="/collections/autumn" class="banner-link"></a>  <div class="banner-text">    <h2>Autumn blends are here</h2>    <p>Roasted hojicha, chai and chestnut.</p>  </div></div> <article class="card">  <h3>How to brew hojicha</h3>  <p>Lower heat and a shorter steep bring out the roast.</p>  <a href="/journal/brew-hojicha">Read more</a></article>
After Add the missing words to the links you have

html

<div class="banner">  <img src="/images/autumn.jpg" alt="">  <a href="/collections/autumn" class="banner-link">    <span class="visually-hidden">Autumn blends are here</span>  </a>  <div class="banner-text">    <h2>Autumn blends are here</h2>    <p>Roasted hojicha, chai and chestnut.</p>  </div></div> <article class="card">  <h3>How to brew hojicha</h3>  <p>Lower heat and a shorter steep bring out the roast.</p>  <a href="/journal/brew-hojicha">    Read more<span class="visually-hidden"> about how to brew hojicha</span>  </a></article>

css

.visually-hidden {  position: absolute;  width: 1px;  height: 1px;  overflow: hidden;  clip-path: inset(50%);  white-space: nowrap;}

04

Verify the fix

5 checks.

Test with: Keyboard, Screen reader, Mouse

0 of 5 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the shared card, banner or slideshow component changes.

Limits

This is a starting pattern, not a guarantee for every application. Paths and class names in the snippets are placeholders. Content editors can still write a vague link later, so keep link text in your publishing review. Test the complete journey with your target assistive technology.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work