Skip to content
easeweb
Search topics

Deep pages with no breadcrumb or highlighted menu section

A shop's product pages have no breadcrumb, the menu marks no section and the title names only the product and shop, so nothing says where the page sits.

WCAG 2.2
SC 2.4.8AAA
Required by
Not required by Section 508 or EN 301 549
Broken <title>Linen napkins, set of 4 – Fernhill</title>
The accessibility problem illustrated: Cognitive:Which part of the shop is this?
01

The problem

Someone who lands on a product page from a search engine can't tell which part of the shop it is in, or where to look for more like it.

02

Try it

You came to these napkins from a search engine. Which part of the shop are they in?

Look at the page and its tab, then Tab through the menu and listen. Open Table from the menu, where its link gets a bar, and open the napkins again from there: does anything still say Table?

Broken Can you fix this?

BrokenA product page drawn with nothing that names its section
Linen napkins, set of 4 – Fernhill

Linen napkins, set of 4

£24

Woven in natural linen, softer with every wash.

Screen reader says:

Linen napkins, set of 4 – Fernhill

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Show which section every page sits in.

Before
BrokenA product page drawn with nothing that names its section
<head>  <title>Linen napkins, set of 4 – Fernhill</title></head><body>  <header>    <a href="/">Fernhill</a>    <nav aria-label="Main">      <ul>        <li>          <a href="/collections/kitchen">Kitchen</a>        </li>        <li>          <a href="/collections/table">Table</a>        </li>        <li>          <a href="/collections/bath">Bath</a>        </li>        <li>          <a href="/collections/bedroom">Bedroom</a>        </li>      </ul>    </nav>  </header>  <main>    <h1>Linen napkins, set of 4</h1>    …  </main></body>
What is wrong3 points
  • No breadcrumb trail sits above the heading.
  • The menu's bar shows only on a category page, whose address the menu links to, so no link has it here.
  • The title names the product and the shop, but not Table.
After

A breadcrumb trail that ends at the section

<head>  <title>Linen napkins, set of 4 – Fernhill</title></head><body>  <header>    <a href="/">Fernhill</a>    <nav aria-label="Main">      <ul>        <li>          <a href="/collections/kitchen">Kitchen</a>        </li>        <li>          <a href="/collections/table">Table</a>        </li>        <li>          <a href="/collections/bath">Bath</a>        </li>        <li>          <a href="/collections/bedroom">Bedroom</a>        </li>      </ul>    </nav>  </header>  <main>    <nav class="breadcrumbs" aria-label="Breadcrumb">      <ol>        <li>          <a href="/">Home</a>        </li>        <li>          <a href="/collections/table">Table</a>        </li>      </ol>    </nav>    <h1>Linen napkins, set of 4</h1>    …  </main></body>
How it is fixed4 steps
  1. Put a trail above the heading, from Home down to the section the product belongs to: Home, then Table. Everyone who lands on the page sees at once where it sits, and can go up a level in one click.
  2. End it at the section and let the heading name the product, so the page's name isn't said twice, one line apart.
  3. Put it in a nav named "Breadcrumb", as an ordered list, so a screen reader announces it as navigation, lists it among the page's landmarks and says how many steps it has.
  4. Draw the separators as thin rotated lines, so there is no character between the crumbs for a screen reader to read.

This fixes the Before and passes 2.4.8. It keeps the design as drawn and adds one quiet line of small text above the heading; let it wrap on a phone rather than hide it.

04

Design ideas

A page can say where it sits without a row of crumbs.

Three ways to show that the napkins are in Table. Point at each and Tab through them: two name the section, and one only goes back to wherever you came from.

In the design file

  • Draw where the page sits on every template, product and article pages included, not only on the pages the menu links to.
  • Draw the menu’s current look on a section’s own page and on a page inside it, so the developer builds both.
  • Draw the phone layout with the section’s name still in view, and in the open menu too.
  • Write each template’s page title as the page, then its section, then the site’s name.

Passes

  • Table Napkins

    Linen napkins, set of 4

    Section name as an eyebrow over the heading Table and Napkins in small, spaced capitals in the shop’s green #2f5d46, 7.57:1 on white, each a link. It reads as part of the heading’s design rather than a row of crumbs, yet still names each level above the product; underline them on hover and focus, so they read as links.
  • Linen napkins, set of 4

    The section’s categories as chips, its own filled Napkins, Runners and Tablecloths as pills over the heading, with Napkins filled in #2f5d46 and set in bold white, 7.57:1. It shows where the product sits and the way across to the rest of Table; the bold and the fill both carry the mark, since a fill alone is lost in a Windows contrast theme.

Fails

  • Linen napkins, set of 4

    Round back arrow with no wordsWCAG 2.4.8 The app-style 40px white circle with an arrow, on the photo’s corner. It names nothing, and it goes back to wherever the browser came from: for someone who arrived from a search engine, that is the search results, and the page still has nothing that says Table.
05

Verify the fix

5 checks, no mouse.

Test with: Keyboard, Screen reader, Zoom

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 a page template or the menu changes.

How screen readers handle aria-current="page"

Limits

This is a starting pattern, not a guarantee for every site. It covers a page that shows nothing of where it sits. A location cue only helps when the site's sections make sense to the people using it: a trail through categories nobody would guess still leaves them lost, and that is a matter of the site's structure, which no markup fixes. A trail or menu that changes order or wording from page to page has its own failure; see navigation menus that change order or names between pages. Screen readers word aria-current="true" differently, and some say only "current": test with the ones your visitors use.

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.

EaseWeb service

Fixed it? Keep it from coming back.

I turn guides like this one into rules your coding agents follow and checks your CI runs. Then I retest by hand with a keyboard and screen readers, periodically.

See the service