Code has been added to clipboard!

Making Text Blink: HTML blink Tag

Reading time 3 min
Published Aug 21, 2019
Updated Jan 21, 2020
  • The HTML blink tags used to make their content toggle its visibility on the screen (blink, or flash).
  • Not only it’s obsolete in all modern browsers, some never supported it at all. This tag was also never standardized by HTML.
  • You may recreate a similar visual effect using JavaScript.
  • Most Internet usage guidelines strongly advise not to use blinking text, as it can cause problems for disabled users.

To make text blink, HTML required you to surround it in <blink> tags:

Example
This element is <blink>deprecated</blink>.

As the tag took no parameters, there was no way to manipulate the blinking frequency: it depended on the browser.

As the HTML blink tag was never universally supported, the CSS text-decoration property was offered as an alternative option. However, according to the CSS specification, browsers may not necessarily blink the text it is applied to - and most of them actually don’t:

Example
<span style="text-decoration: blink;">Under construction</span>

If you really must make your text blink, HTML is not the way to go. You can use JavaScript - however, it won’t be as easy as using a single pair of tags:

Example
var blink_speed = 500;
var t = setInterval(function () {
  var ele = document.getElementById('blinker');
  ele.style.visibility = (ele.style.visibility == 'hidden' ? '' : 'hidden');
}, blink_speed);

It seems HTML blink tag was doomed from the beginning. In 1996, a web usability expert Jakob Nielsen published an article called Top 10 Mistakes in Web Design, in which he called <blink> ‘simply evil.’ Even the tag creator Lou Montulli has publicly declared the idea of blink in HTML was supposed to be merely a joke, and he hated its implementation.

One of the reasons HTML blink tag received so much hate was simply overuse. Constantly flashing pages made the user experience terrible. Not only reading such text proved to be difficult, but the page design looks tacky and hard to look at.

The other and probably more important reason was defined in the User Agent Accessibility Guidelines, introduced by Word Wide Web Consortium (W3C). It states you should always leave a possibility to change animated or blinking text to static. US Federal Government's Section 508 advises avoiding screen flickering with a 2-55 Hz frequency as well.

All these guidelines are created having people with disabilities in mind. Users with photosensitive epilepsy might experience seizures when viewing flashing content, and the ones with cognitive problems may suffer as well.

Browser support

Chrome
-
Edge
-
Firefox
1+
IE
-
Opera
2+
Safari
-

Mobile browser support

Chrome
-
Firefox
4+
Opera
10.1+
Safari
-
Basics
Introduction
Syntax
Editors
Basic Examples
Head Section
<!DOCTYPE>
Tags and Elements
Semantic Elements
Tags Reference
Attributes
Comments
Block and Inline Elements
Forms
Form Elements
Input
Responsive Web Design
Inline Scripts
Uniform Resource Locator
Redirect
XHTML
Geolocation
Drag and Drop
Local Storage
Web Workers
Server-Sent Events
Character Encoding
Text Formatting
Quotation and Citation Elements
Headings
Paragraphs
Links
Tables
Lists
Symbols
Space
Tab
Styles
Computer Code
Layout
Classes
Colors
Images
iframes
Audio Player
Video Player
YouTube Videos
Multimedia
Canvas
SVG
<!-- -->
<a>
<abbr>
<acronym> DEPRECATED
<address>
<applet> DEPRECATED
<article>
<aside>
<audio>
<b>
<base>
<basefont> DEPRECATED
<bdi>
<bdo>
<big> DEPRECATED
<blink> DEPRECATED
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<center> DEPRECATED
<cite>
<code>
<col>
<colgroup>
<datalist>
<dd>
<del>
<details>
<dfn>
<dialog>
<dir> DEPRECATED
<div>
<dl>
<dt>
<em>
<embed>
<fieldset>
<figcaption>
<figure>
<font> DEPRECATED
<footer>
<form>
<frame> DEPRECATED
<frameset> DEPRECATED
<h1> – <h6>
<head>
<header>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<kbd>
<keygen> DEPRECATED
<label>
<legend>
<li>
<link>
<main>
<map>
<mark>
<menu>
<menuitem> DEPRECATED
<meta>
<meter>
<nav>
<noframes> DEPRECATED
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<param>
<pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>
<samp>
<script>
<section>
<select>
<small>
<source>
<span>
<strike> DEPRECATED
<strong>
<style>
<sub>
<summary>
<sup>
<table>
<tbody>
<td>
<tfoot>
<th>
<thead>
<time>
<title>
<tr>
<track>
<tt> DEPRECATED
<u>
<ul>
<var>
<video>
<wbr>