IE7 Beta 2 における XHTML の標準準拠モード切替えについて
IE7 の標準準拠モードでは CSS で position プロパティの fixed を解釈してくれるようになった。そして、IE6 のジレンマだった XML 宣言を含んだ XHTML 文書を後方互換モードで扱ってしまうバグも修正された。つまり、IE 7 からは valid な XHTML に対して position: fixed を始めとした標準準拠モードによる多くの恩恵を望むことができる。
ところが、これらの条件を満たしているにもかかわらず position: fixed を設定した要素が、viewport に固定されない。CSS の記述ミスを疑ったけれど、結局のところ原因は IE7 ( Beta 2 ) のバグだった。
XML 宣言の認識にバグがあり、XML 宣言の書き方によっては後方互換モードになってしまうのだ。具体的には、XML 宣言が "<?xml " で始まっていなければ後方互換モードになる。視覚的に少し判り難いので言葉で説明すると、"xml" の次の文字がスペース文字、いわゆる半角スペースでなければいけない。
私はこれまで XML 宣言を、個人的な趣向感覚でターゲット名 "xml" と version 属性の区切りにタブ文字を用いて、次のように記述していました。
<?xml version="1.0"
encoding="utf-8" ?>
IE7 はこれを XML 宣言として認識してくれません。仕様によると "xml" の次にはスペース文字とタブ文字、改行、復帰からなるいわゆる空白を 1 つ以上置くことになっているので、IE7 がスペース文字のみしか解釈してくれないのは誤っており、バグです。
まとめると、IE7 を配慮した XML 宣言の書き出しは "<?xml" ではなく "<?xml " から始めろ、ということです。
なお、便宜上 Internet Explorer 7 Beta 2 Preview を単に IE7 としています。Beta Preview なので正式リリースまでの修正に期待したいです。
7.0.5335.5 が公開されたので検証し直してみましたが、変わりありませんでした。正式リリースまでには修正して欲しいのでメールでバグ報告したところ、開発チームの適当なメンバーに回しておいたと返答をもらいました。必ず修正される約束ではないですけど、次に期待です。
7.0.5346.5 が公開されたので検証し直してみましたが、変わりありませんでした。次に期待です。
Beta 3 ( 7.0.5450.4 ), RC1 ( 7.0.5700.7 ) 共に再検証の結果、このバグは残ったままです。
ほかのバグを報告した人の情報によると、バグ報告して終わり、ではなく、そのバグの状態が変化する度に経過を知らせるメールが送られてくるそうです。最初に報告受理の確認メールが届いて以来、音沙汰がないので、このバグについては放置されているようです。残念。
- タグ
- beta
- Internet Explorer
- markup
- XHTML
- XML
- 公開日時
- 2006-02-25T00:55:59+09:00 @705
- 更新日時
- 2006-09-14T12:48:42+09:00 @200
- Permalink URI & TrackBack URL
- http://blog.drry.jp/2006/02/25/ie7-b2-xhtml
コメント ( 1 )
いやー、いつも参考になります('ρ')