ククログ

株式会社クリアコード > ククログ > 2026 > Edge IEモードのサイトリスト設定の動作について

Edge IEモードのサイトリスト設定の動作について

古いWeb業務システム(Webアプリケーション)には、旧バージョンのIEでないと正しく動作しないものが存在します。その対策として、Microsoft EdgeのIEモードでは、Enterprise Mode Site List(サイトリスト)の <compat-mode> によって、サイトごとにどのIE相当で動作させるかを指定できます。指定できる値は次の3系統です。

  • IE11 / IE10 / IE9 / IE8 / IE7 / IE5 : ドキュメントモード指定
  • IE8Enterprise / IE7Enterprise : エンタープライズモード
  • Default : 指定なし

このうちエンタープライズモードについては、「ドキュメントモード指定より互換性が高い」という説明を各所で見かけます。 では、両者は具体的に何が違うのでしょうか。

違いの一つであるドキュメントモードの決まり方については、MicrosoftのFAQやフローチャートで詳しく解説されています。 しかし、サイトリストの指定によって変わるのはドキュメントモードだけではありません。

本記事では、ドキュメントモードに加えて「ActiveXコントロールから見たIEのバージョン」と「送信されるユーザーエージェント文字列」に注目し、サイトリストの指定ごとに何が変わり、何が変わらないのかを、実際に動作させて確認した結果を紹介します。

前提: 本記事で扱う4つの要素

本題に入る前に、本記事の比較で扱う4つの要素について整理しておきます。

前半の「X-UA-Compatible」と「DOCTYPE」は、IE(MSHTML)がドキュメントモードを決めるときに参照する、サイト側の要素です。サイトリストの設定は、この2つとの組み合わせで最終的なドキュメントモードが決まります。 後半の「ActiveXコントロールから見たIEのバージョン」と「ユーザーエージェント文字列」は、ドキュメントモードとは別に、サイトリストの設定によって変わる要素です。

サイト側のX-UA-Compatible

X-UA-Compatible は、サイト側から「このページをどのドキュメントモードで描画してほしいか」をIEに伝えるための指定です。 HTMLの meta 要素、またはHTTPレスポンスヘッダーのどちらかで指定します。

<meta http-equiv="X-UA-Compatible" content="IE=8">
X-UA-Compatible: IE=8

指定できる値は、大きく次の3種類に分けられます。

値 意味 DOCTYPEの影響
IE=edge 利用可能な最新のドキュメントモード(IEモードではIE11)を使う 受けない
IE=11 / IE=10 / IE=9 / IE=8 / IE=7 / IE=5 指定したバージョンのドキュメントモードを強制する 受けない
IE=EmulateIE11 / IE=EmulateIE10 / IE=EmulateIE9 / IE=EmulateIE8 / IE=EmulateIE7 指定したバージョンのIEと同じようにDOCTYPEを解釈する 受ける

ポイントは IE=xx と IE=EmulateIExx の違いです。

  • IE=8 は、DOCTYPE宣言の有無にかかわらずIE8標準モードで描画します。
  • IE=EmulateIE8 は、「IE8がそのページを開いたらどうなるか」を再現します。つまり、標準モードを要求するDOCTYPE宣言があればIE8標準モード、なければIE5(Quirks)モードになります。

名前が似ているため混同しやすいですが、DOCTYPEを見るか見ないかという点で挙動が異なります。 後述するように、サイトリストの指定もこのどちらに近いかという観点で整理すると理解しやすくなります。

DOCTYPE

DOCTYPE宣言は、HTML文書の先頭に置く <!DOCTYPE html> のような宣言です。 ブラウザーはこの宣言の有無や内容を見て、Web標準に沿った「標準モード」で描画するか、古いブラウザーの独自挙動を再現する「Quirksモード」で描画するかを切り替えます。

  • <!DOCTYPE html> や、システム識別子(DTDのURL)付きのHTML 4.01 Strictなど、標準モードを要求するDOCTYPE宣言がある -> 標準モード
  • DOCTYPE宣言がない、または古い形式のDOCTYPE宣言である -> Quirksモード

IEの場合、Quirksモードは「IE5(Quirks)」というドキュメントモードとして扱われます。つまりDOCTYPE宣言がないページは、X-UA-Compatible で IE=xx を指定しない限り、IE5相当の描画になります。

ActiveXコントロールから見たIEのバージョン

ActiveXコントロールは、IEの中で動くネイティブのプログラムです。 HTML・CSS・JavaScriptの解釈を切り替えるドキュメントモードとは別の仕組みで動いているため、ドキュメントモードを変えてもActiveXコントロールの動作は変わりません。

一方で、古い業務システム向けのActiveXコントロールの中には、自分を読み込んでいるIEのバージョンを調べて処理を分けるものがあります。 このようなコントロールは、想定していないバージョンが返ってくると動かなくなる場合があります。

この問題に対応するため、IEはActiveXコントロールからバージョンを問い合わせられたときに、実際のバージョン(IE11)ではなく、古いバージョンのIEとして応答することがあります。 Microsoftは、IE11のエンタープライズモードの発表時に、このような問題のあるActiveXコントロールに対してIE8と同じ応答を返すことで対応すると説明しています。

本記事では、このときIEが応答するバージョンを「ActiveXから見たIEバージョン」と呼びます。 ActiveXから見たIEバージョンを直接指定する設定はなく、サイトリストの指定に連動して決まります。 後述するように、エンタープライズモードではIE8、それ以外ではIE11になります。

ユーザーエージェント文字列

ユーザーエージェント文字列(UA文字列)は、ブラウザーが自分の種類やバージョンを示す文字列です。 HTTPリクエストの User-Agent ヘッダーでサーバーに送られるなどします。

IEモードのUA文字列は、次のようなIE11のものです。

Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

古いWeb業務システム(Webアプリケーション)の中には、このUA文字列を見てブラウザーの種類やバージョンを判定し、処理を分けているものがあります。

結論: サイトリストの指定ごとに変わるもの

サイトリストの指定 サイト側のX-UA-Compatibleを使用するか DOCTYPEによる分岐 ActiveXから見たIEバージョン 送信するUA文字列
IExxEnterprise(エンタープライズモード) する(ただしIE8が上限) 分岐する(X-UA-Compatibleが IE=xx の場合を除く) IE8 IExx
IExx(ドキュメントモード指定) しない 分岐する IE11 IE11
指定なし(Default) する 分岐する(X-UA-Compatibleが IE=xx の場合を除く) IE11 IE11

「ドキュメントモード」「ActiveXから見たIEバージョン」「UA文字列」は、それぞれ別々に決まります。 ドキュメントモードを古いIEに合わせても、ActiveXから見たIEバージョンやUA文字列まで古いIEになるとは限りません。

以下では、指定ごとにこの3つがどう決まるかを順に見ていきます。

エンタープライズモード(IExxEnterprise)

IE8Enterprise を指定した場合、ドキュメントモードはサイト側の X-UA-Compatible に従いますが、その扱いには制限があります。

  • X-UA-Compatible の値がIE8以下を指す場合は、その値が使われる
  • それ以外(IE9以上を指す場合)は、IE8にフォールバックする(IE8で頭打ちになる)
  • IE=EmulateIExx 系の指定はサポートされない

つまり、エンタープライズモードを選んだ時点で、ドキュメントモードはIE8以下に固定されます。IE9やIE10のドキュメントモードを使うことはできません。

そのため、もともとIE9やIE10のドキュメントモードで動いていたサイトをエンタープライズモードで開くと、ドキュメントモードはIE8に引き下げられます。

一方で、ActiveXから見たIEバージョンとUA文字列は、古いIEのものになります。 ActiveXから見たIEバージョンは、IE8Enterprise と IE7Enterprise のどちらを指定してもIE8です。 3つのパターンの中で、ActiveXから見たIEバージョンとUA文字列が古いIEのものになるのは、エンタープライズモードだけです。

ドキュメントモード(IExx)

<compat-mode>IE8</compat-mode> のようにドキュメントモードを指定した場合、変わるのはドキュメントモードだけです。

  • サイトに送信されるUA文字列はIE11のもののまま
  • ActiveXから見たIEバージョンもIE11のまま

つまり、ActiveXコントロールやサーバーから見ると、ドキュメントモードを何に指定してもIE11として扱われます。

また、このモードはサイト側の X-UA-Compatible を参照しません。 サイトが X-UA-Compatible を出力していても、サイトリストの指定が優先されます。 3つのパターンの中で、サイト側の指定に関係なくドキュメントモードのバージョンを決められるのは、このモードだけです。

サイトリストの IExx は IE=xx ではなく IE=EmulateIExx 相当

サイトリストの IExx は X-UA-Compatible を参照しませんが、DOCTYPEによる分岐は残ります。 DOCTYPE宣言のないページは、例えば IE8 を指定していてもIE5(Quirks)モードで描画されます。

前述のとおり、X-UA-Compatible における IE=8 はDOCTYPEを無視してIE8標準モードを強制しますが、サイトリストの IE8 はそうではなく、IE=EmulateIE8 に近い挙動です。

指定なし(Default)の場合

サイトリストのどのマッチングパターンにも該当しなかった場合、ドキュメントモードはサイト側の X-UA-Compatible に従います。 X-UA-Compatible がない場合は IE=EmulateIE11 相当、すなわちDOCTYPE宣言があればIE11標準モード、なければIE5(Quirks)モードになります。

UA文字列とActiveXから見たIEバージョンはIE11のままです。

「エンタープライズモードのほうが互換性が高い」の中身

以上のことを踏まえて、冒頭で触れた「エンタープライズモードのほうがドキュメントモード指定より互換性が高い」という説明が正しいかどうかを改めて評価してみましょう。

エンタープライズモードは、ドキュメントモードだけでなく、ActiveXから見たIEバージョンとUA文字列も古いIEのものにします。 ページの描画だけでなく、ActiveXコントロールやサーバーから見たブラウザーまで古いIEに近づけるという意味では、確かに互換性が高いと言えます。

一方で、エンタープライズモードはドキュメントモード指定の上位互換ではありません。

  • ドキュメントモードはIE8が上限で、IE9やIE10のドキュメントモードは使えない
  • サイト側の X-UA-Compatible の影響を受けるため、ドキュメントモード指定のように、サイトリスト側だけでドキュメントモードを決めることはできない

エンタープライズモードは「IE8以前のIEとして振る舞わせる」ための指定、ドキュメントモード指定は「描画だけを指定したバージョンに合わせる」ための指定、と考えるのが実態に近いでしょう。

まとめ

Edge IEモードのサイトリスト設定について、3パターンの挙動を紹介しました。

クリアコードでは、ブラウザ切り替えツールであるBrowserSelectorなど、各種主要ブラウザ(Edge/Chrome等)向けのソリューションを提供しております。 興味がありましたら、お問い合わせフォームよりお気軽にご連絡ください。