top | item 6182690

Some killjoys have removed the blink tag from Firefox

309 points| mfincham | 12 years ago |jwz.org

146 comments

order
[+] tingley|12 years ago|reply
I fixed blink in Mozilla twice (https://bugzilla.mozilla.org/show_bug.cgi?id=89065) in the old days, back when I was running around looking for things to fix. The first time it broke was a result of Dave Hyatt's rewrite of the style system; I always suspected he had broken it on purpose. The second time seemed like it was just a mistake.

Anyways, a sad day.

[+] emhart|12 years ago|reply
I'd actually love to hear more about your fixes, your suspicions and your feelings about blink's removal. The anthropology of the internet is fascinating to me and it sounds like you would have a pretty unique perspective on this. Either here or a blog or whatever, I'd love to know more.
[+] ivank|12 years ago|reply
You can put jwz's blink in your browser profile's userContent.css to make it work on all websites:

  @keyframes         blink {
    0% { opacity:1; } 75% { opacity:1; } 76% { opacity:0; } 100% { opacity:0; }}

  blink {
    text-decoration:   inherit;
    animation:         blink 0.75s ease-in infinite alternate;
  }
(Though it will work a little differently than the native <blink>, as the CSS makes non-text elements blink as well.)
[+] brudgers|12 years ago|reply
The problem framed by JWZ is not a technical one. It is a social one, and centered upon values. Eliminating <blink> changes the existing content of the web. There's a reasonable argument that that is a bad thing - again one based on values not technology.

To put it another way, <blink> has meaning by virtue of its history. Its presence on a page says something to the viewer - not something technical but something cultural.

<blink>'s removal does not make the web richer or more meaningful. Instead, its removal does something quite the opposite.

I won't say that it is vandalism - but it does wantonly alter the expression of existing web content, and does so to the very content that is most in danger of being lost to history. It neuters what makes some web pages representative of their time and place.

[+] AaronFriel|12 years ago|reply
Thank god we can finally blink non-text elements. The glorious HTML5/CSS3 future is upon is.
[+] aegiso|12 years ago|reply
Just an FYI: you can use step timing functions to obviate the need for the 1% change hack :).
[+] AsymetricCom|12 years ago|reply
Technically, this isn't the right solution, but I appreciate the suggestion. Firefox should honor HTML standard and add it back, and add an option in about::config or some other dialog and disable it there if they think it should be disabled by default.
[+] Terretta|12 years ago|reply
Thing is, back in the day, blink did have its uses...

    <blink><font color="red">"If you click continue, 
    your database will be irretrievably deleted, your 
    children shipped off to coal mines, and your tea 
    served lukewarm."</font></blink>
Even corporate intranets loved it: http://forums.asp.net/post/433145.aspx

It worked!

[+] jes5199|12 years ago|reply
it's actually hard to read blinking text - it's missing from the screen half the time!
[+] hobbes78|12 years ago|reply
Mandatory link:

"The Origins of the <Blink> Tag" http://www.montulli.org/theoriginofthe%3Cblink%3Etag

It's surprisingly interesting and written by the person with the original idea!

[+] speeder|12 years ago|reply
Drunk coders, awesome. Also I wonder who leaked, or found out, the tag first.
[+] ghshephard|12 years ago|reply
Small correction, St. James Infirmary was on Moffett Blvd, how I loved that place before it burned down.
[+] talles|12 years ago|reply
Haha amazing, who knew blink had such a story behind it...

Ty for the link

[+] mindcrime|12 years ago|reply
Killjoys? Nay, bloody sodding wankers, the lot of them! Removing the <blink> tag is about as heart-warming an event as taking Old Yeller out back and putting a bullet through his brain. This is a travesty, pure and simple.
[+] brudgers|12 years ago|reply
" as heart-warming an event as taking Old Yeller out back and putting a bullet through his brain."

Minus the rabies.

[+] krapp|12 years ago|reply
first they came for the <blink> tag...
[+] nhebb|12 years ago|reply
Blink is a visual annoyance, but it's nothing compared to the retina bleaching caused by jwz's site.
[+] IvyMike|12 years ago|reply
Once upon a time, green-on-black was the best thing available, and to programmers my and jwz's age, it was THE FUTURE.

But to this generation, it's denigrated as "retina bleach".

[+] libria|12 years ago|reply
There's a normalizing scriptlet bookmark I got from here on HN:

    javascript:(function(){function R(w){try{var d=w.document,j,i,t,T,N,b,r=1,C;for(j=0;t=["object","embed","applet","iframe"][j];++j){T=d.getElementsByTagName(t);for(i=T.length-1;(i+1)&&(N=T[i]);--i)if(j!=3||!R((C=N.contentWindow)?C:N.contentDocument.defaultView)){b=d.createElement("div");b.style.width=N.width; b.style.height=N.height;b.innerHTML="<del>"+(j==3?"third-party "+t:t)+"</del>";N.parentNode.replaceChild(b,N);}}}catch(E){r=0}return r}R(self);var i,x;for(i=0;x=frames[i];++i)R(x)})(); javascript:(function(){var newSS, styles='* { background: white ! important; color: black !important; text-shadow: none !important } :link, :link * { color: #0000EE !important } :visited, :visited * { color: #551A8B !important }'; if(document.createStyleSheet) { document.createStyleSheet("javascript:'"+styles+"'"); } else { newSS=document.createElement('link'); newSS.rel='stylesheet'; newSS.href='data:text/css,'+escape(styles); document.getElementsByTagName("head")[0].appendChild(newSS); } })(); javascript:(function(){var d=document; function K(N,w) { var nn = d.createElement(w), C = N.childNodes, i; for(i=C.length-1;i>=0;--i) nn.insertBefore(C[i],nn.childNodes[0]); N.parentNode.replaceChild(nn,N); } function Z(t,w) { var T = document.getElementsByTagName(t), j; for (j=T.length-1;j>=0;--j) K(T[j],w); } Z("blink", "span"); Z("marquee", "div"); })(); javascript:(function(){var H=["mouseover","mouseout","unload","resize"],o=window.opera; if(document.addEventListener/*MOZ*/&&!o) for(j in H)document.addEventListener(H[j],function(e){e.stopPropagation();},true); else if(window.captureEvents/*NS4*/&&!o) { document.captureEvents(-1/*ALL*/);for(j in H)window["on"+H[j]]=null;} else/*IE*/ {function R(N){var i,x;for(j in H)if(N["on"+H[j]]/*NOT TEXTNODE*/)N["on"+H[j]]=null;for(i=0;x=N.childNodes[i];++i)R(x);}R(document);}})(); javascript:(function() { var c, tID, iID; tID = setTimeout(function(){}, 0); for (c=1; c<1000 && c<=tID; ++c) clearTimeout(tID - c); iID = setInterval(function(){},1000); for (c=0; c<1000 && c<=iID; ++c) clearInterval(iID - c); })();(function(){ var imgs = document.getElementsByTagName('img'); for(var i=0; i < imgs.length; i++) { imgs[i].style.visibility='hidden';}})();
Wish I could credit the source.
[+] rangibaby|12 years ago|reply
And the beast shall come forth surrounded by a roiling cloud of vengeance. The house of the unbelievers shall be razed and they shall be scorched to the earth. Their tags shall blink until the end of days.

from The Book of Mozilla, 12:10

[+] voltagex_|12 years ago|reply
The best use of this I've seen was someone wrapping the entire Wikipedia article on the blink tag, in the blink tag.
[+] frozenport|12 years ago|reply
Does anybody have the firefox devs discussion on this matter. Blink was my favorite indigo child of tags. When clients wanted more attention to a div i would blink it, and they would quickly realize the error of their ways.
[+] jmadsen|12 years ago|reply
Really? Mine always thought it looked great
[+] exDM69|12 years ago|reply
Not sure if he's joking or not. In other circumstances I would immediately take it as a joking but this guy has been seriously complaining about removing crappy features that should have been killed decades ago: http://www.jwz.org/blog/2012/06/i-have-ported-xscreensaver-t...

In the above he was complaining about the removal of glBegin/glEnd from OpenGL ES (and depracating it in OpenGL 3.0+). It was a convenience feature that might have made sense back in 1992 when OpenGL was introduced but with the advent of consumer graphics hardware in the late 90's, glBegin/glEnd was essentially the reason for a 100x performance drop.

(if you're wondering whether I'm joking or not: yes I am, except for the 100x perf drop)

[+] thezilch|12 years ago|reply
WHAT'S NEXT?!?? REMOVING...

  <font face="comic sans ms">???</font>
???
[+] ygra|12 years ago|reply
Which has been standardised for ages, but deprecated for a while.
[+] shirro|12 years ago|reply
Now we need a new semantic tag to indicate content will be annoying that we can style with css however we like. I propose we reuse the blink tag for that purpose.

<blink>The new iphone is rumoured to...</blink> <blink>Version 0.1.2 of xyzscript has just been released...</blink>

[+] brudgers|12 years ago|reply
This isn't progress.

It's just change.

Blink never hurt anyone.

[+] pjscott|12 years ago|reply
Have you forgotten how annoying the web used to be?
[+] derleth|12 years ago|reply
Blink can cause epileptic seizures.
[+] wymy|12 years ago|reply
> <blink> support should be dropped for one release out of every four.

Thanks for the laugh.

[+] kudu|12 years ago|reply
I think that completely killing the blink tag is a bit extreme given that its core implementation could simply have been replaced by a CSS polyfill.
[+] msvan|12 years ago|reply
So now the blink tag will appear in some browsers but not in others? Fear not, the blink tag lives on. If not in Firefox, then in the irony.
[+] gpvos|12 years ago|reply
Firefox was the last browser that still supported it.