Skip to main content
Perceivly: Perceivly home

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

Examples

Fails:A small notification dot that blinks five times per second
.badge-dot {
  width: 12px;
  height: 12px;
  background: #b00020;
  animation: blink 0.2s steps(1, end) infinite;
}
@keyframes blink {
  50% { background: #fff; }
}
Passes:The same dot fades slowly, once every two seconds
.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

Official W3C explanation of 2.3.2

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026