Tuesday, January 14, 2003
Eddies in the space-time continuum
I would like to thank Tantek Celik for raising the issue in www-html in response to my well-linked rant. It appears that it was omitted by accident, and that the cite
tag will return in XHTML 2.0 draft 4.
As Jeffrey Zeldman says, the W3C should also shuck off its modest, academic shell and begin selling the community on the benefits of and thinking behind the spec it is now calling XHTML 2. The spec may have tremendous benefits, but I’ve been doing this work for a while and I can’t see any.
However, he feels that with some major surgery (and a name change), XHTML 2 can be salvaged. I’ll be revisiting XHTML 2 in about five years, assuming it survives that long.
As to why I’m not using XHTML 1.1 anymore, well, I’ve tried it on several occasions for varying lengths of time, and I’ve come to the inescapable conclusion that it’s a pain in the ass with no demonstrable benefit. XHTML 1.1 is only supposed to be served with a MIME type of application/xhtml+xml
(serving it as text/html
is evil), but the application/xhtml+xml
MIME type is completely unsupported in Internet Explorer and has nasty side effects in Mozilla. A single missing closing tag makes my home page disappear entirely in Mozilla (it shows an XML parsing error to the end user instead). This is unacceptable.
But wait, it’s even worse than that. Assuming (for the moment) that every page of your site is valid XHTML 1.1, and you serve them up as application/xhtml+xml
only to browsers that can handle it, you’ll still cause problems for an unknown number of your visitors because of the differences between the HTML DOM and the XML DOM. This is a complicated issue, so let’s look at a specific example: people using their Movable Type bookmarklet on my site ran into problems the minute I changed my MIME type. Read that again, slowly: the MIME type of my remote page made other people’s local scripts stop working. At least with old browsers we could tell with reasonable certainty what our visitors were using, and present content (and CSS, and so forth) accordingly. But you can never be sure that it’s safe to present content as application/xhtml+xml
, because you have no information about what local third-party scripts your visitors might want to run against your page. This is unacceptable.
Needless to say, the proposed XHTML 2.0 may only be served with a MIME type of application/xhtml+xml
as well, making it equally dangerous.
Why not XHTML 1.0? It was never intended to be more than a stepping stone to XHTML 1.1 and future versions. Served as text/html
, it’s just plain evil, and served as application/xhtml+xml
, it’s as dangerous as 1.1 and the proposed 2.0. Now that I’ve had a taste of what it’s allegedly a stepping stone towards, I just can’t see the point.
So I’ve migrated back to HTML 4, which (I am not making this up) has caused some major CSS compatibility problems in Internet Explorer. It appears that I am trapped like a velvet, paisley-covered Chesterfield in a hallway: unable to move either forwards or backwards. It must be time for a complete redesign.