Change on Request
Changes of context happen only when the user requests them, or the user can turn off the automatic change. No auto-redirect, no surprise refresh, no carousel that swaps content under the cursor.
What it asks
This is the AAA-level upgrade to 3.2.1 and 3.2.2: changes of context across the whole page should only happen when the user initiates them. If the page must change context automatically — for example, a meta-refresh redirect or an auto-rotating carousel — there must be a mechanism for the user to turn that behavior off.
The scope includes timed redirects, auto-playing slideshows, polling that swaps content, and any background process that moves the user.
How to meet it
- Replace meta-refresh redirects with a 301/302 server-side redirect or with a “Click here to continue” link.
- For carousels, provide play/pause controls and remember the user’s preference.
- For dashboards that auto-refresh, expose a control to pause or set the interval.
- For session timeouts, warn before the redirect and give the user a chance to extend (this overlaps with 2.2.1 Timing Adjustable).
- For “new content available” notifications, let the user click to load instead of swapping content under them.
Common failures
- A homepage carousel that rotates every 4 seconds with no pause control.
- A 5-second redirect from
/old-urlto/new-urlwithout a manual continue link. - A live dashboard that re-renders charts every 30 seconds, scrolling the user back to the top each time.
- A search results page that re-sorts itself when new results stream in, breaking the user’s mouse-to-target path.
Why it matters
This is AAA, so it is rarely a compliance target — but it is excellent design. Users with motor disabilities cannot click moving targets. Users with cognitive disabilities lose their place when content moves. Screen-reader users find their queue interrupted. Even able-bodied users on slow connections get frustrated when a carousel slides off the slide they were trying to click. “Change on request” is the principle behind every well-designed “load more” button.