WCAG 2.3.3: Animation from Interactions
WCAG 2.3.3, Animation from Interactions, is a Level AAA success criterion introduced in WCAG 2.1. Its primary goal is to ensure that users have control over animations that are triggered by their interactions with a web page. Specifically, it mandates that web content provides a mechanism to disable or pause any non-essential animations that start as a result of user action, such as hovering, clicking, or focusing on an element.
This criterion helps to create a more inclusive web by accommodating users who may experience discomfort, distraction, or even physical symptoms like vestibular disorders or seizures due to animated content.
Understanding WCAG 2.3.3: Animation from Interactions
The web is increasingly dynamic, often using animations to enhance user experience, provide feedback, or simply add visual flair. While many animations are subtle and harmless, some can be problematic for certain users. WCAG 2.3.3 addresses animations that are:
For such animations, there must be a way for the user to turn them off. This can be through a site-specific setting, or by honoring system-level preferences.
Who Benefits from This Criterion?
Providing control over animations significantly benefits a wide range of users, including:
Official Requirements and Success Criteria
The exact wording of Success Criterion 2.3.3 Animation from Interactions (Level AAA) is:
Motion animation triggered by interaction can be disabled, unless the animation is essential to the functionality or the information being conveyed.
Key phrases within this criterion include:
Practical Guidelines for Compliance
Achieving compliance with WCAG 2.3.3 involves thoughtful design and implementation strategies:
1. Provide a Mechanism to Disable Animations
The most direct way to comply is to offer a user interface control that toggles animations on or off. This control should be easily discoverable and persistent across sessions.
2. Respect System-Wide Preferences
Modern operating systems and browsers offer accessibility settings, such as "Reduce motion." Web content should ideally respect these preferences using CSS media queries (@media (prefers-reduced-motion: reduce)). This is often the most elegant and user-friendly solution, as it allows users to set their preference once at the OS level.
3. Distinguish Essential from Non-Essential Animations
Carefully evaluate each animation:
4. Default State Consideration
For highly intense or potentially problematic animations, consider making them opt-in rather than opt-out. By default, animations could be off, requiring users to explicitly enable them if they wish.
Examples of Implementation
Correct Implementations
Example 1: Using prefers-reduced-motion Media Query
This is the most common and recommended approach, automatically adapting to user’s system-wide settings.
Explanation: The element animates on hover by default. However, if the user has enabled "Reduce motion" in their operating system settings, the @media (prefers-reduced-motion: reduce) block will apply, disabling all motion transitions and animations for that element. This provides a robust, system-wide solution.
Example 2: User-Controlled Toggle for Site-Specific Animations
For scenarios where you need more granular control or want to provide a site-specific override, a UI toggle can be implemented.
Explanation: This setup provides a checkbox that, when unchecked, adds a class to the <body> element. This class then uses CSS to disable or remove animations. It also respects prefers-reduced-motion and persists the user’s choice using localStorage.
Incorrect Implementations
Example 1: Uncontrollable Hover Animation
A purely decorative element that animates on hover with no way to disable it.
Reason for incorrectness: This animation is triggered by user interaction (hover) and is purely decorative. There is no mechanism provided for the user to disable this animation, making it problematic for users sensitive to motion.
Example 2: Auto-Advancing Carousel with No Pause/Stop
A carousel or slider that automatically transitions between slides (even if triggered initially by a click/load) and offers no controls to pause or stop its motion.
Reason for incorrectness: Although the carousel might load on page load (not strictly an "interaction" trigger in some contexts), if it has interactive elements to navigate, and the animation for advancing cannot be controlled (paused/stopped/disabled) by the user, it violates the spirit of this criterion, especially if the movement is significant. The intent is to provide control over all non-essential motion triggered by or present during interaction.
Best Practices and Common Pitfalls
Best Practices
Common Pitfalls
Key Takeaways
Further Reading
Related posts
- WCAG 5.2.3: Complete processes
- WCAG 5.2.4: Only Accessibility-Supported Ways of Using Technologies
- WCAG 5.2.5: Non-Interference
- WCAG 5.3.1: Required elements of the conformity declaration
- WCAG 5.3.2: Optional Components of a Conformance Claim
Still looking for answers?
Ask our experts using online chat