First, scary technical details:
\r\n\r\nIt really depends on what you mean by "support". For example, Internet Explorer 6 doesn't properly render the <q>
element, so it can't be said to "support" even HTML 4.01. And Mozilla-based browsers lack support for soft hyphens, which means they don't "support" HTML 4.01 either.
As for XHTML, well, XHTML 1.0 and HTML 4.01 are element-for-element identical, but that doesn't mean anything. In theory XHTML is an XML application and should be served with a MIME-type of [link|http://www.w3.org/TR/xhtml-media-types/|application/xhtml+xml]
, but (surprise) IE doesn't support that. Some people (myself included) sniff the HTTP Accept
header and send application/xhtml+xml
to supporting browsers. But those browsers are sometimes spotty in their support -- for example, Mozilla still doesn't (as far as I know) properly report character-encoding mismatches as XML well-formedness errors.
To be perfectly strict, there is no browser currently in existence which supports XHTML 1.0 properly, let alone 1.1. But there's also no browser in existence which supports HTML 4.01 (Safari and Opera have their own issues).
\r\n\r\nNow, with that said, you can rely on browsers to "understand" XHTML 1.0 and HTML 4.01 just fine; you won't notice a difference unless you decide to be ultra-strict, and then you'll know enough to work around it anyway (I posted a [link|http://www.kuro5hin.org/comments/2004/11/3/185120/250/27#27|partial guide] to some of the changes you need to make as a comment on k5 a while back). There is a trend toward using XHTML 1.0 these days (with a MIME-type workaround or without) simply because it's perceived as "the future", but really either one is perfectly acceptable. You are far more likely to run into cross-browser problems with CSS and JavaScript than with HTML.