WCAG 2.2.2 Pause, Stop, Hide — Testing Guide for Mobile & Web Apps

WCAG 2.2.2 requires that any moving, blinking, or auto-updating information on a web page or application must have a mechanism for the user to pause, stop, or hide it. This applies to content that upd

June 17, 2026 · 6 min read · WCAG Guides

Ensuring Compliance with WCAG 2.2.2: Pause, Stop, Hide

WCAG 2.2.2 requires that any moving, blinking, or auto-updating information on a web page or application must have a mechanism for the user to pause, stop, or hide it. This applies to content that updates automatically over a period of time. The goal is to prevent users from being distracted, disoriented, or unable to interact with the content due to involuntary movement.

Why WCAG 2.2.2 Matters

This criterion is critical for users with a wide range of needs.

Failure to comply can lead to exclusion and frustration for a significant portion of your user base, potentially impacting legal compliance under regulations like the EU's European Accessibility Act (EAA) and the Americans with Disabilities Act (ADA) in the United States.

Common Violations and Examples

Violations of WCAG 2.2.2 typically manifest in interactive elements that move without user initiation or control.

#### Mobile App Violations

  1. Auto-Scrolling Image Carousels: A common offender. If an image carousel on a product listing page automatically advances to the next image every 5 seconds without a visible "pause" or "stop" button, it violates the criterion. Users may not have enough time to read the product description or view the current image before it changes.
  2. Live Score Updates in Sports Apps: An app displaying live sports scores that update every few seconds without a pause mechanism can be overwhelming. Users trying to follow specific game details might miss crucial information if they can't freeze the display.
  3. Rotating Advertisements: Banner ads that automatically cycle through multiple promotions without a way to stop them can be highly distracting and may obscure other content on the screen.

#### Web App Violations

  1. News Ticker Feeds: A news website with a horizontally scrolling ticker at the top of the page that continuously cycles through headlines without a pause button. Users cannot stop to read a particular headline that interests them.
  2. Animated Promotional Banners: A website featuring a large, animated banner on its homepage that cycles through product highlights. If there's no "stop" or "pause" control, users might find it difficult to interact with other elements on the page, especially if the animation is large or visually dominant.
  3. Countdown Timers for Sales: An e-commerce site displaying a countdown timer for a limited-time sale that automatically updates every second. While intended to create urgency, if it cannot be paused, users might be unable to complete their purchase before the timer runs out if they need to verify details or perform other actions.

Testing for WCAG 2.2.2 Compliance

Ensuring compliance requires a combination of manual inspection and automated tooling.

#### Manual Testing Steps

  1. Identify Dynamic Content: Browse your application thoroughly, looking for any elements that move, blink, scroll, or update automatically without user interaction. This includes carousels, tickers, animations, auto-refreshing data, and countdown timers.
  2. Look for Controls: For each piece of dynamic content identified, search for explicit controls:
  1. Test Controls: Activate any found controls to ensure they function as expected. Verify that the content stops or pauses.
  2. Time-Outs: If there are no explicit controls, observe the content. Does it update or move continuously? If it does, it's a potential violation. Note the frequency of updates if possible.
  3. User Interaction: Try interacting with other elements on the page while the dynamic content is active. Does the dynamic content interfere with your ability to focus or act?

#### Automated Tools

While manual testing is essential for nuanced understanding, automated tools can efficiently identify potential issues.

#### Mobile-Specific Considerations

Fixing WCAG 2.2.2 Violations

The primary fix involves implementing user-controllable mechanisms.

  1. Implement Pause/Stop/Hide Controls:
  1. Limit Animation Duration: If an animation is short and non-essential, consider whether it's needed at all. If it is, ensure it can be stopped.
  1. Avoid Flashing Content: Strictly avoid content that flashes more than three times per second, as this is a seizure risk. If flashing is unavoidable for critical alerts, ensure it can be stopped immediately.

#### Code Examples (Conceptual)

JavaScript (for a web carousel):


// Assuming a carousel library with pause/play functionality
const carousel = document.querySelector('.carousel');
const pauseButton = document.getElementById('carousel-pause');
const stopButton = document.getElementById('carousel-stop'); // Optional

// To pause on click
pauseButton.addEventListener('click', () => {
  // Call the carousel library's pause method
  carousel.pause();
  pauseButton.textContent = 'Play'; // Update button text
});

// To resume on click (if pause was clicked)
// Add similar logic for resume/play functionality.

// For continuous scrolling, you might implement a hover-to-pause:
carousel.addEventListener('mouseenter', () => {
  carousel.pause();
});
carousel.addEventListener('mouseleave', () => {
  // Only resume if not explicitly paused by a click
  if (!isManuallyPaused) {
    carousel.play();
  }
});

Mobile (Conceptual - Android with Kotlin):

For auto-scrolling views (e.g., ViewPager2 with auto-scrolling enabled):


// Assuming you have a ViewPager2 and want to control auto-scrolling
val viewPager = findViewById<ViewPager2>(R.id.viewPager)
val pauseButton = findViewById<Button>(R.id.pauseButton)

// Logic to stop auto-scrolling
pauseButton.setOnClickListener {
    viewPager.isUserInputEnabled = false // Disables user swiping temporarily
    // If using a custom auto-scroll mechanism, stop its timer here.
    // Many libraries provide a 'stopAutoScroll()' method.
    // For built-in ViewPager2, you might need a custom adapter or handler.
    Toast.makeText(this, "Auto-scroll paused", Toast.LENGTH_SHORT).show()
}

// Logic to resume auto-scrolling
// Add a resume button or logic for when user interaction is allowed again.

How SUSA Checks for WCAG 2.2.2 Compliance

SUSA's autonomous exploration engine is designed to detect and analyze dynamic content.

By integrating SUSA into your QA process, you gain an automated yet comprehensive approach to identifying and rectifying WCAG 2.

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