Deep pages in complex sites without breadcrumbs, aria-current, or hierarchical URLs leave users unable to determine where they are in the information architecture
2.4.8 Location
In Plain Language
2.4.8 Location (Level AAA) requires that information about the user's position within a set of web pages is available[1]. The mechanism is any persistent cue that answers "where am I in this site?" -- a breadcrumb trail from the home page to the current page, a navigation menu that marks the current item, a site map that highlights the current page, or a URL structure that mirrors the information architecture.
The failure mode is a deep interior page in a complex site reached via a direct link or search result, where the page offers no breadcrumb, no current-page indicator in the global nav, and a flat URL like /product?id=123. The user has no way to reconstruct the hierarchy above the page, no way to navigate to a sibling, and no orientation for where the content sits in the broader structure.
Why It Matters
- Users with cognitive and learning disabilities rely on persistent structural cues to build and maintain a mental model of a site. Without them, each page is an island and navigation becomes guesswork[1].
- Screen-reader users cannot glance at a highlighted nav item. They rely on the programmatic signal --
aria-current="page"on the active link -- which assistive technology announces as "current page" when focus reaches it. - A breadcrumb marked up as
<nav aria-label="Breadcrumb">with an ordered list exposes the hierarchy as a landmark, so screen-reader users can jump to it directly and walk the chain of ancestors without hunting through the main nav. - A URL structure that matches the information architecture (
/products/laptops/x1, not/product?id=123) communicates location in the address bar itself, and gives every user -- including those who arrive via search -- a truncatable path back up the hierarchy. - In multi-step flows such as checkout or onboarding,
aria-current="step"on the active step of a progress indicator tells both sighted and screen-reader users how far they have come and how much remains.
Examples
ThinkPad X1 Carbon
✔ Breadcrumb trail with aria-current on the active page -- users know exactly where they are
<nav aria-label="Breadcrumb">
<ol class="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/products/laptops/">Laptops</a></li>
<li><a href="/products/laptops/x1/" aria-current="page">
ThinkPad X1 Carbon
</a></li>
</ol>
</nav>
✔ aria-current="page" marks the active item -- screen readers announce it, CSS highlights it
<nav aria-label="Main">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/services/" aria-current="page">
Services
</a></li>
<li><a href="/contact/">Contact</a></li>
</ul>
</nav>
Our Professional Services
✘ No breadcrumb, no highlighted nav item, no aria-current -- users have no orientation cue
✔ Step indicator with aria-current="step" -- users know they are on step 3 of 4
<nav aria-label="Checkout progress">
<ol class="steps">
<li class="done">1. Cart</li>
<li class="done">2. Shipping</li>
<li aria-current="step">3. Payment</li>
<li>4. Review</li>
</ol>
</nav>
How to Fix It
- Add a breadcrumb on hierarchical pages. Wrap the trail in
<nav aria-label="Breadcrumb">with an ordered list, one list item per ancestor from the home page down to the current page. Applyaria-current="page"to the final link so assistive technology announces it as the current location. - Mark the current item in the global navigation. Put
aria-current="page"on the active link in the main nav and style the same state with CSS (for example,[aria-current="page"] { font-weight: 600; }) so sighted users and screen-reader users receive the same signal from the same attribute. - Match URL structure to the information architecture. Serve hierarchical content at hierarchical paths (
/products/laptops/x1), not flat query strings. The URL becomes a location cue that survives direct links, bookmarks, and search-result entry. - Use
aria-current="step"in multi-step processes. In a checkout, wizard, or onboarding flow, wrap the step list in<nav aria-label="...">and mark the active step witharia-current="step". Render completed, current, and upcoming steps distinctly. - Set hierarchical page titles. A
<title>likeThinkPad X1 Carbon - Laptops - Products - Acme Corpgives location context in browser tabs, history, and screen-reader page announcements without requiring any on-page chrome. - Provide a site map for large sites. A dedicated site map page that enumerates the hierarchy and highlights the current page (when reached from within the site) is one of the sufficient techniques listed under 2.4.8[1].
References
- [1] W3C (2023). Understanding Success Criterion 2.4.8: Location. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/WCAG22/Understanding/location.html ↩ ↩ ↩