WCAG 2.2 success criterion 2.3.1, Three Flashes or Below Threshold, is a Level A requirement: no content flashes more than three times per second.
Read the criterion in the W3C Recommendation, WCAG 2.2 (opens in a new tab).
How BearScan checks it
No content flashes more than three times per second
Checked automatically: reads the HTML. Severity: blocker. Flashing above the general flash threshold can trigger a seizure. This is a hard safety limit, not a usability preference.
An approximation: Looks for the mechanisms that usually carry flashing content: video (in the page, in any frame it embeds, or streamed), embedded players and animated GIFs. Flashing produced by CSS or canvas animation is not visible this way, so a page with none of those mechanisms passes on the absence of the usual sources rather than on a measured flash rate. Media is never played, so a page that carries any stays incomplete and names each item to play.
How to fix it. Remove or slow any animation that flashes more than three times in a one-second period.
All WCAG 2.2 criteria · Next: 2.4.1 Bypass Blocks
Questions
Is WCAG 2.3.1 required by the ADA?
The ADA doesn't name a technical standard for businesses, but the Justice Department's 2022 guidance points businesses to WCAG, and its 2024 rule for state and local governments adopted WCAG 2.1 Level AA, which includes 2.3.1.
Can an automated tool check WCAG 2.3.1?
Mostly. BearScan checks it automatically (reads the HTML). A clean result still isn't proof every page passes, only the pages scanned.
How do I fix a WCAG 2.3.1 failure?
Remove or slow any animation that flashes more than three times in a one-second period.