[Skip to the Main Content]

Why do You use HTML 4?

My reasons are known. I know reasons expounded by authoritative developers. It was everyone else. Principally, what reasons would exist for someone not to follow an obsolesced markup language, i.e., Extensible HyperText Markup Language (XHTML).

This article originated as an afterthought of Why XHTML?. It was CSS Reboot 2006 that afforded my curiosity an avenue of resolution. It wasn’t about “HTML” versus “XHTML”. It wasn’t about “Strict” versus “Transitional”. Simply, why use HTML?

The CSS Reboot Spring 2006 HTML statistics went,
HTML 4.01/None = 2
HTML 4.01/Transitional = 19
HTML 4.01/Strict = 27

All site developers (excepting those 3 whose sites were server-side XHTML 1.1) were sent a letter with sundry introduction text appended with a small questionnaire,

  • Have you always used HTML 4.01; if not, when did you change from XHTML to HTML?
  • Why?

The following are the replies received from those who were kindly generous in writing and sending them. [They are reprinted with written permission.]

[Note: And, for those who believe that Dreamweaver lacks web standards, it doesn’t. Site developers who are not familiar with Dreamweaver will create a “Basic Page”, use it’s default HTML 4 setting (instead of selecting “Make document XHTML compliant”) and publish an HTML/Transitional standards site. That’s web standards by default.]

And, in random order,

CSS Reboot Spring 2006

Candy by James

James John Malcolm wrote,

“I’ve used xHTML for 5 years, from 2001 til 2006. My original reasons for using it were that it was supposed to be the future. It would have benefits like in-line SVG and MathML. It was presented as TheThingToUse(tm) with CSS.

There are two things about xHTML which make it a poor choice for (public) sites. Both of them have to do with xHTML’s mime-types. In short, xHTML can be sent with text/html or application/xhtml+xml as the mime-type. On the web xHTML is usually sent as text/html, as Internet Explorer (which has 83+% marketshare) doesn’t support the other mime-type. Both mime-types are valid for xHTML 1.0, but (supporting) browsers do handle them differently.

It’s the handling of the same code differently where xHTML’s problem lies. When xHTML 1.0 is sent as text/html, it is handled as HTML. This means that it has zero user benefits over HTML 4.01.

When sent as application/xhtml+xml, you could use MathML - but - the browsers will also apply draconian error handling. This way users visiting the site will be punished (by not being able to see the site) for mistakes by the creator (which could be the developer, the CMS, the person updating the text or indeed the user itself just writing something). Simple things like a misplaced & on a page (instead of &amp) will completely shut off a page from its users.

So on the one hand you get no benefits over HTML 4.01 because you have to send Internet Explorer your xHTML as text/html and on the other you get user-punishing error handling for other browsers if you decide to send to them as application/xhtml+xml.

No benefits but increased headaches? Mwa, count me out.

At this point people like to point out ‘Yes, but xHTML is the future!’ The future of xHTML (1.1 and 2.0) are not backwards compatible with xHTML 1.0 anyway, so writing xHTML now has little use later. Also, HTML 5 is coming, so who says that can’t be the future?

So my recommendations for writing your HTML? Use the doctype HTML 4.01 Strict and write it as xHTML compatible as possible. This means self-closing tags in the body, but not in the head.*

*Little known fact: It’s actually in the spec that you’re not allowed to self-close the meta or link tags. Quite silly in practical terms, and I would suggest to the HTML 5 people that they change that.”

Srđan Prodanović, SOME1ELSE

Srđan Prodanović wrote,

“Q: Have you always used HTML?

A: No. I’ve been to all the camps: HTML, XHTML, no DTD, WML..

Q: Why?

A: Basically, before the article ‘Fix your site with the right DOCTYPE!’ appeared on ALA, I didn’t pay much attention to the DTD. Mostly I’d just retain whatever the editor would put in place for me by default. After I discovered it’s power, I occasionally removed the DTD for certain projects, where the client required 100% height for Flash, or chose XHTML as the preferred doctype, back when believed it would help me learn write clean markup. As always, it was a time of learning.

Q: If not, when did you change from XHTML?

A: I decided to strive towards HTML 4.01 Strict when I learned about all the problems it faces (the compatibility and popular misconceptions). I didn’t disregard XHTML entirely though. I intend to use it in the future where applicable.

Q: Why?

A: In the case of my website I don’t have any requirements for SVG, MathML, or other XHTML features, so there’s no need. Basically, today the use of XHTML online is improper in most cases, and a bunch of issues arise when you try to serve it in it’s designated content type. It’s quite easier to just write strict markup in regular HTML, and avoid all the potential problems until the standard and it’s support matures.”

Just Beyond The Bridge

Andy Higgs wrote,

“Have you always used HTML?

Yes. More so than XHTML, and in fact I never really embraced XHTML, although I did play with it for a while on a number of my sites. HTML I consider as the foundation stone of web content; it’s the first language I encountered on the web, and still is incredibly valid. In fact in real terms, it is more valid than any other - it is *fully* supported by more user agents than any other language or delivery method (the main drawback of XHTML being that it still cannot be *entirely* valid unless it is served as XML, which at the moment it is impractical due to limited browser support). HTML is a language that works and is understood universally. The adoption of XHTML could almost be considered a fashion - the main reason I investigated and began to dabble was a fascination with a ‘new technology’. Well, maybe not a new technology, but certainly a revised attempt to solve a problem; and being the technophile I am, I wanted to make the most of all the new-fangled fun that could be had.

The reason I didn’t stick with XHTML was that although maybe initially I thought ‘this is the way forward’ being swept along with my new found knowledge, I soon came to realise there isn’t too much of a real benefit to using it. Everything I wanted could be done in HTML, so why switch to something that cannot yet be truly implemented without the little niggles bugging us evermore-pedantic developers? A ‘strict’ doctype is far more important consideration for me rather than whether the thing is HTML or XHTML. I will continue to build in HTML, but really am unlikely to fully adopt XHTML until we see a significant uptake of it in a serious manner and where there are some strong reasons to depreciate the HTML format. In the meanwhile I am likely to pick up XHTML from time to time, throw it about, give it a whirl, but only to keep up familiarity. Until I see cold hard evidence of HTML failing, I’m going to stay this way.”


Jason Bagley wrote,

“I haven’t always used HTML. I learnt HTML just as XHTML was becoming a standard, so I practically started with XHTML.

I actually don’t code at all using HTML. The reason my blog is HTML 4.01 strict is that I coded it using Dreamweaver, and as I’m using a header include file, which I only had to start and open once. I actually didn’t realise the doc-type was HTML. :-) You the one that alerted me to it!

My site is coded in XHTML, only the doc-type makes it HTML 4.01.

I’m hoping this clears it up and helps with your survey. I’m not a full-time web developer. For that reason, I try to stick to web standards as much as I possibly can, but there is no way I'm going to sweat over having my site render perfectly in every browser under the planet, and implement CSS hacks etc to get it to work. As long as I’m improving the way I code every time I do, and learn more and more about standards and accessibility, and implementing as much as I can, then I’m almost sure the web will be a better place with me in it. :-)”


Jack Cheng wrote,

“It was actually something I just copy and pasted from somewhere else (no idea where). I’ve only very recently been reading up on web-standards, etc., and when I get around to redesigning, it’ll be valid XHTML.”

snook.ca - tips, tricks, and bookmarks on web development

Jonathan Snook wrote,

“ Since there is no difference in element support between HTML 4.01 Strict and XHTML 1.0 Strict, it came down to other factors:

  1. XHTML is great if I need to treat the content as XML. Which I don’t.
  2. XHTML isn’t supported in IE and won’t be in IE7, therefore true cross-browser support isn’t possible without code-forking or other things to provide accurate display in IE.
  3. I’m not concerned about forward-compatibility as I don’t see any browser dropping support for HTML4.01 within the next 15 years (if ever). At which point, I’ll probably have redesigned my site by then. :).
  4. Accepting comments and serving as XML opens the possibility of pages of my site being unrenderable due to invalid XML. It’s great if I need to find errors but my users shouldn’t be subjected to it. I believe HTML’s popularity stems from its flexible error handling.

For client work, though, it tends to get done in XHTML as that is often what they request or if I subcontract the work, the contractors tend to do it in XHTML. Since I’m a practical kind of person and I don’t see much difference between HTML and XHTML, I’m more concerned about whether it works than which standard people develop in.”

Christian Montoya

Christian Montoya wrote

“Have you always used HTML?

No. I started using XHTML when I learned CSS and for a while I thought everyone should switch to XHTML.

If not, when did you change from XHTML?

After reading the following: http://hixie.ch/advocacy/xhtml upon the advice of members of the Web Standards Group.


I realized that XHTML served as text/html was rendered as nothing more than broken, messy html and not xhtml. Therefore there are no benefits to using an XHTML doctype if you are serving html to support old/incapable browsers.

HTML 4.01 is a standard that is safe and future-proof. It is fully supported whereas any XHTML standard is not. There are absolutely no benefits to serving either christianmontoya.com or foxymcloud.com as application/xhtml+xml, therefore there is no need to use the XHTML doctype. If anything, my sites function as well as any site served as text/html with an XHTML doctype, probably better.

More resources:




Web Blurb

Bryan Culver wrote

“I never really worried about the type of my site. I always blanketed it to HTML 4.01, defaulting to simple code. I am, however, switching to XHTML Strict.

One of the major, and only reason I used HTML was because IE was still a big contender on my sites but IE has now become 4th in stats and I want to switch over to XHTML. HTML works better in IE, the f**ked up browser it is.”

Ashley Morgan

Ashley Morgan wrote,

“I fear my answer may be less exciting than you may have hoped for. As you may have gathered from my website, I’m a professional trumpet player, not a designer. When I decided to take control of my own website (as opposed to hiring a professional designer) I had a clear idea of what I wanted to achieve and the look that I was after. After browsing the usual style / design websites (stylegala / zeldman / netdiver etc.) it became clear to me as an outsider to the web design process that there were two types of site - those that were built using CSS and those which were not. It was clear that those sites that used CSS for layout were somehow ‘accepted’ by those that I considered ‘in the know’.

It became apparent that if I wanted my website to function correctly and have the best chance of success that I needed to build it using CSS and not tables.

I have always used a Mac (as a musician I have been brought up with them) and I’m reasonably able to find my way around creative software such as photoshop to make my own flyers / promotional material etc. Dreamweaver seemed the natural choice for building a website.

So, that is what I did. I used a CSS single column template from a website that I found via zeldman.com and applied it to a blank page in Dreamweaver.

The point I am trying to make is that I never had to make a choice between XHTML and HTML 4.01. I built the page in Dreamweaver without being aware of what XHTML is.

…my site is HTML 4.01 more by accident than by any other reason. As a non-designer the difference between the two was never as apparent as the difference between CSS and a table based layout.”

jester direct, 2006

Chris Richards wrote,

“I have always used HTML for my sites. As a software engineer, writing applications in C++ and Java, my web sites are done primarily as experimentation and as a hobby. The only reason I haven’t used XHTML is because I haven’t had the need to take advantage of any of the functionality it offers. The nature of web developers/software engineers is to learn new technologies and adapt their sites to the latest and greatest. Personally, I have been driven toward the server-side technologies, experimenting with PHP vs. JSP, having re-written my site in each, numerous times. Through all of it, my HTML knowledge has pretty much remained the same, aside from the desire to integrate CSS more and more. In the end, the only reason I haven’t used XHTML is because I don’t know enough about it. I’m sure I’ll be on W3’s site very soon to learn a bit more about it.”

darkfirestudios // where clouds roam

Regis Frey wrote,

“I have only been writing HTML since I was 14, so that’s 2 years now. I also don’t write it frequently. However my interest in web standards has shown me that XHTML is much better than HTML 4.01 since it is extensible and other mumbo jumbo. At the point I was writing the site I didn’t think to write it in XHTML. I use Dreamweaver MX 2004 for display purposes and then mix hand-coding and defaults to write my pages. I am interested in learning XHTML particularly because I learned CSS which I found to be very clean and easy to understand. Since I never formally learned HTML (I learned by reading what Dreamweaver output into the code window) I want to really learn XHTML and intend at some point to move darkfirestudios to a system that runs from a MySQL backend, using PHP or Ruby on Rails to generate XHTML(whenever I can afford to upgrade my hosting). I have a lot to learn before I’m capable of this but I really enjoy exploring web programming because it is standardized and easy to learn and test. CSS is my favorite language with XML pulling a close second. Lastly you asked why WhiteBoxGaming was on XHTML, simple, it’s on XHTML because the Wordpress blogging software outputs to XHTML. The guys over at Automattic (particularly Matt Mullenweg) made output format to XHTML 1.0 (which works great).”


Nizam Jamil wrote,

“First and foremost I am an illustrator, the person who designed the page was my buddy-partner. Anyway, his answer is simple. He hasn’t and isn’t prepared to use xhtml, also he is very very fond on html 4.01 because he’s used to it since he has been using it for years and it works comfortable with him when he is applying css.

He could change but it’s only a personal taste.”

nummi.org - Personal site of Jerry Nummi

Jerry Nummi wrote,

“I used XHTML for a couple years. Then I switched back approximately 6 months ago because there not any benefits right now. Serving TRUE XHTML (with the application xhtml+xml mime type) can be a major pain and IE does not even support it. The only method is content negotiation and again... a major pain.

Expo is a web application that clients can log into and view their concepts. It is being developed with Ruby on Rails and will be using HTML 4.0.1.”

456 Berea Street: Articles and news on web standards, accessibility, and usability

Roger's site seems to have more HTML 4.01 developers comment that any other. Those who replied to my small questionnaire are included for comparison’s sake.

Web Devout

David Hammond wrote,

“I probably switched from writing sites in XHTML to HTML 4.01 in late 2004, when I became aware of the various problems mentioned in my Beware of XHTML article. I really had no reason to use XHTML before then, other than the unfounded idea that I was being cutting edge.”

Trovster.com - General Internet-Related Geek-ery

Trevor Morris wrote,

“As you may have gathered from my article [Elementary note: It was XHTML Application.], I haven’t always used HTML. I did switch to XHTML when I built that site (2 years ago, or something like that) and I may have used it before, I just can’t remember. Again, I’m not sure when I changed back to HTML exclusively. I have a mime-type/doctype script which does the browser negotiation to send xml/application+xhtml + XHTML Strict 1.0 to those which accept it, and valid HTML4.01 Strict (with the self-closing tags stripped out) to those which don’t.


This is a discussion I have a lot in the #css channel on efnet!!

I was using XHTML incorrect with text/html, which completely defeats the point. To use XHTML properly you have to ignore IE, which is not an option. So, you do browser detection, which isn’t ideal (we’re not in the 90s now!) to send to each, which is a solution. However, if there is a slight error, non well-formed-ness, or character encoding error, then all the end user is going to get is an orange parse error screen (in Firefox at least). Great for debugging, useless for end-user and a successful website. At the present time, with this all or nothing mentality from XHTML, the lack of actual benefits and the browser-negotiation ordeal, it is simple not worth it. Sure, you can send as text/html, but it's not recommended.

There are no benefits of using XHTML as XML in today’s market. And with news that IE7 isn’t going to support it, and even when that has parsed they’ll be at least 4 years until you can forget browsers which do not support XHTML (IE6,7), so you’re maybe looking at 6 years! In which time they’ll hopefully be something better we can use.

You can write as valid, semantic and well-formed HTML as you can XHTML. Vice-versa, you can write as table-ridden non-well-formed XHTML (sent as text/html) as you can HTML.

People may use XHTML 1.0 (not 1.1 though) with text/html just fine. However, if they make the switch over to proper XML with application/xhtml+xml, then things may well break. The way browsers (which support it at least!) handle the html/body in different ways compared to HTML. And there are major issues with JavaScript and CDATA blocks. And the fact that innerHTML *wasn’t* supported in XHTML/XML, but as of Firefox 1.5 is being (could have been an issue, but because it’s a de facto standard browsers are implementing it). With all these issues and potential problems, users making the switch to XHTML/XML will blame XHTML for the problems. This, of course, is incorrect, and thus another reason not to promote XHTML to those unwilling to research, in depth, into the consequences of using XHTML fully.

When talking with people I recommend HTML 4.01 Strict. In my opinion the only doctype to use in the present climate.”

Friendly Bit - Web Development Blog

Emil Stenström wrote,

Datatypes of HTML; why HTML is great for structure

“The ‘why’ is really not that clear. As I see it there are two opposite sides to the argument.

  • 1) http://hixie.ch/advocacy/xhtml
  • IE does not recognize XHTML so let’s stay out of it. It will be harder than most people think to switch to real XHTML later on (DOM differences). Unless you use embedded XML there is no real benefit to using it.
  • 2) http://kurafire.net/articles/case-for-xhtml
  • It’s tightly connected to ‘Web Standards’ for most people. It is certainly faster to parse. It’s better to make sure you are prepared for the future.”

Site Surgeon

Ben Millard wrote,

“Site Surgeon actually uses XHTML 1.1 sent as ‘application/xhtml+xml’ to devices which support it. Devices which do not mention that MIME type in their HTTP Accept header get an HTML 4.01 Strict document. The script doesn't check ‘q’ values and has potential bugs, but is available here: http://sitesurgeon.co.uk/articles/serving-xhtml-correctly.html

It always sends the XHTML 1.1 version to the W3C validator.

I apply this technique on Site Surgeon to demonstrate the (lack of) differences between correctly authored XHTML and the equivalent HTML. It also shows clients that I can work with modularised XHTML if they need to. In truth, HTML 4.01 Strict would be the better choice for this website since it only uses the elements and attributes available in HTML.

I do use HTML exclusively on my other websites, though:

  1. http://projectcerbera.com/
  2. http://calthorpepark.hants.sch.uk/

I do this because HTML performs slightly better than XHTML when sent as ‘text/html’. XHTML 1.0 ‘may’ be sent as ‘text/html’ but it has:

  1. A slightly longer DOCTYPE than HTML.
  2. Extra baggage in the form of XML specific attributes such as XMLNS and XML:LANG. These are ignored by HTML devices, so are dead weight.
  3. The ‘space-slash’ character pairs are added to elements which do not need to be closed in the ‘text/html’ environment. More dead weight.

Item 2 and 3 are treated as invalid markup by HTML user agents. These slightly slow rendering times as the user agent must perform some (fairly simple) markup corrections. They add filesize, too.

In the ‘text/html’ environment, many end tags are optional (or even forbidden). Leaving these out can reduce page sizes by a significant amount, especially if there are lots of list items or any data tables.

As such, an XHTML 1.0 page will always be slightly less efficient than the equivalent HTML, even without using all the optmisations HTML allows. Because XHTML 1.0 uses the same elements and attributes as HTML, it can only do the things HTML can do. There is no advantage to using XHTML in the ‘text/html’ environment.

Since HTML is more efficient in terms of download speeds and processing times, that tips the balance for me.”

[Elementary note: Best Markup for text/html was released by Ben Millard on July 25, 2006 (Updated, September 3, 2006).]

pauldwaite.co.uk - 2 full years of nada

[Note: Paul Waite's site was HTML 4.01/Transitional once.]

Paul Waite wrote,

“I used to code in HTML 4.01 by default because of a vague belief that there might be a couple of legacy user agents out there that might bork on XHTML, and that XHTML itself didn't offer any advantages.

Nowadays, I tend to code in XHTML by default, as I think it offers an advantage if you need to process pages (i.e. you can use whatever XML tool you want, and you should be fine), and a potential client-side advantage (i.e. user agents can use XML processors to read the document, and they don't need all the error-handling code HTML processors have, meaning stuff can work faster and easier.)

But my web site (well, the home page, anyway) is still in HTML because I haven’t touched it properly in years - the cobbler’s barefoot children, and all that :)”

http://hixie.ch/advocacy/xhtml is frequently cited as the reason for not using (or, not continuing to use) XHTML 1.0/text/html.

It may have been futureproof once. At least, until W3C decided to make XHTML 1.1 utterly different and XHTML 2.0 something else. What happened to proper specification sequencing? [Note: CSS Level 1 > CSS Level 2 > CSS Level 2.1 > CSS Level 3. Why? It’s not as though previous levels were superceded and removed from use.]

The underlying reason for XHTML conversion appears to have been that leap into the Future of Tomorrowland. XHTML with a character set of application/xhtml+xml has benefits for some sites; those sites offer server-side detection of browser noncompliance whereby content’s rendered as HTML 4.01/Strict. HTML 4.01/Strict. Paradoxical, isn’t it. Perhaps, not. User agents which cannot parse XML should be given HTML/Strict. I have not found an XHTML site with a MIME type of application/xhtml+xml and server-side detection offering XHTML 1.0/Transitional (or, Strict) as text/html. None.


I wonder if XHTML 1.0 would have been advertised with such fervent propaganda after opening Pandora’s Box had it been known that XHTML 1.1 was to be fundamentally different.

These days, XHTML 1.0 is very Web 2.0 for web developers marching into tableless markup.

Why do you use HTML 4.01?

Sean Fraser posted this on September 11, 2006 11:01 AM.

  • Add to Technorati Favorites
  • de.licio.us: http://www.elementary-group-standards.com/html/why-do-you-use-html-4.html
  • furl: http://www.elementary-group-standards.com/html/why-do-you-use-html-4.html
  • reddit: http://www.elementary-group-standards.com/html/why-do-you-use-html-4.html


Ryan Cannon wrote this at September 13, 2006 09:11 PM

For all of the sites I design, I use HTML 4.01 because it's future proof—JavaScript and CSS will always work the same.

On my blog, I want to use HTML, but unfortunately WordPress automatically adds self-closed elements in the page head.

Comment Author Gravatar
Sean Fraser wrote this at September 14, 2006 08:37 AM

Ryan: There's that real world confluence. Sometimes you can't use HTML: client insistence or CMS idiosyncrasies. At least, it's XHTML/Strict.

I know that WordPress can be fixed.

I have found several WordPress sites that declared HTML 4.01 without self-closed elements whilst peering at sites of commenters on other blogs; I can't remember who they were.

The two "Powered by WordPress" sites from CSS Reboot Spring 2006 with XHTML 1.1 but server-sided HTML 4.01/Strict were Tyssen Design and Jowra Webdesign.

Thank you for commenting.

Comments are closed.

The Elementary Standards: A Compendium of Web Standards, CSS, Linguistics and Search Engine Optimization methodology Copyright ©2005-2007 Sean Fraser. All work is published under a Creative Commons License. All Rights Reserved.

Palm trees on a grassy field in Hawai’i

Main Content Returns thus