Flash Content Warning Blocker
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script detects and warns about flashing, blinking, or rapidly animated content on any webpage that could trigger photosensitive epilepsy or cause visual discomfort. It identifies elements with CSS animations, transitions, animated GIFs, and video content that change rapidly. Potentially problematic content is dimmed and covered with a warning overlay that says "Flashing Content — Click to view." You can click on the warning to dismiss it and reveal the content temporarily. The sensitivity can be adjusted to catch more or less content, and you can whitelist specific sites where you don't want the warnings to appear. The script updates dynamically as new content loads, making it useful for browsing pages with auto-playing media or animated ads.
WHERE IT RUNS
The script runs on all websites (*://*/*), making it truly universal. It works on any page with animations, GIFs, videos, or rapidly changing content. It supports both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable flash blocker" toggle enables or disables the script.
- Select the sensitivity level: "Low" (only very fast flashing), "Medium" (balanced), or "High" (catch more content).
- Add domains to the whitelist (one per line) to disable warnings on specific sites.
- Click "Scan page" to manually re-scan for flashing content.
- Click "Remove all warnings" to dismiss all overlays at once.
When flashing content is detected, a warning overlay appears. Click the overlay to reveal the content.
TECHNICAL SECTION — REAL MECHANISM
The script detects flashing content by scanning the page for multiple indicators. It finds animated GIFs by checking img elements with src containing ".gif". It detects CSS animations by iterating through all elements and checking computed style properties: animationName (if not 'none'), animationDuration (must be less than the threshold, which is 500ms for low sensitivity, 250ms for medium, 100ms for high), and animationIterationCount. It also checks for rapid CSS transitions (transitionDuration less than the threshold). Additionally, it looks for class names containing "blink," "flash," or "flicker." Video elements are also flagged as potential flash content. When an element is identified, a warning overlay is created as a div with a semi-transparent background, warning text, and a click handler. The overlay is positioned absolutely over the element, and the element itself is dimmed with opacity:0.3 and blur(2px). Clicking the overlay removes it and restores the element. A MutationObserver watches for DOM changes and re-scans for new content. The whitelist is checked against the current URL to skip processing on trusted sites.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. The script detects potentially problematic content but may produce false positives or miss some content. It is a helpful tool, not a medical device. The sensitivity and detection thresholds are based on common guidelines for photosensitive epilepsy but should not be considered a complete guarantee of safety. The script stores only your preferences and whitelist via GM_setValue. No data is sent externally—all detection is performed locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.