WCAG 3.2.5 — Change on Request
AAA forbids unrequested changes of context — auto-refresh, auto-open popups, auto-redirects. The user asked for the page they're on; honour that, until they ask for something else.
What this requires
Changes of context are initiated only by user request, or a mechanism is available to turn off such changes. "Change of context" includes new window openings, focus moves, content replacement, and page refreshes. The criterion is the AAA tightening of 3.2.1 and 3.2.2 — context changes need explicit user action, or an off switch.
How AI coding tools fail this
When asked to add "auto-refresh the dashboard every 60 seconds", AI tools schedule a periodic re-fetch that updates page state without user request. The criterion is satisfied if the refresh doesn't substantively change context — a stock price ticker updating in place is fine — but a full page reload or major content swap is not.
The second pattern: marketing sites that auto-rotate hero carousels or auto-advance steps in a "how it works" section. The content changes without user input.
The third: routing that opens new tabs without an explicit user
gesture. Programmatic window.open calls from useEffect change
context unilaterally.
Edge cases
- In-place data updates that don't reorder or replace surrounding content (a live counter, a price tick) are fine — no context change.
- Auto-refresh as a destructive page reload is a fail.
- Carousels and auto-advance must offer pause/stop (2.2.2).
<meta http-equiv="refresh">with a non-zero timer is a classic fail — visible refresh after a delay.- AAA target. Most projects target AA's 3.2.1 / 3.2.2.
How Jeikin handles this
The scanner flags <meta http-equiv="refresh">, setInterval calls
that perform navigation or full reloads, and programmatic
window.open calls outside event handlers. The dashboard records
each finding and tracks the move to user-initiated equivalents.