CYBER@GARDEN

home > Web::Blogoscope > IEのDoctype Switches

Web::Blogoscope

IEのDoctype Switches

The Opera 7 DOCTYPE Switchesで、次のような記述を見つけた(表の下の注記[2])。

When XHTML is delivered as text/html and includes the XML declaration, Quirks mode is triggered for IE and Opera 7.0-7.03. From Opera 7.1 on, the XML declaration, PIs, and comments are ignored for determining display mode. When delivered as XML, both Opera and IE use Standards mode.

(XHTMLがtext/htmlとして配信され[MIMEタイプがtext/htmlと指定してあり─引用者注]、XML宣言が含まれる場合、IEおよびOpera 7.0-7.03では過去互換モードで表示される。Opera 7.1以降では、XML宣言、公開識別子、コメントは表示モードの決定上は無視される。XHTMLがXMLとして配信される場合は、OperaでもIEでも標準準拠モードが採用される。)

ひとまずOperaは横に置くとして、IEXHTMLXMLとして、つまり「MIMEタイプがapplication/xhtml+xmlなどとしてある場合」は標準準拠モードで表示するというのは初耳だった。IEはXML宣言があれば有無を言わさず過去互換モードで表示するものだと思っていた。

そこで試してみたところ、「全然違うでしょう」という結論に至った。IEはやはり、XML宣言があれば有無を言わさず過去互換モードで表示するしXML宣言を省けばtext/htmlであれapplication/xhtml+xmlであれ標準準拠モードで表示する。

結局、IEでは文書型宣言より前に空白類(スペースや改行)以外の文字があると(厳密にはM$IE6の文書型宣言判別で説明されている判断基準で)、過去互換モードが採用されるという実装不備に変わりはないわけで(これが主要ポータルがXHTML準拠であってもXML宣言を書かない大きな理由。主要ポータルの脱テーブル状況で書いた「一部のブラウザの挙動不審」とはこのこと)、何だか取り越し苦労をしてしまった。

もし異なる結論に至ったという方がいれば、ぜひ教えてください。

Posted on 2005-02-20T22:36+09:00 | Category: Webトレンド

トラックバックPings

トラックバックのURI:
http://www.cybergarden.net/mt/mt-tb.cgi/154

コメント

« ブログの匿名性 | ブログトップ | 自分にとってブログとは »