ふろしき.js

Web + Mobile + UX + Performance Tech

IE11を裏ワザ的なやり方でDOCTYPEスイッチを有効化する方法

IE11はDOCTYPEスイッチが機能しません。これは恐らく、ドキュメントモードが非推奨へ変わったからでしょう。
(※参考 : ドキュメント モードの非推奨 - Microsoft )

しかしIEはまだ、Quirksモードを内部的に残しています。今までとは異なる手段にはなりますが、有効化することが可能です。ただし、ドキュメントモード非推奨化に伴い、Quirksモードは表向きなくなったという扱いです。「Quirksモード」という表現は、IE11のどこを探しても見つかりません。こうした扱いの変化もあり、制御には少しだけコツが必要です。

内部ドキュメントモードとその表現方法の違い

IE11が内部的に備えている全てのドキュメントモードは、以下の通りです。

  • IE5モード
  • IE7モード
  • IE8モード
  • IE9モード
  • IE10モード+Quirksレイアウト
  • IE10モード
  • Edgeモード(※ IE11の動作)

「IE5モード」は、IE6〜9で提供されていた「Quirksモード」と、IE10で提供されていた「IE5 quirksモード」と同じ扱いのものです。基本的にはIE5の動作をエミュレートします。

対して「IE10モード+Quirksレイアウト」とは、IE10で提供されていた、HTML5との相互運用を図るため機能追加が行われたQuirksモードです。IE10で提供されていたQuirksモードは、IE5との互換性が無いことをMicrosoftが公表しています。
(※参考 : 相互運用可能な (HTML5) Quirks モード - Microsoft )

F12開発者ツールから見えるドキュメントモードは、以下の項目になります。

f:id:furoshiki0223:20131127192830p:plain

5/7/8/9/10/Edgeと、6つにしか見えません。

IE11では、IE10モード+Quirksレイアウトが有効時、表向きには「IE10」という表示がされます。逆にIE10モード+Quirksレイアウトを有効にしたい場合、F12開発者ツールからはそれを指定することができなくなっています。

IE10モード+Quirksレイアウトを有効にするには、X-UA-CompatibleとDOCTYPEスイッチによる合わせ技が必要になります。そしてその指定方法は、Quirksモードとそうでないものが混在するWebシステムを11へ移行した際に、意図せず有効化させてしまう可能性が高い組み合わせであるため、取り扱いには注意が必要です。

X-UA-CompatibleとDOCTYPEスイッチ動作一覧

IE11のX-UA-Compatibleと、DOCTYPEスイッチによるStandard/Quirksモードの切り替えに伴う内部ドキュメントモードは、以下の一覧の通りです。縦軸はX-UA-Compatibleのパラメータ、横軸はDOCTYPEスイッチによる状態切替を表します。

Standard Quirks
5 IE5モード IE5モード
7 IE7モード IE7モード
8 IE8モード IE8モード
9 IE9モード IE9モード
10 IE10モード IE10モード
11 IE11モード IE11モード
EmulateIE7 IE7モード IE5モード
EmulateIE8 IE8モード IE5モード
EmulateIE9 IE9モード IE5モード
EmulateIE10 IE10モード IE10モード+Quirksレイアウト
EmulateIE11 IE11モード IE11モード
Edge IE11モード IE11モード

>> DOCTYPEスイッチの切替条件は、IE10と同じです

最善の対策はあくまで「改修」

X-UA-Compatibleは、HTTPレスポンスヘッダとHTML無いのmeta要素の2箇所で定義されますが、常に後者が優先されます。このため、複数のドキュメントモードを同一システム内で混在させた場合、新しいIEへのバージョンアップにドキュメントモードを活用するケースでは、HTTPレスポンスヘッダを利用することになるでしょう。

IE10モード+Quirksレイアウト特化のシステムは滅多に開発されないことが想定されるため、IE11以降、トラブルを避けるためEmulateIE系のパラメータは利用しないことをオススメします。

そもそもですが、IE11からはドキュメントモードは非推奨です。Microsoftはこれまで一時的な対応策としてこの方法を提供してきましたが、IE12以降は機能として削除される可能性があります。Windows8系では定期的にIEのバージョンアップが強制されるため、本対策を利用してさらにシステムの延命を図ろうとしているのであれば、そのシステムは短命に終わる可能性が高いでしょう。本対策が必要なタイミングはごく稀であると認識して下さい。

正しい移行の方法は、改修を行うことです。

広告を非表示にする