2008-02-11

IE8と互換性

 IE7へのアップグレードが明日に迫っているので、かねてから紹介しようと思っていたあるブログを引用してみよう。

http://blogs.msdn.com/ie/archive/2008/01/21/compatibility-and-ie8.aspx

 互換性というのは、頭の痛い問題だ。特にWebは、バイナリと違って、MSが個別にパッチを当てるようなこともできない。

 かつて、規格なんてなきに等しいIE5があり、多少はマシになったIE6を作った。しかし、既存のWebサイトは、糞なIE5向けにハックにハックを重ねて、試行錯誤の上に作ってある。IEが規格準拠になるのは望ましいが、いったいどうやって既存のサイトとの互換性を保てばいいのだろう。ここで、今となっては有名になった、DOCTYPE switchを用いることにした。当時はまだDOCTYPE switchが登場したばかりで、既存のサイトはこれをまったく使っていなかった。IE6は、DOCTYPE switchの有無で、IE5の互換モードとIE6の標準モードを切り替えて、HTML等を解釈していた。

 しかし、IE6は、多少マシになったとはいえ、まだまだ規格準拠とは言いがたかった。そこで、IE6に比べれば、すばらしい規格準拠の他のブラウザと、IEとを分けて、サイト構築がなされた。さて、IE7では、さらに規格準拠度が上がった。そして、DOCTYPE switchも、知らなければモグリと言われるほどに普及した。ここで、規格準拠のブラウザをリリースしても、問題ないはずだ――とMSのプログラマは考えていた。甘かった。

 IE6でも、他のブラウザに比べると、だいぶ規格準拠という点で劣っていた。そこでWeb屋は、IE6用に特別にサイトを構築していたわけだ。IEがバージョンアップされても、そんなことは知ったことではない。相変わらず、IE6向けの、汚いハックを駆使したHTML/XHTML/CSSを吐いた。他のFireFoxやOpera向けに吐くコードなら、IE7は問題なく解釈できたというのに。

 まあ、MSに責任がなかったわけではない。現実としてIE6は腐っていて、Web屋は何とかして対応しなければならなかったからだ。だからWeb屋は、まず規格準拠のコードを書き、その上で試行錯誤を繰り返して、IE6専用のコードを書いていたのだ。

 ブログはこの後、MSがこの手痛い失敗から、次に考えている方法などを紹介している。私はWebに関する知識が疎いので、これ以上は詳しい解説ができないが、蛮勇の鉈を振るって敢えて解説すると、MSは外部のWeb屋とも相談して、もっとマシな下位互換性の実現方法を考え出したということだ。シンプルで、他のブラウザでも簡単に実装できるものでなければならない。そこで、metaタグを使って、どのブラウザのどのバージョン向けにコーディングされたかということを明示するらしい。

No comments: