ふろしき Blog

コンテンツサービスを科学する株式会社ブートストラップ代表のブログ

意外と知られていない、IE11リリースによる本当の危機

Internet Explorerはエンタープライズでの利用が想定されるため、Microsoft製品で広く適用されているサポート ライフサイクル ポリシーを確認すると、最低でも10年のサポートが受けられると考えている人も多いでしょう。IE8も9も10も、みんなそうなると信じて疑わないIT管理者の方も多いのではないでしょうか。

しかし、これは「誤り」です。

本記事では、最近やたらと複雑化の進んだIEのサポート期間の真実について解説します。

サポートライフサイクルポリシーとは?

そもそもですが、Microsoftの「サポートライフサイクルポリシー」とは何でしょうか。公開しているドキュメントを参照すると、以下の通りです。

マイクロソフトはビジネス、開発用製品に対して最短でも 10 年間のサポートを提供します。ビジネス、開発用製品に対するメインストリーム サポートは、製品発売後 5 年間または次期製品 (N+1) の発売後 2 年間のどちらか長い方の期間提供します。マイクロソフトは、メインストリーム サポート終了後 5 年間または次々期製品 (N+2) の発売後 2 年間のどちらか長い方の期間延長サポートを提供します。最終的に、ビジネス、開発用のほとんどの製品は最短でも 10 年間のオンライン セルフヘルプ サポートを受けることになります。

(※参考 : http://support.microsoft.com/gp/lifepolicy/ja)

Microsoft製品にはメインストリームサポートと延長サポートの2つの考え方があります。

  • メインストリームサポート : 不具合改善+セキュリティアップデート。
  • 延長サポート : セキュリティアップデートのみ。

ざっくりと説明すると、上記の通りです。製品ごとにちょっとした違いもあるようですが、多くの製品の共通点を集約すれば上記の通りでしょう。電話やメールのサポートについて、メインストリームの期間は受け付けてくれますが、延長期間は本当に最小のサポートしかされないため、セキュリティアップデートのみです。他は受け付けてくれません。

メインストリームサポートは、製品が発売されてから5年で、その後はもう5年の延長サポートへ移ります。MicrosoftはN+1というサポートシステムを持っているため、実際には5年以上に伸びることもありますが、頻繁にバージョンアップを行っている場合は、5年とみなすべきです。

つまり、Microsoftのビジネス製品は、メインストリーム5年+延長サポート5年の合計である、10年のサポートが受けられると考えるのが自然でしょう。

サービスパックポリシーという罠

IEは動作するプラットフォームがOSに強く依存するブラウザです。OSによって、動作しないバージョンがあることは広く知られているでしょう。Windows XPであればIEは6〜8しか動きませんし、Windows 7であればIEの8〜11が動作します。IEは実質的に、OSのサポート期間が全てということになります。

現在多くの企業システムとしても採用されているWindows7上で動作するIEは、Windows7のサポート期間の縛りを受けることになります。Windows7は2013年11月現在、サポート期間は2020年1月14日までなので、約6年2ヶ月のサポートがあります。

Windows8は先月アップデートされWindows8.1になりましたが、このアップデートにはサービスパックポリシーとして扱われます。Windows XPで言うところのSP1→SP2のような扱いです。サービスパックポリシーは製品のアップデートが行われると24ヶ月以内に実施しないとサポートが切れるため、実質的に次の移行先OSはWindows8.1以上ということになります。

実はIE10、残り6年しかサポートが無い

Windows8.1で強制的にアップグレードされたIE11には、今までにない特徴が2つほど含まれています。

  1. OSはサービスパックポリシー程度のアップデートなのに、IEはアップグレード相当のバージョンアップ
  2. IE11からはドキュメントモードが非推奨になった

IE9の時点で既に例外が生じていましたが、最近のIEはアップグレード速度が速いため、OSのアップグレードとセットになっていません。OSが1バージョン上がるまでに、2回以上のバージョンアップを行うのが普通になりました。そして今回、IE11はWindows8.1へのアップデートで、アップグレードが必須になっています。つまり、次の移行先OSは、IE11以上で確定です。

そしてIE11からの大きな特徴、それは「ドキュメントモード」の非推奨です。これまでの企業システムは、IEの持つドキュメントモードの力を借りて、IE6でテストされたシステムをIE8へ移行できていました。多くの企業システムは、イントラネット互換表示という機能を利用し、IE8/9/10で、IE7相当の動作をエミュレートさせることで、IE6向けWebシステムを保護してきました。

しかし今回、IE11からはドキュメントモードが廃止になり、イントラネット互換表示も公式として推奨されない手段になってしまいました。実際にIE11からは、過去のレンダリングエンジンの動作はあまりテストされていないようで、多くの不具合が確認されています。実質的にIE11では、ドキュメントモードに頼ってはいけないという状況でしょう。

企業のレガシーWebシステムの寿命はあと6年

もうお分かりでしょう。

IE11は動作の不安定などを注目する人が多いようですが、本当の危険はそこではありません。最大の危機、それは企業がレガシー資産を残り6年で入替えなくてはいけないことです。大企業だと5年単位でIT資産の運用指針を決定するでしょうし、そもそも企業システムは開発1年運用5年の世界なので、今作っているものも対策を行わなくてはいけません。実はとても時間が無いのです。

これまで企業システムは、サーバのミドルウェア製品こそ最新でお作法を守ったプログラミングを心がけているようですが、フロントエンドは相互運用性が失われ、マネジメントのコントロールを外れた手段が横行していたようです。しかしそれもここまでのようです。

近年、IE6資産の維持のためにWindowsXPのVMを購入する企業、IE6互換のサードパーティベンダ製品を購入しているといった事例もあるようですが、長期的にはコスト効果の低い対策となっています。とはいえ、今の時代になってもOS依存のコーディングを防ぐ明確な手段が存在しないため、完全な解決手段も無いという状況です。

レンダリングエンジンのレイヤーは、Compat InspectorやFidlerといったツールの力を借りて相互運用性のテスト手段が確立されつつあります。IE8以降、Web標準への準拠を高め、IEは高い相互運用性を確保できました。プロジェクトが正しい手法でフロントエンドを開発していた場合、ドキュメントモードの存在はそこまで大きな問題にならないはずです。

しかしどうしても乗り越えられない壁である、OS依存の問題。ドキュメントモードが存在しているにもかかわらず、WindowsXPから7へ上手く移行出来ない理由として、ここが強く関わっていると思います。テキストの出力方法から、WindowsAPI依存の技術と、IEは多くの機能をOSへ依存させています。

OSというレイヤーとどのように向き合うべきか、今後の議論はそこにフォーカスされるのかもしれません。

IEの持つ互換性機能の全て - DOCTYPEスイッチ/X-UA-Compatible/互換表示

IEはかつて、独自の機能実装により安定かつ高度な機能を持ったプラットフォームを実現しました。特に、IE6のポテンシャルの高さは、Web技術発展へ大きく貢献しています。

しかし同時に、他のブラウザとは異なる独立した挙動をしたり、バージョンごとに機能面に開きがあるなど、相互運用性の面に大きな課題を作ってしまいました。多くの企業は、IEの特定のバージョンへ強く依存した既存資産と、IEのアップグレード方法に頭を悩ませているでしょう。

Microsoftはこの問題に対応するため、IEは過去のバージョン向けに開発されたWebコンテンツを動作させるための仕組みを持っています。これを「ドキュメントモード」といいます。

本記事では、IEの持つドキュメントモードを利用した互換性の考え方について解説します。IEのアップグレード時に、移行方法の指針、手段の発見に活用して頂ければ幸いです。

★ 目次

  1. DOCTYPEスイッチ・・・開発者向け
  2. X-UA-Compatible・・・開発者向け
  3. 互換表示モード・・・IT管理者/ユーザ向け
  4. ドキュメントモードでは解決されない問題・・・開発者向け

★ 注意事項

ドキュメントモードは、IE11より非推奨となりました。このため、本対策が活用できるのは事実上Win7版IE10までとなり、Win7のEOLである2020年1月14日に正式なサポートは終了となります。Win8以上のOSへアップグレードするまでに、全Webシステムをドキュメントモード依存やIE8特化しない状態に改善することが求められています。
(※参考 : ドキュメント モードの非推奨 - Microsoft )
(※参考 : ドキュメントモードに依存しない開発方法について - ふろしき.js )

1. DOCTYPEスイッチ

「DOCTYPEスイッチ」とは、HTMLドキュメントの一番初めに「DOCTYPE宣言」というHTMLフォーマットを意味する特殊な文字列を記述することで、Webブラウザの動作をQuirksモードとStandardモードのどちらかの状態へスイッチさせる手法です。開発者が、IEのドキュメントモードを制御するために利用できます。

Quirksモードとは、主にHTML3.2以前のWebコンテンツに対して、IE5の古いレンダリングエンジンを提供する機能です。IE6〜10では標準的に提供されていますが、IE11ではドキュメントモードの非推奨化に伴い、限定的な手段により提供されています。

対してStandardモードは、最新のレンダリングエンジンにより動作をさせる機能です。

以下は、IEの各バージョン別のDOCTYPEスイッチの動作一覧です。全体を通しての考え方や注意点は、後述する5つのポイントを確認して下さい。

★ a. IE6〜10は、HTML3.2以前はQuirks、HTML4.01以降はStandardと解釈

IE6〜10ではDOCTYPE宣言の解釈は、基本的にHTML4.01を起点にしてスイッチされます。HTML4.01については、以前のバージョンのHTMLの仕様を許すDOCTYPEもあるため、その扱いは非常に煩雑です。

HTML4.01のDOCTYPE宣言において、おさえるべきポイントは以下の通りです。

1. Transitionalと明示した3.2と4.01の混在を意味する定義は、Quirksモード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2. Framesetと明示した3.2と4.01の混在を意味する定義は、Quirksモード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

3. Transitional/Framesetの指定が無いStrictと呼ばれる定義は、Standardモード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

4. 4.01のDTDを明示的に指定した場合は、上記の条件に関係なく常にStandardモード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

現在は、IE6~11で最新のドキュメントモードが選択される、HTML5のDOCTYPEが推奨されています。

★ b. IE11ではQuirksモードへスイッチできない

IE11からは、ドキュメントモードが非推奨になったため、DOCTYPEスイッチによってQuirksモードへのスイッチが行えません。
(※参考 : ドキュメント モードの非推奨 - Microsoft )

Quirksモードで動作させるには、IEの利用者/IT管理者による対策が必要です。以下の方法で解決が可能ですが、IE12以降でもこの方法が永続的に利用できることは保証されていません。Microsoftではこのような対策を必要とするWebコンテンツは、改修を推奨しています。

>> IE11ではDOCTYPE宣言がチェックされない、どうすれば解決できるか?

★ c. IE6のXHTML1.0のDOCTYPEの解釈に問題がある

IE6のXHTML1.0のDOCTYPE宣言は解釈に問題があり、IE6とIE7以上とでは、Quirksモードに切り替わるためのルールが異なります。具体的には、以下の文字列が宣言されている場合、IE6ではQuirksモードで、IE7〜10ではStandardモードとして動作します。

<?xml version="1.0" encoding="utf-8"?>

以下のページにて、この問題に対する解決策を説明しています。
>> XHTML1.0の場合、IE6からIE8〜10への移行時に表示が乱れることがある

★ d. IE10ではQuirksモードがIE5の動作にならない

IE10から、QuirksモードがIE5と互換性が無くなっています。ただし、IE5と互換性のあるドキュメントモードは内部的に「IE5 quirksモード」として残されています。

このドキュメントモードを利用したい場合、以下のページを参考に解決方法を探ってみて下さい。

>> IE6〜9とIE10とでQuirksモードの動作が違う、どうすれば解決できるか?

★ e. RFC2070のDOCTYPEは正常に解釈されない

RFC2070には、HTML2.0を意味するDOCTYPE宣言があります。
(※参考 : Internationalization of the Hypertext Markup Language )

しかしこれは、IEでの解釈に問題があり正常に動作しません。具体的には、以下のDOCTYPE宣言は、歴史的に見るとIE6〜10ではQuirksモードとして動作すべきですが、実態としてStandardモードと解釈されてしまいます。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN">

この問題を抱えたWebコンテンツを「Quirksモード」で動作させるには、次章の「X-UA-Compatible」による対策を検討して下さい。

2. X-UA-Compatible

IEは内部的に、IE5以降のレンダリングエンジンを再現させるための機能を持っています。これを制御するには、「X-UA-Compatible」を利用します。

以下は、IEの各バージョン別のX-UA-Compatibleの使い方/動作仕様です。動作の違いなどおさえるべき点は、後述する5つのポイントを確認して下さい。

★ a. IE6互換のドキュメントモードは無い

IE5以降のレンダリングエンジンを揃えているIEですが、歴史的経緯によりIE6の互換モードだけは提供できていません。多くの企業システムでは、移行時にIE6コンテンツをIE7互換モードで代替し動作させているようです。

★ b. IE10にはQuirksモードが2種類ある

IE6/7/8/9と、QuirksモードはIE5の機能性を維持してきました。しかしIE10からは、QuirksモードがHTML5との相互運用の観点から完全な互換性を持たないことを、Microsoftとして公式に発表しています。

ただし、IE10にはQuirksモードが2種類あり、新たに追加した「IE5 quirksモード」がIE5との互換性を持ちます。

単純なDOCTYPEスイッチでは、無印の「Quirksモード」が選択されます。対して、ドキュメントモードにより直接「IE5」の指定を行った場合は「IE5 quirksモード」が選択されます。

詳しくは、以下のページを参照して下さい。

>> IE6〜9とIE10とでQuirksモードの動作が違う、どうすれば解決できるか?

★ c. X-UA-Compatibleの指定は全てにおいて優先される

ドキュメントモードを制御する方法としては、「互換表示ボタン/互換表示リスト」「DOCTYPEスイッチ」などがありますが、X-UA-Compatibleは全てにおいて最優先の制御を握ります。IE=EmulateIEが利用された場合も、互換表示の影響を受けません。

この特性を活かし、企業システムでは、互換表示機能により全体的に保護されたイントラネット内で、一部のシステムにのみ異なるドキュメントモードを適用する場合に利用されます。

★ d. IE11のIE=EmulateIE10には不具合特殊な動作がある

(※ 2013.11.27 - 不具合でなく仕様でした。)

IE11のX-UA-Compatibleへ「IE=EmulateIE10」を指定した場合、DOCTYPEスイッチが正常に動作しないという不具合がありますDOCTYPEスイッチの動作にはユーザには見えない仕様が含まれています。詳しくは、以下のページを参照して下さい。

>> IE11のEmulateIE10(X-UA-Compatible)でDOCTYPEスイッチに不具合がある(仕様でした)
>> IE11を裏ワザ的なやり方でDOCTYPEスイッチを有効化する方法

★ e. IE8とIE9以上の間ではIE=(数字)の判定式が違う

IE8とIE9とでは、X-UA-Compatibleの値の扱い方、そのルールが異なります。

この動作の違いは、互換表示リスト/互換表示ボタンの有効化に影響を与えます。将来に渡り有効になることを想定して、パラメータへ「IE=100」などの大きな値を設定した場合、IE9/10/11では問題にならないが、IE8では誤動作を起こすというケースがあります。

マルチバージョン対応が求められ、X-UA-Compatibleの振る舞いに厳密な限界値テストを必要とする場合、8と9以上とで分類してテストすることが推奨されます。

3. 互換表示モード

「互換表示モード」とは、Internet Explorerへの設定を利用して、IE5/IE7のドキュメントモードで動作させるための方法です。IT管理者/ユーザが、IEのドキュメントモードを制御するために利用できます。

IE11ではドキュメントモードは非推奨ですが、互換表示の機能は残っています。ただし、Microsoftはドキュメントモードは非推奨としており、互換表示機能も永続的にサポートされないことが予想されます。

互換表表示機能の利用方法としては、以下3つが挙げられます。

IE8〜10では、利用者側で互換表示を制御する「互換表示ボタン」が提供されています。

IE8〜11では、利用者側で互換表示を制御する「互換表示一覧(リスト)」が提供されています。

IE8〜11では、IT管理者向けに「ローカルイントラネット互換表示」が提供されています。

★ a. 互換表示リストはドキュメントモードのバージョンを選択できない

互換表示リストで定義できるのは、IE8の場合はQuirksか最新のドキュメントモードか、IE9/10/11ではIE7か最新のドキュメントモードかの、2種類のみから選択されます。バージョンの指定までは、互換表示リストからは制御できません。

Microsoftが提供している互換リストはドキュメントモードの指定が行えるため、ここへ直接書き込むというハックもあります。しかし、定期更新の際に上書きされるため、有用な手段とは言えません。Microsoftはこのような利用シーンでは、X-UA-Compatibleの利用を推奨しています。

★ b. IE10はQuirksが有効かつ互換表示が有効の場合、IE5 quirksモードで動作する

IE10にはQuirksモードが2種類あり、デフォルトのDOCTYPEスイッチで動作するQuirksモードはIE5との互換性を失っています。しかし、互換表示が有効の状態でQuirksモードが選択された場合、「IE5 quirksモード」というIE5と互換性があるQuirksモードが選択されます。

★ c. ローカルイントラネット互換表示が有効時は、互換表示ボタンが表示されない

ローカルイントラネット互換表示の適用範囲では、互換表示ボタンが表示されません。これを利用すれば、システム利用者の誤操作によるトラブルを避けることができます。

4. ドキュメントモードでは解決されない問題

★ a. 不具合とCSSデフォルト値までは再現されない

IEが持っている不具合やCSSデフォルト値までは、再現することができません。問題になりやすいものについては、以下のような対策がユーザによって考案されています。

★ b. OSのAPI依存の動作までは再現されない

IEは、他のWebブラウザとは異なり、WindowsOSのAPIを極力利用する方針です。このため、同一のWindowsブランドであっても、バージョンごとに差異が生じることがあります。

IEの互換系機能を利用して以降を行う場合、テストの目安として、OSレイヤーでの仕様の差異を意識して下さい。

詳細は、以下のページを参考にして下さい。

>> 相互運用性対策は「ブラウザ/デバイス検出」から「機能/動作検出」へ

★ c. ドキュメントモードの動作が完全ではない

ここで紹介した3種類の互換性対策用機能は、全てIEの内部で持つドキュメントモードを利用しています。IEはバージョンアップを繰り返す都度、過去のIEのレンダリングエンジンを揃えてきましたが、筆者の検証環境の結果では、全く同じバイナリの状態を維持していないように見えます。テストの不足から、バージョン間でその機能性に微妙な差異が生じています。

OSレイヤーと切り離した場合も、機能が同じであることを前提にせず、テストを行う必要があります。

イントラネット内で互換表示を有効にする方法(IE8/IE9/IE10/IE11)

IEの8〜11では、イントラネットゾーンで互換表示(IE7との互換動作)を有効にする機能を持ちます。

イントラネットとは、企業システムをWebベース(Internet Explorerの利用)で構築した場合に、企業内と企業外のネットワークで別のポリシーを適用するために作られたWindows固有の考え方です。多くの企業システムでは、Webシステムの互換性の保持のために利用されている鉄板とも言える設定情報です。

これを利用すれば、企業システムのみを互換表示で保護することが可能です。WindowsXPからWindows7へ移行した際に、IE6/7向けに作られたWebシステムをアップグレードされたレンダリングエンジンでも動作させるために活用されています。

本記事では、イントラネット互換表示機能について解説します。

  1. 設定方法
    1. 「互換表示設定」でのチェック
    2. 「インターネットオプション」への設定
  2. 確認方法
  3. 利用上の注意点

1. 設定方法

★ 1.1.「互換表示設定」でのチェック

「互換表示設定(B)」を開きます。

  • IE8 : コマンドバーの「ツール(T)」を選択して下さい。
  • IE9/10 : Altキーを押下するとコマンドバーが表示され、「ツール(T)」を選択すると操作が行えるようになります。
  • IE11 : 右上の歯車をクリックすると、「互換表示設定(B)」が選択できます。

f:id:furoshiki0223:20131124063653p:plain

「イントラネット サイトを互換表示で表示する(I)」にチェックが入っていることを確認して下さい。
f:id:furoshiki0223:20131125043356p:plain

★ 1.2. 「インターネットオプション」への設定

まず、「インターネットオプション」を開きます。

  • IE11 : 右上の歯車をクリックすると、「インターネットオプション(O)」が選択できます。

f:id:furoshiki0223:20131125045424p:plain

a. ドメインを直接指定してイントラネットを定義する場合

「詳細設定(A)」をクリックし、「この Web サイトをゾーンに追加する(D)」へURLを登録します。
f:id:furoshiki0223:20131125045836p:plain
f:id:furoshiki0223:20131125045846p:plain

b. プロキシサーバを介さないアクセスをイントラネットと定義する場合

「イントラネットのネットワークを自動的に検出する(D)」からチェックを外し、「プロキシ サーバーを使用しないサイトをすべて含める(P)」へチェックします。
f:id:furoshiki0223:20131125045902p:plain

2. 確認方法

実際に、イントラネットで定義されたドメイン/URLのサイトへアクセスして下さい。

★ IE8/IE9/IE10の場合

「F12」を押下し、「F12開発者ツール」を表示して下さい。ドキュメントモードが「IE7」であれば、正常です。
f:id:furoshiki0223:20131125054620p:plain

★ IE11の場合

「F12」を押下し、「F12開発者ツール」を表示して下さい。左のデスクトップPCのようなアイコンをクリックし、右のウィンドウに以下のような表示があることを確認して下さい。
f:id:furoshiki0223:20131125052807p:plain

3. 利用上の注意点

★ 機能永続性の問題

IE11からはドキュメントモードが非推奨となったため、推奨される手段ではありませんが、機能としては残っています。本機能は、今後のIEではサポートされない可能性があるため、取り扱いには注意が必要です。

段階的に、企業システムをIE10以降が提唱するバージョンに依存しないWeb開発へと移行させる必要があります。

(※参考 : ドキュメント モードの非推奨 - Microsoft )

互換表示機能をWindowsレジストリを利用して無効化する方法(IE8/IE9/IE10/IE11)

IEには「互換表示ボタン」や「互換表示一覧(リスト)」を通じて、サイトのドメインごとに互換表示機能の有効/無効を切り替える機能を持っています。

企業システムでの用途の場合、この機能をIEの利用者側で制御して欲しくないという要望もあるでしょう。この場合、Windows(XP/7)のレジストリ編集により対策することが可能です。ただし、X-UA-Compatibleによるブラウザモード制御や、イントラネット互換表示機能までは本設定による影響を与えません。

本記事では、Windowsレジストリを利用した互換表示機能の無効化方法について説明します。

  1. 設定方法
  2. 確認方法

(※ 以下の手順は、WindowsXPも7も共通です。)

1. 設定方法

[Winキー]+[R]で「ファイル名を指定して実行」ウィンドウを開きます。名前に「regedit」を入力し、「OK」ボタンをクリックして下さい。
f:id:furoshiki0223:20131125032747p:plain

「HKEY_CURRENT_USER\Software\Policies\Microsoft」へ移動します。
f:id:furoshiki0223:20131125050940p:plain

1.1. キー「Internet Explorer」を登録

※「Internet Explorer」が既に作成されている場合は、本手順は不要です。

「Microsoft」を右クリック、「新規(N)」→「キー(K)」を選択。
f:id:furoshiki0223:20131125033526p:plain

「Internet Explorer」と入力し、Enterキーを押下。(※InternetとExplorerの間は半角スペース)
f:id:furoshiki0223:20131125033535p:plain

1.2. キー「BrowserEmulation」を登録

※ 「BrowserEmulation」が既に作成されている場合は、本手順は不要です。

「Internet Explorer」を右クリック、「新規(N)」→「キー(K)」を選択。
f:id:furoshiki0223:20131125033909p:plain

「BrowserEmulation」と入力し、Enterキーを押下。(※BrowserとEmulationの間にはスペース無し)
f:id:furoshiki0223:20131125034023p:plain

1.3. 「DisableSiteListEditing」を登録

「BrowserEmulation」を左クリックで選択し、右のウィンドウの開いているスペースで右クリック。「新規(N)」→「DWORD値」を選択。Windows7の場合は、32bit版を選択して下さい。
f:id:furoshiki0223:20131125034210p:plain

「DisableSiteListEditing」と入力し、Enterキーを押下。
f:id:furoshiki0223:20131125034322p:plain

「DisableSiteListEditing」をダブルクリックし、「値のデータ(V)」へ「1」と半角で入力、「OK」をクリック。
f:id:furoshiki0223:20131125034417p:plain

これで完了です。F5を押下し更新するとより良いでしょう。

2. 確認方法

IEを一度再起動し、「ツール」→「互換表示設定」を開いて下さい。(※IE9/10の場合は、Altキーを押下すると、コマンドバーが出現しツールを選択できるようになります。)

以下のように、「このWebサイトの追加(D)」と「互換表示に追加したWebサイト(W)」の両方の右にあるボタンが非アクティブであれば、設定は正常に反映されています。

f:id:furoshiki0223:20131125034543p:plain

IE11のX-UA-Compatibleの使い方/動作仕様

IE11では、X-UA-Compatibleという制御パラメータを利用し、過去のWebブラウザの機能をエミュレートさせることができます。

本記事では、X-UA-Compatibleの利用方法について解説します。

  1. 動作の仕様
  2. 設定方法
    1. HTMLドキュメント内にX-UA-Compatibleを追加する
    2. ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する
    3. IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

1. 動作仕様

  • IE=EmulateIE11 : 常にIE11モードとして動作する。
  • IE=EmulateIE10 : 常にIE10モードとして動作する。(※製品不具合)
  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=11 : 必ずIE11モードを選択する。
  • IE=10 : 必ずIE10モードを選択する。
  • IE=9 : 必ずIE9モードを選択する。
  • IE=8 : 必ずIE8モードを選択する。
  • IE=7 : 必ずIE7モードを選択する。
  • IE=5 : 必ずIE5モードとして動作する。

>> IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

2. 設定方法

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。

★ HTMLドキュメント内にX-UA-Compatibleを追加する

HTMLドキュメント内で記述する場合は、head要素内の比較的最初で以下を定義します。

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

★ ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

RHEL/CentOS/FedoraでApache HTTP Serverを利用している場合は、「/etc/httpd/httpd.conf」にて、一番最後に以下の内容を追記して下さい。

LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
   Header set X-UA-Compatible: IE=11
</IfModule>

Apacheに「mod_headers.so」がバンドルされていない場合はエラーになります。予め、インストールして下さい。

★ IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

MicrosoftのWindows系OSで「インターネット インフォメーション サービス(IIS)」を利用している場合は、以下の手順になります。

「コンピュータの管理」→「インターネット インフォメーション サービス(IIS) マネージャー」
f:id:furoshiki0223:20131112210814p:plain

「HTTP応答ヘッダー」
f:id:furoshiki0223:20131112210923p:plain
表示内で右クリック、「追記」を左クリック
f:id:furoshiki0223:20131112211023p:plain
「名前(N):」へ「X-UA-Compatible」、「値(V):」へ「IE=11」
f:id:furoshiki0223:20131125014426p:plain

IE10のX-UA-Compatibleの使い方/動作仕様

IE10では、X-UA-Compatibleという制御パラメータを利用し、過去のWebブラウザの機能をエミュレートさせることができます。

本記事では、X-UA-Compatibleの利用方法について解説します。

  1. 動作の仕様
  2. 設定方法
    1. HTMLドキュメント内にX-UA-Compatibleを追加する
    2. ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する
    3. IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

1. 動作仕様

  • IE=EmulateIE10 : DOCTYPE宣言に応じて、IE10モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=10 : 必ずIE10モードを選択する。
  • IE=9 : 必ずIE9モードを選択する。
  • IE=8 : 必ずIE8モードを選択する。
  • IE=7 : 必ずIE7モードを選択する。
  • IE=5 : IE5 quirksモードとして動作する。(※IE10の通常のQuirksモードはIE5とは互換性がないため、特殊なQuirksモードが動作する。)

>> IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

2. 設定方法

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。

★ HTMLドキュメント内にX-UA-Compatibleを追加する

HTMLドキュメント内で記述する場合は、head要素内の比較的最初で以下を定義します。

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

★ ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

RHEL/CentOS/FedoraでApache HTTP Serverを利用している場合は、「/etc/httpd/httpd.conf」にて、一番最後に以下の内容を追記して下さい。

LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
   Header set X-UA-Compatible: IE=10
</IfModule>

Apacheに「mod_headers.so」がバンドルされていない場合はエラーになります。予め、インストールして下さい。

★ IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

MicrosoftのWindows系OSで「インターネット インフォメーション サービス(IIS)」を利用している場合は、以下の手順になります。

「コンピュータの管理」→「インターネット インフォメーション サービス(IIS) マネージャー」
f:id:furoshiki0223:20131112210814p:plain

「HTTP応答ヘッダー」
f:id:furoshiki0223:20131112210923p:plain
表示内で右クリック、「追記」を左クリック
f:id:furoshiki0223:20131112211023p:plain
「名前(N):」へ「X-UA-Compatible」、「値(V):」へ「IE=10」
f:id:furoshiki0223:20131124004901p:plain

IE9のX-UA-Compatibleの使い方/動作仕様

IE9では、X-UA-Compatibleという制御パラメータを利用し、過去のWebブラウザの機能をエミュレートさせることができます。

本記事では、X-UA-Compatibleの利用方法について解説します。

  1. 動作の仕様
  2. 設定方法
    1. HTMLドキュメント内にX-UA-Compatibleを追加する
    2. ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する
    3. IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

1. 動作仕様

  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=9 : 必ずIE9モードを選択する。
  • IE=8 : 必ずIE8モードを選択する。
  • IE=7 : 必ずIE7モードを選択する。
  • IE=5 : Quirks(IE5の互換動作)モードとして動作する。

>> IE9のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

2. 設定方法

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。

★ HTMLドキュメント内にX-UA-Compatibleを追加する

HTMLドキュメント内で記述する場合は、head要素内の比較的最初で以下を定義します。

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

★ ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

RHEL/CentOS/FedoraでApache HTTP Serverを利用している場合は、「/etc/httpd/httpd.conf」にて、一番最後に以下の内容を追記して下さい。

LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
   Header set X-UA-Compatible: IE=9
</IfModule>

Apacheに「mod_headers.so」がバンドルされていない場合はエラーになります。予め、インストールして下さい。

★ IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

MicrosoftのWindows系OSで「インターネット インフォメーション サービス(IIS)」を利用している場合は、以下の手順になります。

「コンピュータの管理」→「インターネット インフォメーション サービス(IIS) マネージャー」
f:id:furoshiki0223:20131112210814p:plain

「HTTP応答ヘッダー」
f:id:furoshiki0223:20131112210923p:plain
表示内で右クリック、「追記」を左クリック
f:id:furoshiki0223:20131112211023p:plain
「名前(N):」へ「X-UA-Compatible」、「値(V):」へ「IE=9」
f:id:furoshiki0223:20131124040219p:plain

IE8のX-UA-Compatibleの使い方/動作仕様

IE8では、X-UA-Compatibleという制御パラメータを利用し、過去のWebブラウザの機能をエミュレートさせることができます。

本記事では、X-UA-Compatibleの利用方法について解説します。

  1. 動作の仕様
  2. 設定方法
    1. HTMLドキュメント内にX-UA-Compatibleを追加する
    2. ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する
    3. IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

1. 動作仕様

  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=8 : 必ずIE8モードを選択する。
  • IE=7 : 必ずIE7モードを選択する。
  • IE=5 : Quirks(IE5の互換動作)モードとして動作する。

>> IE8のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

2. 設定方法

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。

★ HTMLドキュメント内にX-UA-Compatibleを追加する

HTMLドキュメント内で記述する場合は、head要素内の比較的最初で以下を定義します。

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

★ ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

RHEL/CentOS/FedoraでApache HTTP Serverを利用している場合は、「/etc/httpd/httpd.conf」にて、一番最後に以下の内容を追記して下さい。

LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
   Header set X-UA-Compatible: IE=8
</IfModule>

Apacheに「mod_headers.so」がバンドルされていない場合はエラーになります。予め、インストールして下さい。

★ IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

MicrosoftのWindows系OSで「インターネット インフォメーション サービス(IIS)」を利用している場合は、以下の手順になります。

「コンピュータの管理」→「インターネット インフォメーション サービス(IIS) マネージャー」
f:id:furoshiki0223:20131112210814p:plain

「HTTP応答ヘッダー」
f:id:furoshiki0223:20131112210923p:plain
表示内で右クリック、「追記」を左クリック
f:id:furoshiki0223:20131112211023p:plain
「名前(N):」へ「X-UA-Compatible」、「値(V):」へ「IE=8」
f:id:furoshiki0223:20131124033723p:plain

IE11のEmulateIE10(X-UA-Compatible)でDOCTYPEスイッチに不具合がある(→仕様でした)

(※ 本ドキュメントは古い情報です。正確な仕様は、こちらを参照して下さい。)

IE10までは、「X-UA-Compatible」に対して、「IE=EmulateIE」で指定された対象バージョンのドキュメントモードでは、DOCTYPEスイッチの条件に従いQuirksモードへの切り替えを行っていました。

「IE=EmulateIE10」と指定した場合、Microsoftの公開している仕様に準ずるなら、以下のURLのDOCTYPEスイッチの条件に従う必要があるはずです。

IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

↓ Microsoftの提供するEmulateIEの仕様
X-UA-Compatibility Meta Tag and HTTP Response Header - Microsoft Developer Network

しかしIE11では、「IE=EmulateIE10」の場合に限り、DOCTYPE宣言を確認せず常にIE10として動作するという不具合があります。これを改善するには、Quirksモードとして動作が必要なWebコンテンツに対して、「IE=EmulateIE9」以下を指定するか「IE=5」と直接指定することで対処する必要があります。

※2013/11/24 : この不具合は、筆者がMicrosoft Connectへ報告しています。
IE11 - BUG / DOCTYPE switch does not work, when I use "IE=EmulateIE10". - Microsoft Connect
※2013/11/27 : えむけい氏の指摘により、本動作は仕様であることが確認されました。

IE11の互換表示リスト(互換表示一覧)の使い方/動作仕様

IE11には、正常な動作が行えない古いWebコンテンツを利用できるようにするために、「互換表示リスト(互換表示一覧)」という機能が提供されています。

本記事では、「互換表示リスト(互換表示一覧)」の動作仕様について説明します。

  1. 互換表示設定から追加
  2. リストに追加すると何が起こるのか?
  3. 互換表示リストの設定内容を無効化させる方法

1. 互換表示設定から追加

Altキーを押下すると、コマンドバーが表示されます。その後、以下の手順に沿って入力して下さい。
f:id:furoshiki0223:20131124063653p:plain
ウィンドウ「互換表示設定」が表示されるので、以下を設定します。
f:id:furoshiki0223:20131124063706p:plain

※ IE8〜10には「互換表示ボタン」という機能があり、これを利用すれば互換表示リストへの登録が簡単に行えましたが、11からは削除されています。

2. リストに追加すると何が起こるのか?

常に、IE7 Standardモード(IE7の機能のエミュレート)として動作します。

3. 互換表示リストの設定内容を無効化させる方法

★ ドメイン単位での無効化(開発者向け)

X-UA-Compatibleへ以下の値を設定すると、互換表示リストへの追加は無視されます。

  • IE=EmulateIE11 : 最新のレンダリングエンジンで動作。
  • IE=EmulateIE10 : IE10モードで動作。(※製品の不具合動作)
  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=11 : 最新のレンダリングエンジンで動作
  • IE=10 : IE10の機能をエミュレートするレンダリングエンジンで動作
  • IE=9 : IE9の機能をエミュレートするレンダリングエンジンで動作
  • IE=8 : IE8の機能をエミュレートするレンダリングエンジンで動作
  • IE=5 : IE5の機能をエミュレートするレンダリングエンジン(Quirksモード)で動作

IE11には一部不具合が含まれていますが、Quirksモードへの遷移条件はIE10と同じです。
>> IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。設定の方法は、以下を参照して下さい。

>> IE11のX-UA-Compatibleの使い方/動作仕様

★ 全てのリストを無効化(IT管理者向け)

Windowsレジストリを利用して、無効化する方法もあります。

>> 互換表示機能をWindowsレジストリを利用して無効化する方法

IE10の互換表示リスト(互換表示一覧)の使い方/動作仕様

IE10には、正常な動作が行えない古いWebコンテンツを利用できるようにするために、「互換表示リスト(互換表示一覧)」という機能が提供されています。

本記事では、「互換表示リスト(互換表示一覧)」の動作仕様について説明します。

  1. 設定方法1 - 互換表示ボタンからの追加
  2. 設定方法2 - 互換表示設定から追加
  3. リストに追加すると何が起こるのか?
  4. リストへ追加されても、互換表示させない方法

1. 設定方法1 - 互換表示ボタンからの追加

アドレスバーの右にある、割れたアイコンのボタンをクリックして下さい。

f:id:furoshiki0223:20131124035233p:plain

>> (詳細はこちら)IE10の互換表示ボタンの使い方/動作仕様

※互換表示ボタンがアドレスバーの横に表示されない場合、次の手順が必要です。

2. 設定方法2 - 互換表示設定から追加

Altキーを押下すると、コマンドバーが表示されます。その後、以下の手順に沿って入力して下さい。
f:id:furoshiki0223:20131124063653p:plain
ウィンドウ「互換表示設定」が表示されるので、以下を設定します。
f:id:furoshiki0223:20131124063706p:plain

3. リストに追加すると何が起こるのか?

動作モードに応じて、以下のような振る舞いをします。

  • Standardモードの場合 : IE7 Standardモード(IE7の機能のエミュレート)として動作します。
  • Quirksモードの場合 : IE5 quirksモード(IE5の機能のエミュレート)として動作します。(※デフォルトのQuirksモードは、IE5と完全な互換性を持ちません。)

StandardモードとQuirksモードについては、以下のドキュメントを参照して下さい。
>> IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え

4. リストへ追加されても、互換表示させない方法

★ ドメイン単位での無効化(開発者向け)

X-UA-Compatibleへ以下の値を設定すると、互換表示リストへの追加は無視されます。

  • IE=EmulateIE10 : DOCTYPE宣言に応じて、IE10モードかQuirksモード(IE5)を選択する。(※実質的無効化)
  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=10 : 最新のレンダリングエンジンで動作
  • IE=9 : IE9の機能をエミュレートするレンダリングエンジンで動作
  • IE=8 : IE8の機能をエミュレートするレンダリングエンジンで動作
  • IE=5 : IE5の機能をエミュレートするレンダリングエンジン(Quirksモード)で動作

>> IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。設定は、以下を参照して下さい。

>> IE10のX-UA-Compatibleの使い方/動作仕様

★ 全てのリストを無効化(IT管理者向け)

Windowsレジストリを利用して、無効化する方法もあります。

>> 互換表示機能をWindowsレジストリを利用して無効化する方法

IE9の互換表示リスト(互換表示一覧)の使い方/動作仕様

IE9には、正常な動作が行えない古いWebコンテンツを利用できるようにするために、「互換表示リスト(互換表示一覧)」という機能が提供されています。

本記事では、「互換表示リスト(互換表示一覧)」の動作仕様について説明します。

  1. 設定方法1 - 互換表示ボタンからの追加
  2. 設定方法2 - 互換表示設定から追加
  3. リストに追加すると何が起こるのか?
  4. 互換表示リストの設定内容を無効化させる方法

1. 設定方法1 - 互換表示ボタンからの追加

アドレスバーの右にある、割れたアイコンのボタンをクリックして下さい。

f:id:furoshiki0223:20131124035233p:plain

>> (詳細はこちら)IE9の互換表示ボタンの使い方/動作仕様

※互換表示ボタンがアドレスバーの横に表示されない場合、次の手順が必要です。

2. 設定方法2 - 互換表示設定から追加

Altキーを押下すると、コマンドバーが表示されます。その後、以下の手順に沿って入力して下さい。
f:id:furoshiki0223:20131124063653p:plain
ウィンドウ「互換表示設定」が表示されるので、以下を設定します。
f:id:furoshiki0223:20131124063706p:plain

3. リストに追加すると何が起こるのか?

動作モードに応じて、以下のような振る舞いをします。

  • Standardモードの場合 : IE7 Standardモード(IE7の機能のエミュレート)として動作します。
  • Quirksモードの場合 : Quirksモード(IE5の機能のエミュレート)のままです。変化しません。

StandardモードとQuirksモードについては、以下のドキュメントを参照して下さい。
>> IE9のDOCTYPEスイッチによるStandard/Quirksモードの切り替え

4. リストへ追加されても、互換表示させない方法

★ ドメイン単位での無効化(開発者向け)

X-UA-Compatibleへ以下の値を設定すると、互換表示リストへの追加は無視されます。

  • IE=EmulateIE9 : DOCTYPE宣言に応じて、IE9モードかQuirksモード(IE5)を選択する。(※実質的無効化)
  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=9 : 最新のレンダリングエンジンで動作
  • IE=8 : IE8の機能をエミュレートするレンダリングエンジンで動作
  • IE=5 : IE5の機能をエミュレートするレンダリングエンジン(Quirksモード)で動作

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。設定には、以下のページを参考にして下さい。

IE9のX-UA-Compatibleの使い方/動作仕様

★ 全てのリストを無効化(IT管理者向け)

Windowsレジストリを利用して、無効化する方法もあります。

>> 互換表示機能をWindowsレジストリを利用して無効化する方法

IE8の互換表示リスト(互換表示一覧)の使い方/動作仕様

IE8には、正常な動作が行えない古いWebコンテンツを利用できるようにするために、「互換表示リスト(互換表示一覧)」という機能が提供されています。

本記事では、「互換表示リスト(互換表示一覧)」の動作仕様について説明します。

  1. 設定方法1 - 互換表示ボタンからの追加
  2. 設定方法2 - 互換表示設定から追加
  3. リストに追加すると何が起こるのか?
  4. 互換表示リストの設定内容を無効化させる方法

1. 設定方法1 - 互換表示ボタンからの追加

アドレスバーの右にある、割れたアイコンのボタンをクリックして下さい。

f:id:furoshiki0223:20131124031736p:plain

>> (詳細はこちら)IE8の互換表示ボタンの使い方/動作仕様

※互換表示ボタンがアドレスバーの横に表示されない場合、次の手順が必要です。

2. 設定方法2 - 互換表示設定から追加

f:id:furoshiki0223:20131124060017p:plain
※ウィンドウ上方にこのバーが見当たらない場合、「表示(V)」→「ツール バー(T)」→「コマンド バー(C)」にチェックを入れて下さい。

f:id:furoshiki0223:20131124060032p:plain

3. リストに追加すると何が起こるのか?

Quirksモード(IE5の機能のエミュレート)として動作します。(※2013.12.17:誤りでした)
IE7モードとして動作します。

4. 互換表示リストの設定内容を無効化させる方法

★ ドメイン単位での無効化(開発者向け)

互換表示リストは、X-UA-Compatibleと競合した場合、X-UA-Compatibleの内容を優先するという特性を持ちます。この制御パラメータを利用することで、設定内容を無効化させることができます。

  • IE=EmulateIE8 : DOCTYPE宣言に応じて、IE8モードかQuirksモード(IE5)を選択する。
  • IE=EmulateIE7 : DOCTYPE宣言に応じて、IE7モードかQuirksモード(IE5)を選択する。
  • IE=8 : 必ずIE8モードを選択する。
  • IE=7 : 必ずIE7モードを選択する。

>> IE8のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

X-UA-Compatibleの設定は、HTMLドキュメント上で設定するか、HTTP レスポンスヘッダで設定するかのどちらかを選択できます。詳しくは、以下のドキュメントを参考にして下さい。

>> IE8のX-UA-Compatibleの使い方/動作仕様

★ 全てのリストを無効化(IT管理者向け)

Windowsレジストリを利用して、無効化する方法もあります。

>> 互換表示機能をWindowsレジストリを利用して無効化する方法

IE10のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

IE10には、古いIEの動作とHTML5との相互運用を可能としたレンダリングエンジンとして動作するQuirksモードと、最新のレンダリングエンジンとして動作するStandardモードがあります。HTMLドキュメントの一番上でのDOCTYPE宣言を行うことにより切り替えを行います。

IE10の場合、「X-UA-Compatibe」へ「IE=EmulateIE」というパラメータを与えることにより、過去のIEの動作を再現させることができます。EmulateIEは、5/7/8/9の3種類を持っています。5を指定すると常に「Quirksモード」として動作しますが、7/8/9の場合、DOCTYPE宣言の内容によって「Quirksモード」か「IE7/8/9 Standardモード」のどちらかへ遷移します。

▼ HTMLドキュメント内で宣言する場合

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />

▼ HTTP Response Headerで指定する場合

X-UA-Compatible:IE=EmulateIE9

EmulateIEを指定した場合もそうでない場合も、Quirksモードへの判定条件は変化しません。このため、本記事ではEmulateIEを指定している状態で、IE7/8/9 Standardモードになる場合も「Standardモード」として扱います。

DOCTYPEスイッチ一覧

Quirksモードを「Q」、Standardモードを「S」と表記します。

HTML1系

Q 無し

HTML2系

Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
S <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN">

HTML3系

Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

HTML4系

Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

XHTML1系

S <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
S <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

HTML5系

S <!DOCTYPE html>

IE5 quirksモードについて

IE6〜10までのQuirksモードはIE5の動作を再現するためにありましたが、IE10からは方針を変更し、HTML5標準との相互運用を行うための仕様変更が行われました。このため、公式的にIE5とは互換性がなくなっています。

代替の手段として、IE10にはIE5の動作を再現させる「IE5 quirksモード」という別のドキュメントモードを用意しています。これを利用すれば、以前のQuirksモードと同じ動作を再現させることが可能です。

対策には、以下のリンクを参照して下さい。

>> IE6〜9とIE10とでQuirksモードの動作が違う、どうすれば解決できるか?

IE9のDOCTYPEスイッチによるStandard/Quirksモードの切り替え一覧表

IE9には、IE5の動作を再現させるQuirksモードと、最新のレンダリングエンジンとして動作するStandardモードがあります。HTMLドキュメントの一番上でのDOCTYPE宣言を行うことにより切り替えを行います。

IE9の場合、「X-UA-Compatibe」へ「IE=EmulateIE」というパラメータを与えることにより、過去のIEの動作を再現させることができます。EmulateIEは、5/7/8の3種類を持っています。5を指定すると常に「Quirksモード」として動作しますが、7/8の場合、DOCTYPE宣言の内容によって「Quirksモード」か「IE7/8 Standardモード」のどちらかへ遷移します。

▼ HTMLドキュメント内で宣言する場合

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

▼ HTTP Response Headerで指定する場合

X-UA-Compatible:IE=EmulateIE8

EmulateIEを指定した場合もそうでない場合も、Quirksモードへの判定条件は変化しません。このため、本記事ではEmulateIEを指定している状態で、IE7/8 Standardモードになる場合も「Standardモード」として扱います。

DOCTYPEスイッチ一覧

Quirksモードを「Q」、Standardモードを「S」と表記します。

HTML1系

Q 無し

HTML2系

Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
S <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN">

HTML3系

Q <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

HTML4系

Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Q <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

XHTML1系

S <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
S <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
S <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
S <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
このブログの筆者について

川田 寛

コンテンツサービスの開発や運営代行を専門とする集団「株式会社ブートストラップ」の社長です。ネットではふろしきと呼ばれています。

2009年にNTTグループへ新卒入社し、ITエンジニアとしてクラウド技術・Web技術の研究開発と技術コンサルティングに従事。2015年よりピクシブに入社し、エンジニアリングマネージャー・事業責任者・執行役員CCOなど、様々な立場からコンテンツサービスの事業づくりに関わりました。2021年にメディアドゥへVPoEとしてジョインし出版関係の事業に関わったのち、2023年に独立しています。

関わってきたインターネット事業としては、ECサービスのBOOTH、UGCプラットフォームのpixiv(主に海外展開)、制作ツールのpixiv Sketch、VR・VTuber関連ではVRoid、Wikiサービスのピクシブ百科事典など、10を超える多様なCtoCコンテンツサービス。また、NTTドコモのすご得コンテンツ、メディアドゥのWeb3サービスであるFanTopなど、いくつかのBtoCコンテンツサービスにも関わってきました。

幸運なことに、私はコンテンツに関係する幅広いインターネットサービスのテクノロジー&ビジネスの知識を得ることができました。これを日本のコンテンツ発展に役立てたいと思い、株式会社ブートストラップを創業しました。

このブログでは現在、出版社やIPホルダー、ライセンサーといったコンテンツに関わる人々に向けて、インターネット事業に関するTipsや業界内のトレンドなどの情報を発信しています。私と話をしてみたいという方は、以下のフォームより気軽にご連絡ください。

お問い合わせフォーム