Today, we had a conversation about HTML 4 vs XHTML 1.0. For me, the matter was neatly settled they very first time I saw an XML system produce XHTML like this:
<p>An article with an <em/> empty emphasis tag.</p>
Perfectly legal XML, perfectly legal XHTML. But — if you serve up this XHTML as
text/html (which 99.99% of the world does), then you end up with this:
Why? Because it’s parsed as HTML. And the browser sees the start of an em tag, but no close.
And now I make sure that all our sites emit HTML 4. It’s a lot simpler.
This isn’t to say I don’t use XHTML. It’s a fine medium for further processing (e.g. applying XSLT). But it’s not right for serving up to browsers verbatim.