Skip to content
easeweb
Search topics

Navigation menus that change order or names between pages

A shop's Journal is built on a separate blog platform from a copy of the shop's header, and over time the copy has moved Journal to the front of the menu and renamed Basket as Cart.

WCAG 2.2
SC 3.2.3AASC 3.2.4AA
Required by
Section 508 · EN 301 549 (EU)
Broken <a href="/basket">Cart</a>
The accessibility problem illustrated: Cognitive:Is Cart the same as my basket?
01

The problem

People who learned where the menu's links are, and what they are called, find them moved or renamed on some pages.

02

Try it

Find Basket in the shop’s header, then choose Journal and find it again.

The panel under the window lists the header’s links on each page you have opened, and whether they keep their order and names. Choose Shop or Fernhill to go back.

Broken Can you fix this?

Linen tea towel

Woven in natural linen.

The header’s links

  • Product page: Shop · Sale · Journal · About · Account · Basket
  • Journal post: not opened yet

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Render one header and footer, from one list of links, on every page.

  1. 1Keep repeated links in the same order on every page; add or leave out links, but never swap them.
  2. 2Give a link to the same place the same name on every page.
  3. 3Build every page's header and footer, on every platform, from one source.
Before The Journal's own copy of the header
<!-- Every shop page --><header class="site-header">  <a href="/" class="logo">Fernhill</a>  <nav aria-label="Main">    <a href="/shop">Shop</a>    <a href="/sale">Sale</a>    <a href="/journal">Journal</a>    <a href="/about">About</a>  </nav>  <a href="/account">Account</a>  <a href="/basket">Basket</a></header>
After One header, from one list of links, on every page
<!-- Every shop page --><header class="site-header">  <a href="/" class="logo">Fernhill</a>  <nav aria-label="Main">    <a href="/shop">Shop</a>    <a href="/sale">Sale</a>    <a href="/journal">Journal</a>    <a href="/about">About</a>  </nav>  <a href="/account">Account</a>  <a href="/basket">Basket</a></header>

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

04

Verify the fix

5 checks, no mouse.

Test with: Screen reader, Keyboard, 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 any change to the menu, the templates or a platform the site uses.

Limits

This is a starting pattern, not a guarantee for every site. The criteria ask for consistency, not for a good menu: links that are the same everywhere can still be hard to understand. They cover one set of pages, so a site that forms a set of its own, such as a blog on a subdomain, written by other people and with a different navigation, can have its own menu, as long as it keeps it consistent. Changes people make themselves, such as a reader view or a menu they rearrange in their settings, are allowed. Test the whole site, page type by page type, with the people and tools your users rely on.

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