2.2.3 No Timing
What it requires
Timing must not be an essential part of the event or activity the content presents, with two exceptions: non-interactive synchronised media (such as a video with audio) and real-time events (such as a live auction or webinar). Outside those cases, users must be able to complete any task at their own pace — there can be no time limit on reading, responding, interacting, or finishing.
This is the stricter, Level AAA companion to 2.2.1 Timing Adjustable (Level A): rather than letting users turn off, adjust, or extend a limit, 2.2.3 removes time-dependence from the activity altogether.
- People with cognitive, language, or learning disabilities who need more time to read, comprehend, and decide.
- People with motor disabilities who interact slowly with a keyboard, switch, or other assistive device.
- Blind and low-vision users navigating with a screen reader or magnifier, where every step takes longer.
- Anyone who is interrupted mid-task — a forced timeout discards their progress and can lock them out entirely.
How to detect it
| Check | How | What fails |
|---|---|---|
| Find time limits | Review the content for any countdown, session timeout, quiz timer, or auto-advancing step. | A task ends, resets, or logs you out after a fixed period. |
| Slow-path test | Leave a form or flow idle, then resume; complete it deliberately slowly with the keyboard or a screen reader. | Progress is lost or the action is rejected because you took too long. |
| Confirm exceptions | Check whether any genuine limit is purely a live event or non-interactive media. | A non-real-time, interactive task still depends on timing. |
| Automated tools | Run axe or similar. | Cannot detect this — time limits are behavioural; manual testing is required. |
How to fix it
- Remove the time limit so the task can be finished whenever the user is ready.
- Where state matters, persist progress (save drafts, server-side state) instead of expiring it.
- If a limit is unavoidable, confirm it is a true real-time event or non-interactive media — otherwise it is in scope and must go.
- Avoid
meta refreshredirects and auto-advancing carousels or steps that move on before the user acts. - Never end a session with no warning; for any retained limit, at minimum meet 2.2.1.
Replace an auto-refreshing page with an explicit, user-triggered control:
<!-- No timed redirect; the user decides when to reload -->
<p>Results may have changed.</p>
<button type="button" onclick="location.reload()">Refresh results</button>
Copy-paste tests
Automated coverage
There is no fully automated axe-core rule that proves 2.2.3 No Timing. Timing is a behavioural property, so this criterion needs manual review using the console check and steps below.
Run this in the browser console
// Read-only: surface elements that may impose timing for manual review.
const suspects = [
...document.querySelectorAll('meta[http-equiv="refresh" i]'),
...document.querySelectorAll('[aria-live]'),
...document.querySelectorAll('marquee, [data-timeout], [data-countdown], [data-auto-refresh]'),
];
suspects.forEach(el => { el.style.outline = '2px solid orange'; });
console.table(suspects.map(el => ({
tag: el.tagName,
content: (el.getAttribute('content') || el.textContent || '').slice(0, 60),
})));
console.log('Suspect timing elements:', suspects);
What to check manually: watch the page for at least a minute without interacting and confirm no content auto-advances, refreshes, or times out; and verify any countdown or session limit is essential or can be turned off, adjusted, or extended.
Related
- All WCAG 2.2 success criteria
- Learn catalog — lessons mapped to WCAG criteria.
- Keyboard & focus — operable interaction without time pressure.