3.2.5 Change on Request
Level: AAA | Principle: Understandable | Since: WCAG 2.0 | Automation: Manual
What This Means
Changes of context are initiated only by user request, or a mechanism is available to turn off such changes. A "change of context" includes page navigation, opening a new window, moving focus, or significantly rearranging the page content.
This is the strictest version of the context-change criteria. At Level A, focus changes must not trigger context changes (3.2.1), and input changes must not trigger them (3.2.2). At AAA, the page must not change context automatically at all — or must provide a way to disable all automatic context changes.
Common violations include auto-redirecting pages, auto-submitting forms, auto-opening new windows, and pages that refresh on a timer. All of these disorient users who are not expecting the change.
Who This Affects
- Screen reader users — context changes without warning cause the reader to lose its place entirely
- Users with cognitive disabilities — unexpected changes are confusing and disorienting
- Users with low vision — may not notice that the page has changed around them
- Keyboard users — focus changes disrupt their navigation flow
Common Pitfalls
1. Auto-redirecting pages
<!-- Bad: page auto-redirects after 5 seconds -->
<meta http-equiv="refresh" content="5;url=/new-page">
<p>You will be redirected in 5 seconds...</p>
<!-- Good: let the user decide when to navigate -->
<p>This page has moved. <a href="/new-page">Go to the new page</a>.</p>
2. Dropdown that navigates on selection
<!-- Bad: selecting an option auto-navigates -->
<select onchange="window.location.href = this.value">
<option value="/en">English</option>
<option value="/fr">French</option>
<option value="/es">Spanish</option>
</select>
<!-- Good: explicit submit button -->
<form action="/change-language" method="GET">
<label for="lang">Language:</label>
<select id="lang" name="lang">
<option value="en">English</option>
<option value="fr">French</option>
<option value="es">Spanish</option>
</select>
<button type="submit">Go</button>
</form>
3. Links that open in new windows without warning
<!-- Bad: new window with no indication -->
<a href="https://example.com" target="_blank">Example Site</a>
<!-- Good: user is warned about the new window -->
<a href="https://example.com" target="_blank" rel="noopener noreferrer">
Example Site (opens in new tab)
</a>
How to Test
- Navigate through the site and note any context changes that happen automatically: auto-redirects, auto-advancing content, or pages that refresh on a timer.
- View the page source and search for
<meta http-equiv="refresh">tags that auto-redirect. - Check that no
<select>or<input>element triggers navigation on value change without an explicit submit button. - Verify that links opening new windows are clearly indicated with visible text like "(opens in new tab)."
- Check if a global setting exists to disable any automatic context changes.
- Pass: All context changes are initiated by explicit user action, or a mechanism exists to disable automatic changes.
- Fail: Any context change occurs automatically (auto-redirect, auto-submit, timer-based refresh) without user action or a way to disable it.
How to Fix
- Remove all
<meta>refresh/redirect tags and replace with user-activated links - Add explicit submit buttons to forms instead of auto-submitting on input change
- Indicate links that open new windows with visible text like "(opens in new tab)"
- For auto-updating content (dashboards, feeds), provide a setting to disable auto-updates
- Ensure all context changes are triggered by user actions (clicks, form submissions) rather than timers or input events