From flashing content to a calmer page.
FlashBan reads the pixels and animations already on the page, counts flashes by the clock, and dims or blocks content that crosses the limit. When a site reuses one video player (YouTube), each new video is checked again. The first frames can reach the screen before it reacts.
The pipeline
Sample every rendered frame
Video frames, canvas pixels, animated images and CSS animations are read as they're drawn, never on a slow timer that a strobe could slip between.
Measure brightness and red
Relative luminance per WCAG, plus a separate check for saturated red, which can trigger seizures at lower brightness. Near-black noise is treated as having no colour.
Count flashes in a one-second window
By real time, not frame counts, so a slow machine can't make a strobe look slower than it is. Flashing area is added up across elements, so a big flash split into small tiles still counts.
Decide
Over the limit (WCAG by default; Strict and Relaxed are in the popup) means act. Can't read it at all means fail closed.
Dim, block or slow
Flashing media keeps playing, dimmed (94% by default) and turned grey, so its brightest pixel can't change enough to count as a flash. Red or very fast flashing (6 or more a second) is blocked: paused behind a plain panel. CSS animation is slowed and script-driven flicker is smoothed. Media that can't be checked stays dimmed and labelled.
What you see on the page
- Dimmed for safety
The default for flashing media: dimmed and in greyscale while it keeps playing. The popup's Protection strength slider sets how dark (72, 80, 88 or 94%, never lighter than the level that still can't flash); its top step blocks instead.
- Blocked
Red or very fast flashing, or anything at the slider's top step: paused behind a plain panel. To see the site as it is, press "Show original on this site" in FlashBan's bar. Pages can't press it for you: only real clicks count.
- Can't verify
Dimmed and labelled. Protected or cross-origin video can only be dimmed, not checked.
- Locked down
When a page keeps fighting the protection, its media is hidden and the toolbar icon shows "!".
Our own interface never flashes
Nothing blinks or flashes. Labels and the bar may fade in slowly (200–400 ms); anything that hides content appears at once, never faded in. FlashBan's labels and panels respect reduced motion and forced colours, work by keyboard alone with a visible focus ring, and are labelled for screen readers; when FlashBan hides something, it announces why. Overlay text sits on solid chips: white on near-black (18:1) and dark on olive (10.0:1).