当サイトのリソースのメディアタイプ

Microsoft Internet Explorer を考慮してメディアタイプに text/html を指定

当サイトの全ての文書リソースは,Valid(妥当)な XHTML 1.0 Strict もしくは XHTML 1.1 文書です.かつ,HTTP 応答ヘッダ内の Content-type ヘッダフィールドに,メディアタイプ text/html を指定しています.当サイトが提供する XHTML 文書にこのようなメディアタイプを指定する理由は利便性の低下を防ぐためです.

現在広く用いられている視覚系ユーザエージェントとして,Microsoft Internet Explorer 6 (以下 MSIE6 と表記) がありますが,MSIE6 は,メディアタイプ application/xhtml+xml のリソースを閲覧しようとした際,画面に出力するのではなくディスクに保存するかどうかを尋ねる旨のダイアログを表示します.

そのような状況の下で,当サイトのリソースに対してメディアタイプ application/xhtml+xml を指定すると,MSIE6 を利用してこれらのリソースを閲覧しようとする際の利便性が低下すると私は考えています.

では,XHTML 1.0 Strict でマークアップされたリソースに対して,メディアタイプとして text/html を指定してもよいのでしょうか.

結論から書きますと,当サイトのリソースに対してメディアタイプ text/html を指定することは,やや難ありかも知れません.これについて,XHTML Media Types によると,以下の記述があります.

'application/xhtml+xml' SHOULD be used for XHTML Family documents, and the use of 'text/html' SHOULD be limited to HTML-compatible XHTML 1.0 documents. 'application/xml' and 'text/xml' MAY also be used, but whenever appropriate, 'application/xhtml+xml' SHOULD be used rather than those generic XML media types.

日本語に訳すと,以下のようになります.

XHTML ファミリでマークアップされたリソースに対するメディアタイプは application/xhtml+xml であることが望ましい.また,HTML と互換性のある XHTML 1.0 の文書に対しては text/html を用いることが望ましい.(XHTML ファミリでマークアップされたリソースに対して) application/xml や text/xml を使用してもよいが,このような一般的な XML のメディアタイプよりも application/xhtml+xml を使用するのが望ましい

ここでの「HTML と互換性のある」というくだりは,Internet Media Type にある次の一文が示しています.

XHTML Documents which follow the guidelines set forth in Appendix C, "HTML Compatibility Guidelines" may be labeled with the Internet Media Type "text/html" [RFC2854], as they are compatible with most HTML browsers.

HTML Compatibility Guidelines (HTML 互換性ガイドライン) に従っていれば,メディアタイプを text/html としてもよい,ということです.

このガイドラインのうち,当サイトが従っていないのは,以下の 2 点です.

このような XHTML 文書のメディアタイプを text/html とすることは,厳密に言えば無理があるかも知れません.上で示した 3 点によって,当サイトが提供する XHTML 文書と通常の HTML 文書の間に必要な互換性の喪失の大きさと,リソース利用時の利便性の低下の大きさとを天秤にかけた上での判断です.もちろん,当サイトとしては MSIE6 側の対応を望んでおり,対応が確認できればメディアタイプを (本来のものに) 切り替えるつもりでいます.

一番良いのは,HTTP 要求ヘッダ内の User-agent: ヘッダフィールドを参照して,付与するメディアタイプを動的に変化させることかと思いますが,そこまでする気がありません

メディアタイプの動的な変更 (hoge diary 内のリソースのみ)

上でそこまでする気がありませんと書いていましたが,これは全てのリソースを静的なテキストファイルとして保存していた頃の考えです.Content-Type を振り分ける方法を読み,動的にリソースを生成する箇所ならば,多くの作業を必要としなくともこの方法を適用できると考え,hoge diary に適用しました.これによって,hoge diary 内の全てのリソースにおいて,以下の場合にはメディアタイプ application/xhtml+xml を付与します.

これで,正しく XHTML 文書を処理する能力があると通知するユーザエージェント,もしくは能力を持つことが予め分かっているユーザエージェントには,本来のメディアタイプを付与できるようになったといえます.


Valid XHTML 1.0! Valid CSS!
© 2004-2007 by ぱくちゃん.
Last modified: Tue Jan 9 05:37:54 JST 2007