Hebikuzure's Tech Memo

2013年12月5日

Internet Explorer の「互換表示リスト」

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 8:11 PM


この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 5 日目です。

Internet Explorer 8 以降のバージョンでは「互換表示」機能が搭載されています。これは新しいバージョンの Internet Explorer で正しく表示されない / 機能しない、古いバージョンの Internet explorer に準拠して作成された Web サイトを、Internet Explorer 7 など古いバージョン相当の動作で表示する事により、正しく表示 / 機能させるものです。

互換表示機能を利用するには、以下の3つの方法があります。

  1. サーバーが HTTP ヘッダーまたはページ内の meta タグで指定する
    (これについては川田さんのブログ記事に詳しく解説されています)
  2. ユーザーがユーザーごとの互換表示リストに登録する
    (IE8 ~ 10 の手順はこちら、IE11 の手順はこちら)
  3. Microsoft が提供する互換表示リストを利用する

今日の記事では3番目の「互換表示リスト」について解説します。

互換表示リスト (Compatibility View List、CV リスト) は単純な XML ファイルで、Internet Explorer 起動時に読み込まれて利用されます。このリストには互換表示が必要なサイトのドメインと、そのサイトで適切な互換モードが記載されています。ユーザーがサイトにアクセスする際このリストがチェックされ、リスト内にサイトのドメインが見つかったら、記載の指示に従った互換表示を行います。ユーザーやサイト管理者は互換表示のために何もする必要はありません。

現在のバージョンの Internet Explorer では、互換表示以外の機能についても同じ互換表示リストを利用して動作を切り替えています。例えばハードウェアレンダリングの無効化 (これはアクセスするドメインではなくグラフィック アクセラレータの PnP ID とドライバーのバージョンから判定)、Windows 8 / 8.1 の Immersive mode での Flash 利用の無効化、(ActiveX が無いと機能しないサイトに対する) Windows 8 / 8.1 の Immersive mode からデスクトップ IE への切り替えメッセージ表示、Windows 8 / 8.1 での拡張保護モードの制御、さらにリクエストの際の User Agent String の偽装まで、この CV リストで制御しています。

互換表示リストは新しいサイトの追加や、逆に標準対応の完了により互換表示の必要がなくなったサイトの削除などで頻繁に更新されています。Internet Explroer は一定の頻度で、起動の際に新しいバージョンの互換表示リストが無いかチェックし、現在利用してるバージョンより新しいバージョンのリストがあれば、自動的にダウンロードして利用します。この動作を変更して、「互換表示リスト」を利用しないようにするには、(メニューバーが非表示の場合は Alt を押して表示させ) メニューバーの [ツール] をクリックし、[互換表示] をクリックします (IE11 の場合は ツール ボタン (歯車のボタン) をクリックし、[互換表示] をクリックしても同じです)。

image

このようなダイアログ ボックスが表示されるので、「Microsoft から更新された互換表示リストをダウンロードする」(IE8~10) または「Microsoft 互換性リストの使用」のチェックを外します。Internet Explorer のすべてのインスタンスを終了してから、もう一度 Internet Explorer を起動すると、変更が有効になります。

また現在利用されている互換表示リストは以下の場所に保存されています。

%LOCALAPPDATA%\Microsoft\Internet Explorer\IECompatData\iecompatdata.xml

前述のように単純な XML ファイルなので、Internet Explorer など XML を表示できるアプリケーションで簡単に内容を確認できます。

なお自分が管理しているサイト (ドメインが互換性リストに掲載されている場合、サイトを更新して互換表示が不要になったら、以下の情報を含むメールを iepo@microsoft.com に送信して、互換表示リストからの削除を依頼できます。(参考 : 互換表示一覧の概要)

  • 担当者名
  • 役職
  • メール アドレス
  • 電話番号
  • 企業名
  • 所在地住所
  • Web サイト アドレス

64ビット版の Windows 8 を Windows 8.1 にアップグレードすると、それまで有効になっていた互換表示リストが正しく機能しなくなる場合があるようです。このような場合は、上記の手順でいったん「Microsoft 互換性リストの使用」のチェックを外して IE を再起動し、もう一度チェックを有効に戻すと正常に戻るようです。
参考
Compatibility View does not work in 64-bit Internet Explorer 11 after you update to Windows 8.1 RTM
http://support.microsoft.com/kb/2887858/en-us

1件のコメント »

  1. […] IE には互換表示設定(互換表示リスト)という機能があります。これを利用すると、特定の Web サイトに対して送信するユーザエージェント文字列や、利用するドキュメントモードを調整することができます。例えば(本稿執筆時点では)、store.apple.com のサイトを呼び出す場合は、ユーザエージェント文字列として IE10 のものが、また描画には IE10 のドキュメントモードが自動的に利用されますが、これは互換表示リストに以下の記述があるためです。 <domain docMode="EmulateIE10" versionVector="10" uaString="IE 10" featureSwitch="overrideXUACompatible:false" trackingid="481134">store.apple.com</domain> 互換表示リストに関しては、hebikuzure さんのこちらのエントリが詳しいです。興味がある方は読まれてみるとよいかと思います。 […]

    ピンバック by IEブラウザの互換性問題の緩和方法 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs — 2014年4月4日 @ 7:48 AM


RSS feed for comments on this post. TrackBack URI

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

WordPress.com Blog.

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