本当の意味での XHTML は世の中に多くないという話

Understanding HTML, XML and XHTML (灯台下暗し -カッターナイフで恐竜を腑分けした記録-) より。

XHTML と HTML がどんな関係にあるのか、それは誤解ばかりが広まっています。WebKit (Safari や S60 Browser のレンダリングエンジン)開発者の Blog で、この誤解を正そうと、下記の記事が書かれました。

要約します。Web から HTTP で取得したテキストで HTML と XHTML を区別するのは HTTP レスポンスヘッダの MIME タイプです。text/html なら HTML 、application/xhtml+xmltext/xml なら XHTML として扱われます。逆に、次に列挙することを行っても XHTML としては扱われません。

  • XHTML の DOCTYPE 宣言を入れる
  • XML 宣言を入れる
  • XHTML 特有の文法に沿った記述を行う
  • XHTML として validate を行う

現状では主に IE が application/xhtml+xmltext/xmlMIME タイプを XHTML として認識しないために XHTML 1.0 を text/html として送信することが多いですが、それを行うと FirefoxSafari などもファイルを奇妙な HTML としてしか扱いません。

まさにそのとおりだなぁ、と思ったり。 FirefoxSafari などもファイルを奇妙な HTML としてしか扱いません というのはちょっと言いすぎな気もするけど。

MIME タイプが "text/html" の場合は、XHTML の文法で書いていたとしても HTML と同じようにしか解析されない、と。 そういうことです。 そんなわけで本当の意味での XHTML というのは MIME タイプが "application/xhtml+xml" や "text/xml" みたいなやつだけなわけですが、残念なことに IE は未だにそれらに対応していないので世の中には XHTML の文法で書かれた HTML があふれかえってるんですよねー。 はぁ、嫌な世の中だ。