Skip to content
easeweb
Search topics

"Read more" links that all say the same thing

A row of journal cards each ends in the same "Read more" link, with the card's title outside it, and the usual quick fix, an aria-label naming the article, leaves out the words people see.

Passes when
Read more links say what they lead to
WCAG 2.2
SC 2.4.4ASC 2.5.3A· new in 2.1
Required by
Section 508 · EN 301 549 (EU)
Broken <a href="/journal/enamel-care" class="card-more">Read more</a>
The accessibility problem illustrated: No vision:Which one is about travel mugs?
01

The problem

Screen reader users can't tell three identical "Read more" links apart, and once an aria-label renames them, voice control users can't say them.

02

Try it

Read the screen reader’s list of links under the journal, then try the simulated voice control.

Which link in the list is about travel mugs? Then switch to Broken 2, where each link has an aria-label, and say the words on the link again.

Broken Can you fix this?

Caring for enamel mugs

A soft sponge and no scouring powder keep the enamel bright.

Read more

Why stoneware keeps tea hot

Thick walls hold the heat for longer than thin porcelain.

Read more

Choosing a travel mug

Lids, seals and what fits in a cup holder.

Read more
Voice control (simulated):

Screen reader says:

Its list of links:

  1. Read more
  2. Read more
  3. Read more

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Add the article to each link's name after its visible words, make the title the link, or write visible words that say where it goes.

  1. 1A link's name says where it goes, even read alone in a list of links.
  2. 2The name starts with the words the link shows: add to them, never replace them.
  3. 3Name each card's link after its article: hidden words after Read more, the title as the link, or visible words that say where it goes.
Before

The same Read more on every card

<div class="cards">  <div class="card">    <img src="/images/journal/enamel-mug.jpg" alt="">    <p class="card-title">Caring for enamel mugs</p>    <p>A soft sponge and no scouring powder keep the enamel bright.</p>    <a href="/journal/enamel-care" class="card-more">Read more</a>  </div>  …</div>
After

Hidden words after Read more

<div class="cards">  <div class="card">    <img src="/images/journal/enamel-mug.jpg" alt="">    <p class="card-title">Caring for enamel mugs</p>    <p>A soft sponge and no scouring powder keep the enamel bright.</p>    <a href="/journal/enamel-care" class="card-more">      Read more<span class="visually-hidden"> about caring for enamel mugs</span>    </a>  </div>  …</div>

Fixing this with an AI coding assistant? Get this guide as Markdown, or get every guide in your coding agent.

04

Design ideas

A row of cards can look even without saying the same thing.

Five ways to draw the way into a journal card. Picture each repeated on three cards, then Tab through them: three would still tell the cards apart in a list of links, and two would read the same on every card.

In the design file

  • Write each card’s link words beside the card, as a list of links will read them.
  • If the words on screen stay Read more, write the hidden words that follow them too.
  • Mark which part of the card is clickable, and draw the focus ring around that part.
  • Give the link words a field of their own in the card component, so every card gets its own.

Passes

  • Caring for enamel mugs

    A soft sponge keeps the enamel bright.

    The title as the link, with an arrow The title, in the #1a1a1a ink at 17.40:1, is the card’s only link, and a small green arrow after it moves 4px on hover and focus, then stops. Read more can go: the arrow shows where to click, and the list of links reads each title.
  • Caring for enamel mugs

    A soft sponge keeps the enamel bright.

    Care guide
    A pill that names the topic A soft green pill with the article’s own topic, “Care guide”, in #1d4d3f on #e3efe9, 8.14:1, filling darker on hover and focus. Every card’s pill says something different, so the row stays even in shape while the words tell the cards apart.
  • Caring for enamel mugs

    A soft sponge keeps the enamel bright.

    Read more on enamel care
    Read more, finished in a quieter grey Read more stays in green on every card, and the topic follows it inside the same link in the quiet #555555, 7.46:1: “Read more on enamel care”. The row keeps its repeated label, and the eye, the list of links and voice control all get the topic.

Fails

  • Caring for enamel mugs

    A soft sponge keeps the enamel bright.

    An arrow in a circleWCAG 2.4.4 A 40px green circle with a white arrow, 6.26:1, in the card’s corner. It shows no words, so its name is whatever the developer types, usually the same “Read more” on every card, or nothing: the list of links can’t tell the cards apart.
  • Caring for enamel mugs

    A soft sponge keeps the enamel bright.

    Learn more
    The same Learn more button on every cardWCAG 2.4.4 A full-width filled pill, white on #2f6b55 at 6.26:1, saying “Learn more” on every card. It looks like the clearest call to action on the page, and in a list of links it is the same entry three times.
05

Verify the fix

4 checks.

Test with: Screen reader, Speech input, Keyboard, Mouse

0 of 4 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 component or its template changes.

Limits

This is a starting pattern, not a guarantee for every application. Paths and class names in the snippets are placeholders. Speech software differs in how it matches what is said, so test with the voice control your users have. Editors can still publish a card with a vague link later, so keep link text in your publishing review. A banner made clickable with an empty link is covered in banner and image links with no name. 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