IE対策の「X-UA-Compatible:IE=edge」は必要か?
HTML ヘッダーの見直しをしている際に、理解した内容の覚書です。
次のような記載について考慮している方が対象です。
<meta http-equiv="X-UA-Compatible" content="IE=11">
or
<meta http-equiv="X-UA-Compatible" content="IE=edge">
or
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
「X-UA-Compatible」とは
バージョン 8.0 以降の Internet Explorer で使用できる互換モードと呼ばれる機能です。 IE を「X-UA-Compatible」で指定した互換モードで表示させることができます。
IE は各バージョン毎にレイアウトの癖や JavaScript の挙動が異なるため、古いバージョンで想定通り表示できたウェブページが新しいバージョンでは想定通りの表示にならないことがよくあります。この問題を回避するために古いウェブページを最新 IE から古い IE バージョンをエミュレートして表示することが「X-UA-Compatible」の主な使用目的です。
ただし、現在新たに作成されるウェブページで古い IE を指定する必要はありません。そのため、「X-UA-Compatible」に最新 IE を意味する「IE=11」や「IE=edge」を指定して使用していることがほとんどです。
※ IE 限定の機能ではなく、 iOS や Android ブラウザでも動作するものがあったようです。
(Google Chrome Frame 機能)
「IE=edge」とは
「IE(Internet Explorer)なら最新環境で表示してね」と言う意味の記載です。 IE で表示する場合、インストール済みの最新 IE で表示します。「Edge ブラウザで表示してね」と言う意味ではありません。
※ IE11 で「IE=edge」を指定すると IE11 で表示します。
重要なのは、「IE の最新で表示する」です。
Windows10 の Edge がインストール済みの環境でも、 IE11 で表示されます。
※ Edge で「IE=edge」や「IE=11」指定のページを表示した場合、 Edge で表示します。
Edge では、「X-UA-Compatible」を指定しても IE の表示とはなりません。
あくまで IE での互換モードであるため、 Edge では機能しません。
(Edge で互換モードを使用している場合、この限りではありません)
「IE=edge」以外の指定
「IE=edge」以外に次の記載があります。基本的に指定の IE で表示します。一部 DOCTYPE 宣言の影響を受けます。
- IE=EmulateIE11
- IE=EmulateIE10
- IE=EmulateIE9
- IE=EmulateIE8
- IE=EmulateIE7
- IE=11
- IE=10
- IE=9
- IE=8
- IE=7
- IE=5
※インストールされていない場合、指定しても指定 IE で表示できないことがあります。
※ IE6 は、非対応のようです。(記載漏れではありません)
「chrome=1」とは
Google Chrome Frame 用の記載です。ただし、Google Chrome Frame は、既にサポートされていないため、機能しません。そのため、「chrome=1」の記載は既に不要です。
例外的な環境(イントラネット)
IE は、標準でイントラネットサイトを互換表示する設定となっているため、イントラネットのサイトで「X-UA-Compatible」指定なしの場合、 IE7 互換で表示します。ただし、通常のパブリックサイトでは意識する必要はありません。
※イントラネットの互換表示設定は次の項目になります。
[メニュー] > [ツール] > [互換表示設定] > [イントラネット サイトを互換表示で表示する]
再現手順(むりやりサイトをイントラネット扱いする方法)
- [メニュー] > [ツール] > [インターネットオプション] > [セキュリティ] > [ローカルイントラネット] > [サイト] > [詳細設定] を開く
- 表示するWebサイトをゾーンに追加する(例:
https://www.bugbugnow.net/
) - 指定ページを開く(
https://www.bugbugnow.net/
)- 本サイトは、「X-UA-Compatible」指定なしのため、 IE7 互換でページを表示する
- F12 のエミュレーションのドキュメントモードが 7 (規定)となる
結論
「X-UA-Compatible」は、既に不要だと考えます。現状 IE11 未満からのアクセスを考慮する必要があるとは思いません。ただし、 IE11 未満を加味する必要があるのであれば有効な手段です。また、古いウェブページを公開する必要があるならば、目的のバージョンを指定しておく使い方は有効です。