XHTML Media Types

少々おそめの言及になりますが、マーク付けノート5月2日より。

草案ラッシュに埋もれていて読むのが遅れましたが、これは結構一大事です。このノートの要旨は概ね次の通り(概要も参照して下さい)。

XHTML 1.1 / Basic などの XHTML ファミリ文書は application/xhtml+xml として公開されるべき (should) であり、メディア型 text/html の使用は HTML 4.01 などの旧来の HTML に限るべき (should) である。ただし、XHTML 1.0 文書の場合には、旧来の HTML との互換性を考慮してあるものについては text/html も許容する (may)。

ううむ。確かに一大事。

何が一大事かというと、大抵のブラウザではaplication/xhtml+xmlというメディア型に対応していないので、これをそのまま実行すると、ほとんどのブラウザではXHTMLで書かれたページを読めなくなる(ダウンロード画面などになる)のです。aplication/xhtml+xmlへの対応状況についてはねこめしにっき5月2日に詳しいです。

該当文書はNoteであり勧告Recommendationではないので、まだ本決まりなわけではないですが……(Publication of this Note by W3C indicates no endorsement by W3C or the W3C Team, or any W3C Members.)。

aplication/xhtml+xmlについては、XML/XHTML関連規格の最新情報で見知ってはいたものの、これは従来のものを置き換えるのではなく、text/htmlも依然として有効です、とあったので、まだtext/htmlも使えるものと考えてました(でもこの記述は前をよく読むとXHTML 1.0向けのものですね)。なのでこのNoteには内心突然降って湧いたかのようにじたばたさせられてしまいました。ちょっと反省。

さて、このサイトも主としてXHTML 1.1で書かれているのですが、その動機と言えば、XMLとして云々ということを考えてるわけでもなく、単に「ルビを使いたい」というものでありました。とは言え漢字ページなんてのがあるのでルビがある方が何かと便利であり、それを手放すのは惜しい。かと言って一般の読者さんに読んでもらえなくなるのもかなしい。となるとすべきでないshould notと言われつつも現状通りXHTML 1.1をtext/htmlで公開し続けるしかなさそう。しかしすべきでないことを敢えてするというのも心苦しいものがあります。

XHTMLは新しい規格ですが、1.1までは旧来のHTML要素名を多く引き継いでおり、そのため旧来のHTMLを対象としたブラウザでも読むことが可能であるのは一つの利点だと思います。XHTML 2.0のように要素名がすっかり変わるものならまだしも、現時点でXHTML 1.1までにもaplication/xhtml+xmlを適用するのは、非対応のブラウザを排除することになり、その結果XHTMLの規格を一般から遠ざけることになりはしないか……とも思うのですが、どうなのでしょう。

* * *

マーク付けノートでのコンテントネゴシエーションテストを試してみたところ、Mozillaでは0205.xhtml、IEでは0205.htmlと期待通りの動作をしていました。しかしこのネゴシエーションはどういう優先順位できまるのか?という疑問が浮かび、試しにView HTTP and HTML Sourceで転送の様子を見てみました。

Mozilla 1.0 RC1で見てみたところ

will send these HTTP Request headers:
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,* * */* * *;q=0.1
Accept-Charset: UTF-8, * * *
Accept-Language: ja, en-us;q=0.80, en;q=0.60, zh;q=0.40, ko;q=0.20
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.0rc1) Gecko/20020417
Host: math.oheya.to

なるほど、ブラウザからサーバに渡すAcceptヘッダによって決まるようです。

ちなみにIE6で見てみたところ、Acceptヘッダはこのように。

Accept: application/msword, application/vnd.ms-excel, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * * */* * *

Word文書のメディア型がトップにくるとは思いもよらないことでした。

参考リンク

(2002年5月5日)

北村曉 kits@akatsukinishisu.net