WCAG 2.2.1 Timing Adjustable — Testing Guide for Mobile & Web Apps
WCAG 2.2.1, now updated to WCAG 2.2, addresses a fundamental user need: control over time. This Success Criterion, classified as Level A, requires that any time limits imposed on users can be turned o
Ensuring Time is on Your Users' Side: A Guide to WCAG 2.2.1 (Timing Adjustable)
WCAG 2.2.1, now updated to WCAG 2.2, addresses a fundamental user need: control over time. This Success Criterion, classified as Level A, requires that any time limits imposed on users can be turned off, adjusted, or extended. This isn't about removing time limits entirely, but about providing users with the agency to manage them according to their individual needs and pace.
What WCAG 2.2.1 (Timing Adjustable) Requires
At its core, WCAG 2.2.1 mandates that if your application presents time limits for a user to complete an action, you must offer at least one of the following:
- Turn off the time limit: Users can disable the timer altogether.
- Adjust the time limit: Users can extend the duration before the time limit expires.
- Extend the time limit: Users can request more time without losing their progress or data.
This applies to any user interaction where a time constraint exists, from filling out a form to completing a multi-step process. The key is user control.
Why WCAG 2.2.1 Matters: Broadening User Access
Strict time limits can create significant barriers for a wide range of users. Understanding who is affected highlights the importance of this criterion:
- Users with cognitive disabilities: Individuals with conditions like ADHD, dyslexia, or learning disabilities may struggle with rapid processing or task completion under pressure. Time limits can lead to frustration, errors, and abandonment of the task.
- Users with slower processing speeds: This includes older adults, individuals recovering from certain medical conditions, or those using assistive technologies that might introduce latency.
- Users with motor impairments: Those who use alternative input devices or have limited dexterity may require more time to navigate and interact with interfaces.
- Non-native language speakers: Understanding complex instructions or content in a new language can take longer.
- Users in distracting environments: Unexpected interruptions or background noise can disrupt a user's focus, necessitating more time.
- Users experiencing temporary limitations: Anyone can face situations where they need extra time, such as a sudden phone call or a slow internet connection.
In essence, adhering to WCAG 2.2.1 makes your application more inclusive and usable for a broader audience, aligning with principles of digital accessibility mandated by regulations like the EU's European Accessibility Act (EAA) and the Americans with Disabilities Act (ADA) in the US.
Common Violations and Examples
Strict, non-adjustable time limits are a prevalent issue in web and mobile applications. Here are a few common scenarios:
#### Mobile App Violations:
- Session Timeouts Without Warning or Extension:
- Scenario: A banking app automatically logs a user out after 5 minutes of inactivity to protect their session.
- Violation: The app logs the user out abruptly without any warning that the session is about to expire, and no option is provided to extend the session or save their current work. The user loses any unsaved data or progress.
- Limited Time for Form Submission:
- Scenario: A survey app on mobile requires users to complete a lengthy questionnaire within a strict 10-minute window.
- Violation: If a user takes longer than 10 minutes, their progress is lost, and they have to start over. There's no "extend time" button or ability to pause the timer.
- Timed Quizzes/Challenges:
- Scenario: A learning app presents a timed quiz where users have 30 seconds per question.
- Violation: Users cannot pause the quiz or extend the time per question, penalizing those who need more time to read and comprehend.
#### Web App Violations:
- Expired Session Warning:
- Scenario: An e-commerce website has a 15-minute session timeout for logged-in users.
- Violation: The website simply logs the user out after 15 minutes without any prior notification, forcing them to re-login and potentially lose items in their cart or unfinished checkout steps.
- Form Time Limits:
- Scenario: A government portal requires users to complete a complex application form within a 20-minute limit.
- Violation: The form submission fails if not completed within the time, with no option to extend or save progress. Users have to re-enter all information.
- CAPTCHA/Verification Timeouts:
- Scenario: A login page uses a CAPTCHA that expires after 60 seconds.
- Violation: If a user takes longer than 60 seconds to solve the CAPTCHA, they must refresh it and solve a new one, causing frustration and delay.
How to Test for Compliance
Testing for WCAG 2.2.1 requires a combination of manual exploration and automated checks.
#### Manual Testing Steps:
- Identify All Time Limits: Carefully review your application for any instance where a user must complete an action within a specific duration. This includes form submissions, session timeouts, timed quizzes, or any interactive element with a countdown.
- Attempt to Exceed the Limit: Intentionally take longer than the specified time. Observe what happens:
- Does the application provide a warning before the time limit expires?
- Is there an option to extend the time or pause the timer?
- Can the time limit be disabled or turned off?
- What happens to the user's progress or data when the time limit is exceeded? Is it lost?
- Test Persona Variations: Simulate users with different needs:
- Impatient User: Try to rush through a timed task. Does the system allow it without penalizing them unnecessarily?
- Elderly User/Novice User: Take your time and deliberately exceed limits. Observe the error handling and recovery.
- Accessibility Persona: If using assistive tech, how does it interact with the timer? Does it impede your ability to react?
#### Automated Tools for WCAG 2.2.1 Checks:
While truly testing the *adjustability* of time limits often requires manual interaction, automated tools can identify the *presence* of time limits that might need further scrutiny.
- Browser Developer Tools: Inspect elements for JavaScript timers or session management logic.
- Accessibility Checkers (Browser Extensions): Tools like axe DevTools or WAVE can flag potential issues related to dynamic content and time limits, though they might not fully assess the adjustability.
- SUSA (SUSATest): As an autonomous QA platform, SUSA can detect session timeouts and other time-bound interactions during its exploration. It can identify flows that fail due to unexpected time limits.
#### Mobile-Specific Considerations (Android/iOS):
- Background Activity: For mobile apps, test how time limits behave when the app is in the background or when the device screen times out. Does the timer continue, or does it pause appropriately?
- Network Latency: Simulate slow network conditions. Does the time limit account for potential delays in data transmission or API responses?
- Assistive Technologies: Test with screen readers (VoiceOver, TalkBack) and other assistive technologies. Ensure that time limit warnings are announced clearly and that users have sufficient time to interact with these technologies.
How to Fix Violations
Addressing WCAG 2.2.1 violations involves implementing user-friendly time management features.
#### Code Examples:
Web (JavaScript):
// Example: Implementing a session timeout with a warning and extend option
let sessionTimeout = 15 * 60 * 1000; // 15 minutes in milliseconds
let warningTime = 5 * 60 * 1000; // 5 minutes warning
let sessionTimer;
let warningTimer;
function startSessionTimers() {
sessionTimer = setTimeout(handleSessionTimeout, sessionTimeout);
warningTimer = setTimeout(showSessionWarning, sessionTimeout - warningTime);
}
function handleSessionTimeout() {
alert("Your session has expired. Please log in again.");
// Redirect to login page or perform logout
window.location.href = "/login";
}
function showSessionWarning() {
// Display a modal or banner with a warning
const warningMessage = "Your session will expire in 5 minutes. Click 'Extend Session' to continue.";
const extendButton = "<button id='extendSessionBtn'>Extend Session</button>";
// Display this message to the user
console.log(warningMessage + " " + extendButton);
document.getElementById('extendSessionBtn').addEventListener('click', extendSession);
}
function extendSession() {
// Clear existing timers
clearTimeout(sessionTimer);
clearTimeout(warningTimer);
// Reset timers
startSessionTimers();
// Hide warning message
console.log("Session extended.");
}
// Initial call to start timers when user logs in or page loads
startSessionTimers();
Mobile (Conceptual - Android Kotlin):
For mobile applications, session timeouts and time limits are often managed within the application logic, potentially involving background services or lifecycle observers.
- Longer Session Durations: Increase default session timeouts where feasible.
- User Preferences: Allow users to adjust or disable time limits in their profile settings.
- Warning Dialogs: Implement non-modal dialogs that clearly state the remaining time and offer an "Extend" or "Continue" button.
- Graceful Session Expiration: Instead of abruptly terminating, guide the user to a safe state (e.g., a login screen) without losing essential data.
How SUSA Checks This Criterion During Autonomous Exploration
SUSA's autonomous QA platform tackles WCAG 2.2.1 by integrating accessibility testing into its core exploration process.
- Dynamic Persona Testing: SUSA utilizes 10 distinct user personas, including novice, elderly, and impatient users. When exploring an application, SUSA simulates these personas interacting with time-sensitive features. For instance, an "impatient" persona might attempt to rush through a form, revealing if the system handles the time limit abruptly. An "elderly" persona might take longer, exposing issues with warnings and extensions.
- Flow Tracking: SUSA meticulously tracks user flows like login, registration, and checkout. If a time limit interrupts these critical flows, SUSA can identify the failure point and provide a PASS/FAIL verdict.
- Accessibility Violation Detection: Beyond timing, SUSA performs comprehensive WCAG 2.1 AA accessibility testing. This includes identifying issues that could indirectly affect time-sensitive interactions, such as unclear instructions or poorly labeled buttons that might cause a user to take longer than anticipated.
- Crash and ANR Detection: If a time limit interaction leads to an application crash or an Application Not
Test Your App Autonomously
Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.
Try SUSA Free