WCAG Success Criteria · Level AA

WCAG 3.2.3: Consistent Navigation

WCAG 3.2.3 requires that navigation mechanisms appearing on multiple pages within a set of web pages occur in the same relative order each time, unless the user initiates a change. This predictability helps users with cognitive, visual, and motor disabilities build mental models of a site and navigate efficiently.

  • Level AA
  • Wcag
  • Wcag 2 2 aa
  • Understandable
  • Accessibility

What This Rule Means

WCAG Success Criterion 3.2.3 — Consistent Navigation (Level AA) states that navigational components repeated across multiple pages of a website must appear in the same relative order every time they are encountered, unless the user themselves has triggered a change in that order. The criterion applies to any set of web pages that share a common purpose or are part of the same site or application.

The phrase "same relative order" is important: WCAG does not require that navigation always contain the same number of items, nor that no other elements can appear between navigation items. What it requires is that the sequence of navigation links, as they appear to a user moving through the interface, remains consistent from page to page. For example, if your primary navigation lists "Home," "Products," "About," and "Contact" in that order on the homepage, the same items must appear in the same sequence on every other page where that navigation block exists.

The criterion covers all repeated navigational mechanisms: primary site navigation menus, breadcrumb trails, footer link groups, sidebar menus, skip-navigation links, search bars, and any other interactive component that helps a user move through a site. It applies regardless of whether those components are implemented as <nav> landmarks, <ul> lists of links, ARIA-enhanced custom menus, or any other markup pattern.

What counts as a pass: Navigation blocks appear in the same relative order on every page where they are repeated. Items may be added, highlighted, or marked active (e.g., the current-page link is visually distinguished), as long as the overall sequence does not change. A user-initiated reordering — such as a customizable dashboard where the user drags panels to new positions — also passes, because the change originated with the user.

What counts as a fail: A main navigation that lists "Home → Products → Contact → About" on the homepage but lists "Home → About → Products → Contact" on a product detail page fails 3.2.3. Similarly, a site that conditionally inserts additional links at arbitrary positions in the navigation based on internal logic (without user action) would fail.

Official exception: The specification explicitly states that the requirement does not apply when the user has initiated the change in order. This is the only normative exception. Changes driven by the system, server logic, or personalization algorithms — not directly triggered by the user — do not qualify for this exception.

Why It Matters

Consistent navigation is foundational to cognitive accessibility. Users who rely on spatial memory and predictable patterns to orient themselves — including people with cognitive disabilities, attention disorders, traumatic brain injuries, or age-related cognitive decline — depend heavily on the assumption that a site's navigation will be in the same place and same order every time they encounter it. When navigation shifts unexpectedly, these users must re-learn the layout on every page, dramatically increasing cognitive load and the likelihood of errors or abandonment.

For blind and low-vision users who navigate with screen readers (NVDA, JAWS, VoiceOver), consistent navigation reduces the time spent searching for known landmarks. A screen reader user who has memorized that the "Contact" link is the fourth item in the main navigation can press the Tab key four times on any page to reach it — but only if the order is guaranteed to stay the same. Inconsistent ordering destroys this efficiency and forces the user to listen through the entire navigation on every page load.

For motor-impaired users relying on keyboard-only navigation, switch access, or eye-tracking, every extra keypress or head movement has a real cost. Predictable navigation reduces the number of interactions required to reach frequently visited destinations. According to the World Health Organization, over 1.3 billion people worldwide live with some form of disability, many of whom rely on assistive technologies that benefit directly from consistent, predictable interfaces.

For users with reading disabilities such as dyslexia, scanning a navigation bar is already effortful. Consistent positioning and order means they can rely on visual anchors — position, shape, color — rather than re-reading labels every time.

A concrete real-world scenario: imagine a patient using a hospital's website to book follow-up appointments. The navigation on the homepage lists "Services," "Appointments," "Doctors," and "Contact" in that order. The patient navigates to a doctor's profile page and looks for "Appointments" in the second position — but on that page, the navigation has been reorganized to lead with "Doctors" followed by "Appointments." The patient, already stressed, must re-scan the entire menu. For a user with a cognitive disability or limited literacy, this friction can be the difference between completing the task and giving up entirely.

Beyond accessibility, consistent navigation has measurable SEO and usability benefits. Search engine crawlers traverse navigation links to discover and index content; a stable link structure improves crawl efficiency and internal linking equity. Usability testing consistently shows that predictable navigation reduces task completion time and error rates for all users, not just those with disabilities.

WCAG 3.2.3 requires manual testing. There is no automated axe-core rule that can flag inconsistent navigation order, because automated tools lack the cross-page context needed to compare navigation sequences. An automated scanner evaluates a single page in isolation and cannot observe whether the navigation on that page differs from the navigation on twenty other pages in the same site.

  • Manual cross-page comparison (no axe rule ID): Testers must visit multiple pages within the same site and manually record the order of navigation items on each page, then compare those records. Automated tools cannot perform this check because they would need to parse multiple pages simultaneously, maintain state across page loads, and apply semantic judgment about which elements constitute the "same" navigational component — all tasks that require human contextual reasoning.
  • Why automation falls short: Even heuristic tools that flag navigation-related issues typically check for the presence of navigation landmarks (such as the axe rule landmark-one-main or region), not for the consistency of order across pages. Order comparison requires a site-wide audit methodology, not a single-page scan. This is why 3.2.3 is classified as requiring manual review in all major accessibility testing frameworks, including axe-core, Lighthouse, and IBM Equal Access Checker.

How to Test

  1. Run an automated scan for baseline context: Use axe DevTools, Lighthouse, or a browser extension on representative pages to confirm that navigation elements are marked up correctly as <nav> landmarks or with role='navigation'. While these tools will not flag order inconsistencies, they help you identify what is being treated as navigation across pages. Document any issues with landmark structure before proceeding to manual checks.
  2. Select a representative page sample: Choose at least five to ten pages from different sections of the site — homepage, a category page, a product or article detail page, a form page, and the contact page. If the site has thousands of pages, use a stratified sample covering all major templates. Record the URL and page type for each.
  3. Map navigation order manually: On each sampled page, open the browser's accessibility tree (Chrome DevTools → Accessibility panel, or Firefox Accessibility Inspector) and list every link within the primary navigation in the order they appear in the DOM. Also note the order as it appears visually. If CSS is reordering items visually (e.g., using flex-direction: row-reverse or order properties), the visual order may differ from the DOM order — both need to be consistent.
  4. Compare across pages: Place your navigation order lists side by side. Flag any page where the sequence of shared navigation items differs from the baseline established on the homepage. Note which items moved and in which direction.
  5. Keyboard navigation test (NVDA + Firefox): Open NVDA, launch Firefox, and navigate to the homepage. Press D to jump to the next landmark region and locate the main navigation. Use the Tab key to move through navigation links and speak aloud or note the order. Then navigate to a second page (e.g., an interior article page) and repeat. Listen for any change in the sequence of link announcements.
  6. Screen reader test (VoiceOver + Safari on macOS): Enable VoiceOver (Command + F5), open Safari, and use the Web Rotor (Control + Option + U) to open the Links or Landmarks menu. Navigate to the main nav and note the order of items. Repeat on at least three different page types and compare.
  7. JAWS + Chrome test: Open JAWS, launch Chrome, and press R to cycle through regions until you reach the main navigation. Tab through the links and record the order. Repeat across page types.
  8. Check user-initiated exceptions: If the site offers any personalization or navigation customization features, verify that any reordering only occurs after an explicit user action (e.g., the user clicks "Customize Menu" and drags items). Confirm that the reordered state is then persisted consistently — the new order should itself remain consistent across all pages after the user sets it.

How to Fix

Inconsistent server-side rendering — Incorrect

<!-- Homepage navigation -->
<nav aria-label='Main navigation'>
  <ul>
    <li><a href='/'>Home</a></li>
    <li><a href='/products'>Products</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
  </ul>
</nav>

<!-- Product detail page navigation — order changed by CMS template -->
<nav aria-label='Main navigation'>
  <ul>
    <li><a href='/'>Home</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
    <li><a href='/products'>Products</a></li>
  </ul>
</nav>

Inconsistent server-side rendering — Correct

<!-- Shared navigation partial (e.g., _nav.html or a component) used on every page -->
<!-- The active page is indicated with aria-current, not by reordering -->
<nav aria-label='Main navigation'>
  <ul>
    <li><a href='/' aria-current='page'>Home</a></li>
    <li><a href='/products'>Products</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
  </ul>
</nav>
<!-- On the Products page, only aria-current moves — the order stays identical -->

CSS visual reordering creating inconsistency — Incorrect

<!-- DOM order: Home, Products, About, Contact -->
<!-- CSS on interior pages uses flex order to visually move Contact first -->
<style>
  /* Applied only on interior page templates */
  nav ul li:last-child { order: -1; }
</style>
<nav aria-label='Main navigation'>
  <ul style='display:flex'>
    <li><a href='/'>Home</a></li>
    <li><a href='/products'>Products</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
  </ul>
</nav>
<!-- Visual order becomes Contact, Home, Products, About — inconsistent with homepage -->

CSS visual reordering creating inconsistency — Correct

<!-- Use consistent DOM order and consistent CSS across all templates -->
<!-- Do not use CSS 'order' property to rearrange navigation items differently per template -->
<nav aria-label='Main navigation'>
  <ul style='display:flex'>
    <li><a href='/'>Home</a></li>
    <li><a href='/products'>Products</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
  </ul>
</nav>
<!-- Same DOM order and same CSS flex order on every page template -->

Dynamic navigation reordered by algorithm — Incorrect

<!-- JavaScript reorders nav links based on most-visited analytics without user action -->
<script>
  // Anti-pattern: fetches user behaviour data and reorders nav items automatically
  fetch('/api/user-nav-preferences').then(r => r.json()).then(order => {
    const nav = document.querySelector('nav ul');
    order.forEach(id => nav.appendChild(document.getElementById(id)));
  });
</script>
<nav aria-label='Main navigation'>
  <ul>
    <li id='nav-home'><a href='/'>Home</a></li>
    <li id='nav-products'><a href='/products'>Products</a></li>
    <li id='nav-about'><a href='/about'>About</a></li>
    <li id='nav-contact'><a href='/contact'>Contact</a></li>
  </ul>
</nav>

Dynamic navigation reordered by algorithm — Correct

<!-- If personalisation is desired, require an explicit user action and keep order stable otherwise -->
<nav aria-label='Main navigation'>
  <ul>
    <li><a href='/'>Home</a></li>
    <li><a href='/products'>Products</a></li>
    <li><a href='/about'>About</a></li>
    <li><a href='/contact'>Contact</a></li>
  </ul>
</nav>
<!-- Personalisation button lets user reorder — change only applies after they interact -->
<button type='button' aria-controls='main-nav-list' id='customize-nav'>Customize Navigation Order</button>
<!-- The user-chosen order is then persisted consistently across all pages -->

Common Mistakes

  • Using different CMS templates that each define navigation independently, causing subtle ordering differences to creep in over time as templates are updated separately rather than from a single shared component or partial.
  • Promoting "featured" or "seasonal" navigation items to different positions based on marketing campaigns without ensuring the rest of the navigation order remains unchanged — for example, temporarily moving "Sale" to position two on some pages and position five on others.
  • Using CSS order, flex-direction: row-reverse, or CSS Grid placement to visually reorder navigation items differently across page templates, creating a mismatch between the visual order (which sighted users see) and the DOM order (which keyboard and screen reader users follow).
  • Inserting context-sensitive navigation items at arbitrary positions — for example, adding a "Back to Category" link as the second item on product pages but not on other pages, shifting all subsequent items down by one position and breaking the expected sequence.
  • Allowing A/B testing or analytics platforms to reorder navigation links as part of experiment variants, without considering that the reordering applies inconsistently across pages and sessions.
  • Treating the breadcrumb trail as exempt from this criterion when it is actually a repeated navigational mechanism — breadcrumbs that appear in different positions relative to other page elements across different templates also violate 3.2.3.
  • Reordering footer navigation differently from the main navigation when the footer links duplicate the main nav — if both appear on every page, both must maintain consistent order independently and in relation to each other.
  • Applying JavaScript-driven navigation enhancements that reorder items based on scroll position, viewport size, or session data without user initiation — for example, a mega-menu that dynamically surfaces different top-level categories depending on which section of the site the user is in.
  • Failing to audit navigation consistency after a site redesign or CMS migration, assuming developers will naturally reproduce the original order when in fact different page types are rebuilt by different team members from scratch.
  • Conflating "consistent navigation" with "same navigation on every page" — teams sometimes incorrectly conclude that adding or removing nav items for certain user roles (e.g., logged-in vs. guest) violates 3.2.3. It does not, as long as the relative order of shared items remains unchanged.

Relation to Turkey's Accessibility Regulations

Turkey's Presidential Circular No. 2025/10, published in the Official Gazette (No. 32933) on June 21, 2025, establishes binding accessibility obligations for a broad range of public and private entities operating digital services in Turkey. The Circular mandates conformance with internationally recognized accessibility standards — with WCAG 2.2 Level AA serving as the primary technical benchmark — and ties compliance to the EriƟilebilirlik Logosu (Accessibility Logo), a certification mark issued by the Ministry of Family and Social Services to entities that meet the required accessibility threshold.

WCAG 3.2.3 Consistent Navigation is a Level AA criterion, meaning it is a mandatory requirement for entities seeking the Erißilebilirlik Logosu. Organizations that fail to provide consistent navigation across their digital services will not meet the full AA conformance profile required for certification, regardless of their performance on other criteria.

The following entity types are covered by Presidential Circular 2025/10 and must therefore treat 3.2.3 compliance as a legal obligation rather than a best-practice recommendation:

  • Public institutions and government agencies at all levels, including ministries, municipalities, and state-affiliated bodies, whose websites and digital portals must be navigable consistently across all sections.
  • E-commerce platforms operating in Turkey, where navigation consistency is particularly critical given that users move across homepage, category, product, cart, and checkout pages — all of which typically share the same navigation bar.
  • Banks and financial institutions regulated under Turkish banking law, whose online banking portals and informational websites must provide predictable navigation to serve all customers, including those with cognitive or motor impairments.
  • Hospitals and healthcare providers, where patients — often in stressful situations — rely on consistent navigation to find appointment booking, test results, and emergency contact information without cognitive friction.
  • Telecommunications companies with 200,000 or more subscribers, whose customer portals, support sites, and account management interfaces must maintain navigation consistency across potentially thousands of pages and user-facing templates.
  • Travel agencies and private transport companies, where multi-step booking flows spanning search, selection, passenger details, and payment pages must present navigation in a consistent order throughout the journey.
  • Private schools authorized by the Ministry of National Education (MoNE), whose websites serve students, parents, and staff — including individuals with learning disabilities who rely heavily on predictable navigation to access educational resources.

For organizations in Turkey building or auditing digital services, 3.2.3 should be incorporated into the quality assurance process at the template and component design stage. Using a shared navigation component rendered from a single source of truth — whether a server-side include, a front-end framework component, or a headless CMS global element — is both the most reliable technical approach and the most defensible compliance posture under the Circular's requirements. Accessibility audits submitted as part of the EriƟilebilirlik Logosu application process should include cross-page navigation order verification as a documented test step.