Skip to main content
WCAGrules
Quick navigation

Guides · Interface patterns

Breadcrumbs, and the Separator Nobody Should Hear

A small pattern with two details that decide whether it helps or just adds noise.

Last reviewed August 30, 2026

A breadcrumb answers two questions at once. Where am I, and how do I get back up. That is worth having near the top of a page for anybody who landed deep in a site without walking down to it, which is what happens every time somebody arrives from a search result.

It is also the cheapest component we write about. The pattern has no keyboard interaction at all, which is unusual enough to be worth saying out loud, because it means the whole job is markup. Two details separate the version that helps from the version that adds noise to every page on the site.

Name the Trail, and Know When a Name Is Needed

Wrap the trail in a nav element so it registers as a navigation landmark, then give that landmark an accessible name, usually aria-label="Breadcrumb". The reason is comparison rather than description. A screen reader user pulling up the page's landmarks sees a list, and two regions both called navigation give them nothing to choose between.

The rule underneath is more precise than always label everything. Where a page has more than one navigation landmark, each one needs its own unique label. Where a page has only one, the label is not strictly required. Almost every real page has a main menu and a breadcrumb, so you are in the first case, and there is one deliberate exception worth knowing. Where two landmarks hold an identical set of links, such as pagination controls repeated above and below a long table, W3C says to give them the same label rather than inventing two.

Inside the nav, use an ordered list. The order is the meaning here, and a list gives the count away for free, so somebody hears three items rather than counting them as they go.

The Separator Should Not Be Read Aloud

This is the detail that gets missed, and it is the one that shows up on every single page of a site rather than once. A slash or a chevron typed between the links is text, so it is announced. The trail reads as Home slash Guides slash Breadcrumbs, and the reader hears that on arrival at every page they visit.

  • Put the separator in CSS, with a pseudo-element. Generated content never enters the accessibility tree, so there is nothing there to announce.
  • If it has to sit in the markup, hide it with aria-hidden="true". That is safe here in a way it is not elsewhere, because a separator is never focusable, and hiding a focusable thing leaves a keyboard user landing on nothing.
  • An icon separator needs deciding on rather than treating. An img with no alt attribute at all is the case that announces as an image or as its filename. A decorative img with alt="", or an inline SVG carrying aria-hidden="true", is already silent.

Mark the Current Page, and Pick One of Two Ways

The last item in the trail is the page the reader is already on, and there are two published ways to say so. Remove the anchor, so the current item is plain text that cannot be clicked, which W3C's own tutorial presents first because it stops a reader wondering what that link would do. Or keep the anchor and add aria-current="page", which is what the tutorial recommends when the markup will not let you take the link out.

You are not being asked for both. The breadcrumb pattern says aria-current is optional once the current item is no longer a link, so unlink it and you are done. Whichever route you take, only one element in the set gets marked as current, and bolding the text is not one of the routes, because weight is a visual signal and nothing more.

Breadcrumbs are not a back button

A breadcrumb is a list of links to the parent pages of the current page, in hierarchical order. It shows the site's structure, not the path this particular reader took to get here. Somebody who arrived on a deep page from a search result gets a trail showing where that page sits, which is useful, and it is not their history.

Which Rule Breadcrumbs Actually Discharge

Breadcrumbs are a published way to satisfy 2.4.8 Location, which asks that a reader can work out where they are inside the site. That criterion is Level AAA. W3C's own note on conformance says AAA is not something to require across a whole site, and that is exactly why picking up an individual AAA criterion on purpose is a reasonable thing to do. This is one of the cheapest to pick up, because the work is markup and there is no behavior to build.

Breadcrumbs are not one of the ways to satisfy 2.4.5 Multiple Ways at Level AA. That criterion asks for more than one route to a page, and the six routes W3C names are a search function, a site map, a table of contents, links to related pages, a list of every other page, and linking every page from the home page. A breadcrumb points up the hierarchy rather than out to the page somebody was looking for. Build breadcrumbs for their own reasons and count search or a site map toward the AA rule, because that is the one an owner is legally exposed on.

Two honest qualifications sit under that. W3C says on every criterion that there may be other ways of meeting it that its technique lists do not cover, so a sufficient-techniques list is a floor rather than a fence. And one of the six, providing links to related pages, is broad enough that somebody could argue a breadcrumb belongs inside it. What we would not do is put that argument in a report, because the technique's own description is about locating additional information rather than about showing a hierarchy.

There is also a scope limit on 2.4.5 that saves owners a lot of worry. A page that is the result of, or a step in, a process is excepted, so a checkout flow and a page of search results are outside the rule entirely.

Keep the trail in the same place on every page, which is 3.2.3 Consistent Navigation, and make sure each link reads sensibly on its own, which our link text checker will tell you in a few seconds.

Structured Data Is a Separate Question

Adding BreadcrumbList markup helps a search engine show the trail in its results, and it does nothing at all for accessibility. Assistive technology reads the accessibility tree, which is built from rendered elements, roles and ARIA properties. A block of JSON is not in it. Do both, and do not let anybody tell you the first one covers the second.

One honest limit

The location criterion has no automated rule written for it and no published failure technique either, so nothing in your toolchain will tell you a breadcrumb is missing, wrong, or reading its separators aloud. The check is thirty seconds with a screen reader on one deep page.

Common questions

Should the current page be a link?
Usually not. A link to the page you are already on is a control with no effect, and it takes a tab stop from somebody who has better uses for one. W3C's tutorial presents removing the anchor as the first choice and aria-current="page" as the answer for when the markup will not let you. Unlink it and aria-current becomes optional, so you only need one of the two.
Does a breadcrumb count toward WCAG 2.4.5 Multiple Ways?
No. A breadcrumb is a published sufficient technique for 2.4.8 Location, which is Level AAA. The six techniques listed for 2.4.5 are a search function, a site map, a table of contents, links to related pages, a list of all other pages, and linking every page from the home page. Count search or a site map toward the AA rule and build breadcrumbs for their own sake.
Do we need breadcrumbs at all?
Not on a shallow site. Our own rule of thumb is that they start earning their place once content sits three or more levels deep, which is the point at which somebody arriving from search genuinely cannot tell where they landed. W3C sets no depth threshold, so treat that as our judgment rather than a rule.
Does the breadcrumb nav need a label?
On any page carrying a second navigation landmark, yes, and a unique one. On a page with a single navigation landmark it is not strictly required. Since nearly every page has a main menu as well as its breadcrumb, label it and stop thinking about it.

Sources

Keep reading

More on interface patterns

Reading about it is the cheap part.

Find out where your site actually stands. The free scan checks 10 pages in a real browser against all 90 supported automated rules, keeps its 27 best-practice checks separate from WCAG findings, and names the rule behind every finding. The full audit adds an expert review and a real blind screen-reader user. From $499, with the report in 5 business days on Rapid and 10 on Standard, and the clock starting at cleared payment.

Go somewhere useful

Find tools, resources and your workspace.

29 destinations