Smart Communication Design Company
ホーム > ナレッジ > Blog > Web標準Blog > 2005年11月 > IE7の条件付コメント

IE7の条件付コメント

2005年11月8日
フロントエンド・エンジニア 木達

2005年11月3日
Dave Shea著

(この記事はWeb Standards Project(WaSP)における投稿記事「IE7 Conditional Comments」を翻訳したものです。当Blogは翻訳の正確性を保証いたしませんので、必要に応じ原文を参照ください。)

10月半ばにIE Blogは、IE固有の問題を回避するためにCSSハックを使用せずに、マイクロソフト独自の条件付コメントを使用するよう促しました。私は、新しいシンタックスに関する考えをまとめましたIE7では、そもそもCSSハックを使わざるを得ない原因の大半を取り除くことを目指しているため、それは十分現実的だと思いました。

しかし皆さんの中に、条件付コメントに関して、1台のPC上における複数のIEテスト環境で機能しなかったり、XSLとうまく共存できないなど、重要な問題を発見した人がいたことは明らかです。したがって私は、WaSPのメンバー数人がIEチームとミーティングを開くと聞いたとき、彼らに尋ねるための質問をいくつか作成しました。以下に示すのは、MicrosoftのChris WilsonとBrian Goldfarbからの回答をMolly Holzschlagが書き取ったものです。

1台のパソコン上における複数のバージョンのIEで、条件付コメントを利用したサイトのテスト方法につき何か提案はありますか?複数のバージョンのIEをインストールする現在の方法では、条件付コメントは機能しません。

Chris Wilsonの回答:

「これは難しい問題です。複数のバージョンがインストールされているIEをテストする一番良い方法は、Virtual PC(以下VPC)を使用する方法です。これは、Windows自体では1つの方法ですが、IEはコンポーネントをシステムディレクトリにインストールします。Windowsシステムではなく.localという名前の別のディレクトリにDLLを追加することにより、システムを騙すことはできます。ただし、実際には、これによりIEがすべて置き換えられるわけではなく、別のレジストリ情報のセットを保持しているわけではありませんので、新しいインストール先から情報を引き出してしまう可能性があります。

VPCを使用する場合、ディスクのスペースがあれば、複数のバージョンのWindowsをインストールできます。1台の大きなマシンで複数のWindowsのバージョンをインストールしたVPCを用いてテストするのがベストですが……大量のディスクスペースが必要であり、また仮想マシンとして稼動しているため、奇妙なことが起きるかもしれません。

私は、実際にインストールして使用したことはありますが、専門家ではありません。」

フィルタリングを外部ファイルに移動し、マークアップをクリーンに保てるよう、条件付コメントをCSSのシンタックスに組み込むというのはどうでしょう?

Chrisの回答:

「私は、CSSの中に条件付コメントのような仕組みを提供できれば素晴らしいと思います。我々(Microsoft)はそれに関して検討はしましたが、IE7には組み込みません。というのも、やるとしたら、健全かつ論理的な形でやりたいからです。皆さんは、条件付コメントが旧バージョンおよび新バージョンともに互換性を持つことをお望みでしょう。実際にそれが機能するべくCSSへ組み込むように設計することは大変です。」

条件付コメントが使用されている文書を、XSLを用いて変換することに対し何か提案はありますか?

Mollyは、Chrisがこの件に関する詳しい背景が知りたがっていると述べています。したがって、矛盾が明確に示されているいくつかの確固たる例あるいはテストケースが、現時点では役に立つでしょう。Chrisからのさらなる質問

「最初のコメントでのインプットとは何か不明です。あなたが心配しているのは、インプットですかアウトプットですか?あるいはコメントを使用して何を切り替えようとしているのですか?」

関係ありませんが、この議論で出されている質問:Microsoft社外の誰かがIEの複数のバージョンをインストールできることを発見するのに、なぜ何年も要したのでしょう?この方法をIE7以降のバージョンでも使用し続けることができるか確認してもらえますか?
Chrisの回答:

「Microsoftの外部でなくてもその発見はできました。我々は、長い間それを知っていました。それを開発に使用していたのです。現在は、それほど使用していません。このことを良いアイデアとして公表しなかった理由は2つあります。1つは、IEで使用されているDLLをすべてコピーしない限り、自分がどのバージョンを使用するのか必ずしも分からないことです。それでも多少は機能します。いくつかのHTMLを読み込んで参照するだけであれば、うまくいきます。もしJavaScriptやネットワーキング・ライブラリを使用すると、タイミングがおかしくなったりします。

もう1つの理由は、この方法を公表すると、サポート側で大きな問題が起きるからです。コンピュータが壊れたり、Webが機能しなくなります。ユーザーがコンピュータのメーカーに電話しても、複数のバージョンをインストールしていることを相手に伝えなければ、電話で何時間も無駄に過ごすことになり、技術者は皆さんが何を言っているのか分からず、顧客サービスに悪夢をもたらします。

ユーザーは自分が行っていることを理解し、テストの後は元に戻さなければなりません。私の知る限り、我々は現在、IE7への変更に伴い、どの機能も使用不可にすることはありません。ただし、それがVistaで機能することは保証できません。」

さらにBrian Goldfarbは、顧客サービス上の問題からそのような(複数のIEをインストールする)行為をユーザーに勧めるべきでないという強力なフィードバックを彼らが実際に受けていることを述べました。これはサポートなしのプロセスです:「サポートなしのシナリオであり、サポートのあるシナリオにダメージを与えます」。したがって、これは、現実的なビジネス判断です。

回答してくれたChrisとBrian、そしてそれらを掲載してくれたMollyに深く感謝します。コメントを受け付けるようクロスポストしました。