Hebikuzure's Tech Memo

2010年3月5日

IE8 のドキュメント モード判定方法

Filed under: Internet Explorer — hebikuzure @ 10:11 AM

How IE8 Determines Document Mode
http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx 


何度も出てきている話題ですが、図表でまとめられているのでわかりやすいですね。 

以下の文章は IE Blog の 3/2 の記事 How IE8 Determines Document Modeを hebikuzure が私的に試訳したものです。翻訳については Microsoft Corporation およびマイクロソフト株式会社とは無関係に hebikuzure が公開情報に基づき独自に行ったものであり、この文書の内容についての文責は公開者である hebikuzure にあります。翻訳の内容および技術的内容については正確を期すよう十分な注意を払っておりますが、誤りや不正確な部分が含まれている可能性がありますので、本文書を利用される際には原文も併せてご確認ください。


IE8 のドキュメント モード判定方法

この記事では、Quirks や Standards モードなど Web サイトのレンダリングに使用するドキュメント モードを、IE8 がどのように判定するのかについて説明します。この題材はサイト開発者と利用者のどちらにも重要です。

この動作は、最近更新した互換表示リストに関係しています。このリストは、IE8 が昨年 3 月にリリースされて以降、3100 サイト以上から 2000 サイト強まで、1000 サイト以上減少しています。私たちはサイト開発者や標準化団体とともに取り組んでおり、互換表示 (CV) リストに掲載する必要のあるサイトが引き続き減少していることを喜ばしく思っています。

データ駆動型デザイン

デザインの詳細に進む前に、私たちが互換表示の動作についてデザインした際に使ったデータを紹介しましょう。

qq.com や netlog.comなど当初の互換表示リストに載っている世界中のアクセス数の多い数千の Web サイトについて doctypeX-UA-Compatible メタ タグとヘッダー を調べたところ、

  • 26% が Quirks モードを指定していました (amazon.com, tworld.co.kr, unibanco.com.br. など)
  • 41% が ほぼ標準モードで表示される Transitional doctype を使っていました
  • 14% が IE7 標準モードで表示させるために、すでにX-UA-Compatible メタ タグか HTTP レスポンス ヘッダーを追加していました。

これには理由があります。多くのアクセス数の多いWeb サイトは可能な限り多くのブラウザーで表示されるようにしたいので、Quirks モードで書かれるのです。また多くの Web サイトには IE7 向けに書かれたページがありますし、Aptana StudioExpression Web などのオーサリング ツールは既定で Transitional doctype を指定します:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

Web 全体の観点から考えると、Quirks モード、IE7 モード、ほぼ標準モード、そして最新の標準モードで書かれたページはそれぞれ数十億あります。IE はユーザー ベースで幅広くワールド ワイドに最良のエクスペリエンスが提供できるよう、そうしたさまざまな Web プラットフォームのすべてをサポートする必要があります。

このデータを元に、私たちは IE8 のデザインでいくつかの原則を心に留めることにしました:

  1. 既定では最も標準に準拠した方法で Web サイトを表示する

以前記事で示したように、私たちは相互運用性を公約しており、それは既定では可能な限り Web サイトを最も標準に準拠して表示することを意味します。

  1. ユーザーは Web サイトが IE で正しく動作することを期待している

ごく少数のユーザーは、IE7 標準モード向けに作られそれで最も良く動作する Web サイトを IE8 のより標準に準拠した既定のモードでも動作させるために色々と手を加えるでしょう。それ以外のすべての人にために、IE8 は互換表示設定を備えました。

Web 開発者の意図どおりの動作が自動的に行われるのが最良のエクスペリエンスです。そのため互換表示リストを作成しました。またリストにない Web サイトの問題をユーザーが互換表示ボタンで修正できる機能も重要です。

  1. Web 開発者がコンテンツの表示方法を制御できるようにする

X-UA-Compatible メタ タグまたはヘッダーは IE やユーザーの設定に優先します。これにより Web 開発者はそれぞれのページが IE でどのように表示されるか、きめ細かに制御できます。

例えばある Web サイトに Quirks モードに向けて書かれたページと IE7 標準モード向けに書かれたページがある場合、IE はサーバーから EmulateIE7 値を持った X-UA-Compatible ヘッダーを受信すると、各ページを Quirks モードまたは IE7 標準モードのいずれか適切なモードで表示します。

  1. Web 開発者にツールと時間的余裕を提供し、コンテンツを IE8 標準に対応させるのを助ける

IE8 では Web 開発者がサイトを IE8 標準モードに対応させるための時間を持てるよう X-UA-Compatible メタ タグとヘッダーを用意しています。上記のように、すでに多くの Web サイトでこのメカニズムを使い、コンテンツが IE7 標準モードで動作するように指定しています。

IE8 のドキュメント モード判定ダイアグラム

上記の原則に基づき、IE が doctype、X-UA-Compatible メタ タグおよびヘッダー、開発者ツール、互換表示設定を処理する四つの確認すべき規則があります。これらの規則は、以下のダイアグラムの上から下へ適用されます:

  1. 開発者ツールの設定はそのタブで表示されているページの他のすべてのドキュメント モードに優先します。
  2. X-UA-Compatible メタ タグおよびヘッダーは、X-UA-Compatible 値が EmulateIE7 または EmulateIE8 でなければ、互換表示設定と doctype の設定に優先します。
  3. ユーザーの互換表示設定は、Microsoft の互換表示リストに優先します。
  4. 上記のどのルールも適用されない場合、Web ページは doctype により IE8 標準、IE8 ほぼ標準または Quirks モードのいずれかで表示されます。

互換性と相互運用性は複雑です。開発者とユーザーそれぞれの複雑さを解消するために、Web サイトがレガシーなブラウザー モードから移行してほしいと思います。どのモードを選択するかはサイトの開発者次第であることは尊重します。またサイト運営者や標準化団体と共に、引き続き IE の相互運用性のある標準の実装を向上させることを楽しみにしています。

ダイアグラムを検証してくれた Jesse Mohrland に多謝。

Marc Silbey
プログラム マネージャー

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。