先に書いたMETA要素のname属性はhttp-equiv属性の代わりになるかに対して、TYLIGHTさんより経緯の説明を頂きました。以下引用。
- XHTML/1.1 では <meta http-equiv="..." content="..."> とするのは非推奨である。
- 従って、インラインスクリプトの MIME-Type を明示するうまい方法が無いと思った。
既にDeepGreenさんの指摘にあるように、XHTML Media Types の 3.3. 'application/xml'(日本語訳)で meta http-equiv を記述するべきではないとしているのは、XHTML文書の文字エンコーディング指定に関しての言及であって、デフォルトスクリプト言語やデフォルトスタイルシート言語の指定に関する言及ではないというのに、自分も賛成です。
仕様書に思いっきり明示されている、と書いたのは META 要素の http-equiv 属性で、
この属性はnameと置き換えて用いられ得る。という部分です。
であれば、明示されているとは言えないのではないでしょうか。仕様にあるのは、あくまでname属性の代わりに(in place of the name attribute
)、http-equiv要素が使われることがあるという記述であり、逆の場合(http-equiv属性の代わりにname属性を用いること)については書かれていないので。
ところで、インラインスクリプトの MIME-Type
についてはともかく、インラインスクリプトの文字コード
をmeta要素で指定する必要が何故あるのかについても疑問だったりします。先の記事でも述べましたが、インラインスクリプトの文字コードはXHTML文書の文字コードと同じであるはずで、また、そうでなければそもそもXHTML文書として妥当でなくなるのだから、わざわざ別個に指定することはないと思うのです。
追記。Reread(2005-01-18)のTYLIGHTさんのコメントより引用。
確かに『指定してはいけない』あるいは『指定すべきではない』とした文書はないように思えます。しかし逆に『http-equiv を MIME-Type 明示のために指定してもよい』とした文書も私は知りません。
「指定してもよい
」というか、http-equivを用いて指定すべき(should, must)と書かれているのが、正にHTML 4.01仕様書のデフォルトスクリプト言語(日本語訳)、デフォルトスタイルシート言語(日本語訳)の項だと思うのですが……。
さらに追記。meta と http-equiv (3)にて返事を頂きました。