2.3.2 Three Flashes
Level AAA · added in WCAG 2.0
Nothing on the page may flash more than three times in any one-second period. Unlike 2.3.1, there is no exception for small or low-contrast flashes.
Who it helps
People with photosensitive seizure disorders are protected even from small flashing areas, which can still trigger seizures in some people. People who view content up close or on large screens also benefit, since a small flash can fill more of their field of view.
How to meet it
- Remove flashing content, or slow it to three flashes or fewer in any one second.
- Check small elements too, such as blinking icons, cursors made of images, and animated badges.
- Prefer gentle fades or a single color change over on-and-off blinking.
- Run videos and animated GIFs through a flash analysis tool, and check every one-second window.
- Level AAA is not required by most laws or policies, which point to AA. It is still worth meeting where you can.
Examples
.badge-dot {
width: 12px;
height: 12px;
background: #b00020;
animation: blink 0.2s steps(1, end) infinite;
}
@keyframes blink {
50% { background: #fff; }
}.badge-dot {
width: 12px;
height: 12px;
background: #b00020;
animation: fade 2s ease-in-out infinite;
}
@keyframes fade {
50% { opacity: 0.5; }
}Can a scanner detect this?
No
axe-core has no rule for flashing, because it does not analyze rendered frames over time. Watch every animation and video, and use a flash analysis tool to count flashes per second.
No automated rule tests this criterion. Check it by hand.
Common mistakes
- Assuming a small flashing element is fine because it passes 2.3.1; at AAA, size does not matter.
- Using fast blinking for status lights, recording indicators or new-message badges.
- Forgetting animated GIFs and stickers that users post in comments or chat.
- Counting flashes over a whole clip instead of checking each one-second period.
Related criteria
Check your own page
See which automated WCAG checks your page fails, with the failing elements and how to fix them.
Reviewed November 2, 2026