Media and motion Rule

Do not use the blink element blink

The blink element makes text flash on and off and gives nobody a way to stop it. Browsers dropped support years ago, but the tag still turns up in old content and still fails the check. Replace it with ordinary text; if something needs emphasis, make it bold or give it a highlight.

Websight reports this as <blink> elements are deprecated and must not be used

Who it affects

Someone with ADHD reading the village newsletter cannot read the paragraph next to a flashing NEW because their attention is dragged back to it every half second.

Someone with a vestibular or cognitive condition finds flashing content tiring and stressful, and leaves the page.

Someone with photosensitive epilepsy is at risk from anything that flashes more than three times a second, and blink is close to that line.

Broken versus fixed

The broken markup is shown as code rather than rendered, because the effect is in how it is announced or handled, not how it looks.

Broken
<p><blink>Village fete this Saturday!</blink> Gates open at noon.</p>

In old browsers the first sentence flashes on and off with no way to stop it. Modern browsers show it still, but the element is still invalid and still flagged.

Fixed
<p><strong class="highlight">Village fete this Saturday.</strong> Gates open at noon.</p>
<style>.highlight { background: #fff3b0; padding: 0 4px; }</style>

The same emphasis with a bold weight and a highlight. Nothing moves.

Test it by hand in two minutes

  1. View the page source (Ctrl+U) and search for <blink.
  2. Search the CSS for text-decoration: blink and for animations on text that toggle opacity or visibility.
  3. Watch the page for ten seconds without touching it. Anything flashing on and off needs a pause control, or removal.

The fix

Before
<p><blink>Village fete this Saturday!</blink> Gates open at noon.</p>
After
<p><strong class="highlight">Village fete this Saturday.</strong> Gates open at noon.</p>

Emphasis works with weight, colour (with enough contrast) or a highlight. If the flash was signalling urgency, say so in words: last chance, this Saturday.

CSS blink

Before
.alert { text-decoration: blink; }
After
.alert { font-weight: 700; background: #fff3b0; }

Same fix. The scanner does not look for the CSS version, so check it yourself.

Keyframe flash

Before
@keyframes flash { 50% { opacity: 0; } }
.alert { animation: flash 1s infinite; }
After
@media (prefers-reduced-motion: no-preference) {
  .alert { animation: flash 1s 3; }
}

If it must flash, flash three times then stop, respect reduced motion, and keep it under three flashes per second (WCAG 2.3.1).

Common mistakes

  • Replacing blink with a JavaScript interval that toggles visibility, which is the same thing with more code.
  • Keeping a flashing animation because it stops after five seconds; WCAG 2.2.2 allows that, but 2.3.1 still limits the flash rate.
  • Using an animated GIF of flashing text instead.

WCAG criteria this rule maps to

axe-core tags this rule as WCAG 2.2 level A. It is one of the checks for:

The scanner finds blink elements in the document. It does not detect CSS or script that makes text flash, so a clean result here does not mean nothing on the page blinks. Automated tools find only part of the accessibility problems on a page; a pass on this rule is not a pass on the criterion.

Scan your own page for this and 63 other checks

Open any page in Chrome, click Websight, and get a score out of 100 with every issue explained and a draft fix snippet per element.

Add Websight to Chrome

Free scans, no account, nothing leaves your computer. Automated tools find only part of the problems; the extension says so on every report.