Deprecated HTML Tag Museum

approximately two cups of coffee

HTML elements that time forgot, or tried to. Each exhibit includes a live specimen (where the browser cooperates), the source markup, and a brief note on provenance and fate. Browsers still carry these tags like vestigial organs — not because anyone asked, but because removing them would break something, somewhere.


<marquee> — The Eternal Scroll

This text is scrolling using a real <marquee> tag. No JavaScript. No CSS animation. Just HTML from 1996, still running.

<marquee scrollamount="3">This text is scrolling.</marquee>

Never part of any W3C standard. Introduced by Internet Explorer, adopted by Netscape out of competitive spite. Deprecated in HTML5, but browser vendors won’t remove it. The cockroach of markup.

ALIVE

This text blinks, but only because CSS is doing the work now.

<!-- Original (no longer supported): -->
<blink>Important notice!</blink>

<!-- CSS recreation: -->
<span style="animation: blink-effect 1s step-end infinite;">
  This text blinks via CSS.
</span>

Invented at Netscape over drinks. Lou Montulli has apologized. Firefox was the last holdout, finally dropping support in 2013. The tag itself is inert in every modern browser — you can write it, nothing happens. Here we resurrect it with CSS, which feels appropriate: the web always finds a way.

DEAD

<center> — Simpler Alignment

This text is centered using the actual <center> tag.
<center>This text is centered.</center>

Deprecated in HTML 4.01 in favor of CSS text-align: center. Still works in every browser tested. It does exactly one thing, and it does it well. There’s an argument that we lost something when we replaced a six-letter word with a property declaration, but that argument usually loses.

ZOMBIE

<font> — Inline Styling Before Style Existed

Peak web design, 1997.

<font face="Comic Sans MS" color="lime" size="4">
  Peak web design, 1997.
</font>

Before CSS, this was how you styled text. Every attribute an argument about aesthetics embedded directly in structure. Deprecated since HTML 4.01. Still renders faithfully. View-source on any GeoCities archive and you’ll find dozens nested three deep, each overriding the last.

ZOMBIE

<xmp> — The Literal Block

This renders <b>exactly</b> as typed. No <i>parsing</i>. No & entity decoding. What you write is what you get.

<xmp>This renders <b>exactly</b> as typed.
No <i>parsing</i>. No &amp; entity decoding.</xmp>

Predates <pre> and <code>. Displays content with zero interpretation — tags appear as literal text, entities stay as ampersand sequences. Removed in HTML 3.2, but most browsers still honor it. A ghost in the parser.

ZOMBIE

<isindex prompt="Enter your search query: ">

A single-line text input that predates the <form> element entirely. When submitted, it appended the query string to the URL. Designed for server-side search in the CERN era of the web. HTML5 removed it; browsers no longer render it as anything. The concept survived — we just wrapped it in more tags.

DEAD

<frameset> — The Divided Window

<frameset cols="200,*">
  <frame src="nav.html">
  <frame src="content.html">
</frameset>

Replaced <body> entirely. Split the browser window into independent panels, each loading its own URL. Genuinely powerful — and genuinely terrible for bookmarking, accessibility, and the back button. Killed in HTML5. The <iframe> carries its genes, quarantined to a rectangle.

DEAD

<bgsound> — The Uninvited Audio

<bgsound src="midi/canyon.mid" loop="infinite">

Internet Explorer’s gift to the world: background music that started automatically with no visible player and no obvious way to stop it. The MIDI file canyon.mid shipped with Windows and became the unofficial soundtrack of personal homepages. Never supported outside IE. The modern equivalent is <audio autoplay>, which browsers now block by default — we learned.

HAUNTING

<applet> — Java’s Broken Promise

<applet code="Lake.class" width="400" height="200">
  <param name="image" value="sunset.jpg">
  Your browser does not support Java applets.
</applet>

The dream: write once, run anywhere, embedded in a web page. The reality: a loading spinner, a security prompt, another loading spinner, then a grey rectangle. Deprecated in HTML5, removed from browsers by 2017. The fallback text (“Your browser does not support Java applets”) became more visible than any applet.

DEAD

<multicol> — Netscape’s Column Experiment

<multicol cols="3" gutter="20">
  Long text content here would flow across
  three columns, newspaper-style.
</multicol>

Netscape Navigator 3.0 introduced multi-column text layout in 1996, two decades before CSS column-count achieved broad support. Only ever worked in Netscape. The idea was right. The timing was wrong. CSS finally delivered the same feature around 2012, by which point everyone had forgotten <multicol> existed.

DEAD


Curatorial note. These tags were not mistakes. They were experiments — browser vendors solving real problems before standards caught up. The web is a living medium, and living things leave fossils. Some of these still twitch when you poke them.

*Last touched: April 5, 2026*