WCAG 2.2.1Timing Adjustable

Timing Adjustable

What is this issue?

Timing adjustable issues occur when a website imposes time limits on user interactions without providing a way to turn off, adjust, or extend the time limit. WCAG Success Criterion 2.2.1 (Level A) requires that for each time limit set by the content, the user can turn off the time limit before encountering it, adjust it to at least 10 times the default, or be warned before time expires and given at least 20 seconds to extend it with a simple action (and be allowed to extend it at least 10 times).

Common examples of time limits include: session timeouts that log users out after a period of inactivity, auto-advancing carousels or slideshows, timed forms or assessments, auto-refreshing news feeds or dashboards, and temporary notifications or alerts that disappear after a few seconds. Each of these imposes a time constraint that may prevent some users from completing their tasks.

Session timeouts are the most impactful form of time limits. Banking sites, government portals, and e-commerce checkout flows often implement aggressive session timeouts (5-15 minutes) without warning. A user who is slowly filling out a long form, reading content with a screen reader, or taking a break due to fatigue may return to find their session expired and all progress lost.

Impact on users

Users with motor disabilities type and navigate significantly more slowly than users without disabilities. A form that a typical user completes in 5 minutes might take a user with a motor disability 30 minutes or more. If the session times out after 15 minutes without warning, the user loses all their work and must start over -- a deeply frustrating and sometimes impossible barrier.

Screen reader users also interact more slowly because they process content linearly. Reading a long page, understanding a complex form, and reviewing their entries takes significantly longer than for sighted users. Auto-advancing carousels are particularly problematic because the content changes before the screen reader can finish announcing it.

Users with cognitive disabilities may need extra time to read, understand, and respond to content. Learning disabilities, processing speed differences, and attention disorders all increase the time needed to complete tasks. Time limits that do not accommodate these differences exclude a significant population from using the site effectively.

Code example

Before (non-compliant)
<!-- Session timeout with no warning -->
<script>
  // Auto-logout after 15 minutes
  setTimeout(() => {
    window.location = '/logout';
  }, 15 * 60 * 1000);
</script>

<!-- Auto-advancing carousel -->
<div class="carousel">
  <div class="slide active">Slide 1</div>
  <div class="slide">Slide 2</div>
  <div class="slide">Slide 3</div>
</div>
<script>
  setInterval(() => advanceSlide(), 5000);
</script>

<!-- Disappearing notification -->
<div class="toast">Item saved!</div>
<script>
  setTimeout(() => toast.remove(), 3000);
</script>
After (compliant)
<!-- Session timeout with warning and extension -->
<script>
  let timeout = 15 * 60 * 1000;
  let warningTime = timeout - 60 * 1000; // Warn 1 min before

  setTimeout(() => {
    // Show accessible warning dialog
    showDialog({
      message: 'Your session will expire in 60 seconds.',
      buttons: [
        { text: 'Extend session', action: resetTimeout },
        { text: 'Log out', action: logout }
      ],
      role: 'alertdialog'
    });
  }, warningTime);
</script>

<!-- Carousel with pause control -->
<div class="carousel" aria-roledescription="carousel">
  <button aria-label="Pause slideshow"
    onclick="toggleAutoplay()">Pause</button>
  <div class="slide active" role="group"
    aria-label="Slide 1 of 3">Slide 1</div>
</div>

<!-- Persistent notification with dismiss -->
<div class="toast" role="status">
  Item saved!
  <button aria-label="Dismiss notification"
    onclick="this.parentElement.remove()">X</button>
</div>

How Scrutia detects this issue

Scrutia detects time-limited interactions by analyzing JavaScript for setTimeout and setInterval calls that affect page content or navigation. It checks for session timeout warnings, auto-advancing content without pause controls, and auto-dismissing notifications. Pages with time limits that lack user controls for adjusting or extending the time are flagged.

Check your site for this issue

Scrutia audits your site against WCAG criteria in minutes.

Free audit

Frequently Asked Questions

Are there exceptions to the timing requirement?
Yes. WCAG 2.2.1 provides exceptions for real-time events (live auctions), essential time limits (exam with a fixed duration that is essential to the activity), and time limits longer than 20 hours. Server-driven session timeouts for security are not automatically exempt -- they must still provide warning and extension mechanisms.
How should I implement a session timeout warning?
Show a modal dialog (role="alertdialog") at least 60 seconds before timeout. Include a button to extend the session that the user can activate with a single action. Allow at least 10 extensions. The warning itself must be accessible to screen readers using role="alert" or by moving focus to the dialog.
Do auto-advancing carousels need pause controls?
Yes. Any content that moves, blinks, or auto-updates must have a mechanism to pause, stop, or hide it (WCAG 2.2.2). For carousels, provide a visible pause/play button and stop auto-advancing when the user interacts with the carousel controls.

Does your site have this issue?

Scrutia scans your pages against WCAG success criteria and delivers actionable fixes. Results in 5 minutes.

Run a free audit