趣味Web 小説 2006-05-24

IE7 は CSS ハックと DOCTYPE スイッチを過去のものとするか?

IE7 で従来の CSS ハックが使えなくなることは予告されていた。

一般向けの IE7beta2 の公開を受けて書かれた佐藤信正さんの記事は、文書型宣言の書き方次第で描画ルールを切り替える機能(いわゆる DOCTYPE スイッチ)と CSS ハックの違いがうまく説明されておらず、一部に誤解を招いているように思う。

IE の DOCTYPE スイッチは、基本的には、新しい HTML・CSS 解釈モードを搭載したブラウザに、古い(誤った)解釈をさせるために用意された機能だ。多くのウェブ製作者が文書型宣言に無関心で、そもそも文書型を記述さえしていなかったことを逆手に取り、識別子まできちんと文書型宣言を書くか、厳密な文書型を選択している場合に限って新しい解釈モードを適用し、そうでない場合には古いモードで描画を行うようになっている。

2001年当時、デファクトスタンダードとなっていた IE5 と IE5.5 できれいに表示されるサイトが IE6 の新しい描画エンジンでは閲覧すら不可能となるほど表示結果が崩れるケースが少なくなかった。DOCTYPE スイッチは IE6 を普及させるために不可欠な機能だったといえる。

世の中にウェブブラウザが IE しかなければ話はこれでオシマイなのだけれど、実際には Firefox や Opera や safari などがある。少なからぬ人々が、これら多くのブラウザにおいて意図する表示結果を得るために、CSS ハックに手を出した。CSS ハックとは、各ブラウザのバグ(のようなもの)を活用し、特定のブラウザに特定の記述を読み込ませたり、逆に読み込ませないようにしたりして、ひとつのスタイルシートの中に併記した複数のスタイル設定を、各ブラウザに振り分ける技術である。

IE と Firefox と Opera と……というだけでも嫌になるのに、IE のバージョン違いまで考えたくはない。そこで、CSS ハックを利用する方の少なからずが、DOCTYPE スイッチを利用して新しい IE に古い解釈モードを使わせてきた。IE7 は、こうした状況に一石を投じることになる。

前述の通り、IE7 では CSS ハックの多くが利用できなくなっている。IE7 の描画エンジンは Firefox などと概ね同等の能力を有するので、特別に高度な指定をしない限り CSS ハックなど必要ないはずだ、ということらしい。問題が生じるのは DOCTYPE スイッチを利用して古い解釈モードを呼び出していたケースだ。これまでは古い解釈モードに対応したスタイル設定を CSS ハックを使って IE にのみ読み込ませていたのに、CSS ハックが無効化された IE7 では古い解釈モードに標準のスタイル設定が適用されてしまうのだ。

対策は2通りある。

佐藤さんは後者の対策を推奨した。この背景として、IE5.5 以前の古い IE が実務上無視できるレベルまで利用率を低下させている最近の事情がある。注意しなければならないのは、IE7 が IE6 の不具合をいくつも解決していること。新しい解釈モードの中でもレベルの差があるわけで、IE7 できれいに表示できているからといって、IE6 でもそうだとはいいきれない。そして IE6 がシェアを伸ばすのにかかった時間から類推すれば、IE6 は4年あまりもの期間、無視できないシェアを維持し続けるだろう。(参考:IE7の自動更新による配布、日本語版はリリースから半年後の予定

というわけで、生真面目なウェブ製作者は IE6 の不具合をよく勉強して IE7 に移行するか、IE6 を表示確認用に使い続けるかを選ぶことになる。IE5.5 以前の IE のことは、もうそろそろ忘れよう。

IE7 が正式公開に際して DOCTYPE スイッチを廃止することはないだろう。「文書型宣言って何?」という人はいまだに大多数であり、IE のシェアは相変わらず圧倒的だ。そのため、IE の古い解釈モードしか知らず、それに頼ったデザインを行っているウェブページは日々たくさん生み出されている。IE6 の普及に従い新しい解釈モードを前提として製作されたウェブページが増えているとはいえ、古い解釈モードを前提としたページは無視するには多すぎる。マイクロソフト社は Firefox と同じ壁にぶつかる愚を避けるはずだ。

バージョン 4 の悪夢を吹き飛ばした IE5(1999年)と IE5.5(2000年)の快挙も今や呪縛と成り果て、IE6(2001年)の5年にわたる奮闘によっても解かれる様子がない。IE7 は素人向けに DOCTYPE スイッチを残しつつ、プロ側の意識改革(=新しい解釈モードの利用)を促すために、小さな一歩を踏み出したといえる。将来、IE8 が後方互換を気にする必要がなくなることを期待したい。

……。ま、これがなくともマイクロソフト社のこと、後方互換を諦めるわけもないか。

Information

注意書き