Windows Internet Explorer 10

MicrosoftはIEの次期バージョンとなるIE10において「コンディショナルコメント」のサポートを廃止することを決定している。コンディショナルコメントは「<!-[if lt IE 6.0]> IE6に適用したいスタイルシート <![endif]->」のように記述することで、特定のバージョンのIEに限定して処理を適用させる機能。IE10からはこの機能が利用できなくなる。ただし、IE9互換モードなどのレガシー互換モードで動作させた場合にはコンディショナルコメントは機能するという。Microsoftではコンディショナルコメントではなく、代わりにフィーチャーディテクションと呼ばれる、ブラウザが提供している機能を検出して処理を振り分けるテクニックを使うことを推奨している。

IE10でコンディショナルコメントが廃止される背景には、IE10が十分に標準規約に準拠しているため、もはや特定のバージョンのブラウザとして区別する必要がないといった理由がある。Sitepointの「Microsoft Drop Conditional Comments in IE10」の記事に、このあたりの話が簡潔にまとまっている。同記事ではこれは好ましい動きだと評価している。

ただし、この動きを好ましくないものだと評価する声もある。エンタープライズで採用されることが多いIEはほかの主要ブラウザとは状況が異なる。IEはリリース間隔が比較的長く、一度特定のバージョンが採用されると、以降はバージョンアップが実施されないことも少なくない。IE10がいくら標準規約に準拠したとしても、バグがないとは言い切れない。ChromeやFirefoxのように強制的に短周期でバージョンアップが実施されるブラウザならバグを修正してバージョンアップが実施されれば問題は解決されるが、一度採用されたならなかなかバージョンアップが実施されないIEでは、コンディショナルコメントのように切り分けができる機能がなければ問題の回避を実現しにくいという指摘だ。

IE10の最終リリースまで状況がどうかわるかはわからないが、現在の方向性としてIE10ではコンディショナルコメントは提供されないということを頭に入れておきたい。特にこれまでコンディショナルコメントに依存したコードを多く実装してきたサイトでは注意してほしい。