Requires that navigation repeated across pages in a set appears in the same relative order each time, unless the user changes it.
People learn where things are on a site and expect to find them in the same place. If the menu, search box or language selector keeps changing places, users with low vision, cognitive disabilities or who rely on screen readers have to search again on every page.
This criterion requires that navigational mechanisms that are repeated on multiple web pages within a set of web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.
People with low vision who use magnification and rely on page layout. People with cognitive and learning disabilities who rely on predictable positions. Screen reader users, who move through content in order and depend on a stable structure. People who use spatial memory to find controls, including people with intellectual disabilities.
The European Accessibility Act (Directive (EU) 2019/882) applies to in-scope products and services placed on the market after 28 June 2025. Recital 47 names four principles for websites and mobile applications: perceivable, operable, understandable and robust. Consistent navigation is part of "understandable".
The technical counterpart is the standard EN 301 549, which incorporates WCAG 3.2.3 by reference and turns it into separate clauses for each kind of ICT.
| Clause | Type of ICT | What it requires |
|---|---|---|
| 9.3.2.3 | Web pages | Web content must satisfy WCAG success criterion 3.2.3. |
In EN 301 549 V3.2.1 the software clause did not carry this criterion, because it concerns sets of web pages. Check whether V4.1.1 changes that. Whether and how the criterion applies to non-web documents is stated in clause 10 of the standard. Clause numbers follow the "9. + WCAG number" pattern of EN 301 549. In V3.2.1 the software clause is divided into further subclauses for open and closed functionality. Check the exact numbers in the standard when you cite them.
Standard version: EN 301 549 V4.1.1 (September 2026) is based on WCAG 2.2 and is the first version prepared specifically for the EAA. It has not yet been cited in the Official Journal of the European Union, so for now it is best treated as a voluntary technical route to the EAA's requirements. Once cited, it will give a presumption of conformity. The text of criterion 3.2.3 is the same in WCAG 2.1 and 2.2. It is a Level AA criterion.
A note on EAA scope: Article 2(4) of the Directive excludes certain content from the requirements, for example office file formats published before 28 June 2025 and archives that are not updated after that date. Content you publish or change after that date is not covered by these exclusions.
Directive (EU) 2019/882, EUR-Lex, opens in a new tab
The same links in a different order on two pages fails (F66).
<!-- Page A -->
<nav><a href="/">Home</a><a href="/products">Products</a><a href="/about">About</a></nav>
<!-- Page B -->
<nav><a href="/about">About</a><a href="/">Home</a><a href="/products">Products</a></nav><!-- All pages use the same navigation include -->
<nav><a href="/">Home</a><a href="/products">Products</a><a href="/about">About</a></nav>Build repeated navigation once, in a shared template or component, so the order cannot drift (G61).
<!-- Navigation copied into each page and edited separately --><!-- layout.html -->
<header>{% include "nav.html" %}</header>
<main>{% block content %}{% endblock %}</main>Sub-items can appear, as long as the existing items keep their relative order.
<nav>… <a href="/support">Support</a> <a href="/products">Products</a> …</nav> <!-- order flips when expanded --><nav>
<a href="/products">Products</a>
<ul hidden id="sub"><li><a href="/products/a">A</a></li></ul>
<a href="/support">Support</a>
</nav>Keep a skip link in the same place, as the first focusable item.
<!-- skip link first on some pages, after the logo on others --><body>
<a class="skip" href="#main">Skip to main content</a>
<header>…</header>
<main id="main">…</main>Keep the search form in the same position relative to the other header items.
<!-- Search before the menu on the home page, after it on inner pages --><header>
<a href="/" class="logo">Corp</a>
<nav>…</nav>
<form role="search">…</form>
</header>When the user chooses to reorder or hide parts of the menu, that does not violate the criterion.
<!-- The site reorders its menu by itself on each visit --><!-- The user reorders their shortcuts, and the new order applies everywhere -->In an app, the equivalent is the tab bar, the toolbar and the menu. Keep their items in the same order on every screen of the same flow.
import SwiftUI
struct RootView: View {
var body: some View {
// The same tabs, in the same order, on every screen that shows the bar
TabView {
HomeView().tabItem { Label("Home", systemImage: "house") }
SearchView().tabItem { Label("Search", systemImage: "magnifyingglass") }
ProfileView().tabItem { Label("Profile", systemImage: "person") }
}
}
}import androidx.compose.material3.*
import androidx.compose.runtime.Composable
@Composable
fun AppNavigationBar(selected: String, onSelect: (String) -> Unit) {
// One shared component, so the order is identical on every screen
NavigationBar {
listOf("Home", "Search", "Profile").forEach { item ->
NavigationBarItem(
selected = selected == item,
onClick = { onSelect(item) },
icon = { /* icon */ },
label = { Text(item) }
)
}
}
}