Skip to main content
Understandable WCAG 3.2.5

3.2.5 Change on Request

Changes of context are initiated only by user request, or a mechanism is available to turn off such changes.

Level AAA Moderate WCAG 2.0 (new) WCAG 2.1 WCAG 2.2

What this rule means

WCAG 3.2.5 is the AAA version of 3.2.1 and 3.2.2 combined. It requires that ALL context changes — not just those on focus or input — happen only when the user explicitly requests them, or that users can disable automatic context changes.

This includes auto-redirects, auto-refreshing pages, auto-opening windows, and any other automatic context change. The user must always be in control.

Why it matters

Automatic context changes are disorienting for screen reader users, who may not realize the page has changed. Users with cognitive disabilities may lose track of their task. Giving users full control over context changes ensures a predictable, user-driven experience.

Related axe-core rules

There are no automated axe-core rules for this criterion. Manual testing is required to identify all automatic context changes.

How to test

  • Monitor the page for automatic changes: redirects, refreshes, popups, content replacement.
  • Verify that all context changes require explicit user action (click, submit).
  • If automatic changes exist, check for a mechanism to disable them.
  • Test with JavaScript disabled to identify server-side auto-redirects.

How to fix

<!-- Bad: Auto-redirect -->
<meta http-equiv="refresh" content="5;url=/new-page" />

<!-- Good: Provide a link instead -->
<p>This page has moved. <a href="/new-page">Go to the new page</a>.</p>

<!-- Bad: Auto-refreshing content -->
<script>setInterval(() => location.reload(), 30000)</script>

<!-- Good: User-controlled refresh -->
<button onclick="location.reload()">Refresh data</button>

Common mistakes

  • Using meta refresh to redirect users without providing a link alternative.
  • Auto-opening new windows or popups without user action.
  • Auto-playing media that changes focus or context.
  • Infinite scroll that changes the URL without user action.

Resources