互換モード
互換モード(ごかんモード)の記事では、コンピュータシステムなどの、ハードウェアやプログラム(ソフトウェア)において、本来の状態(互換モードに対して「ネイティブモード」などと呼ばれる)では従来のシステムなどと互換性がないハードウェアなどで、何らかのモード切り換えやエミュレーション、互換レイヤーの導入などにより、従来のシステムとの互換性を持たせるモードについて説明する。
仮想化の機能の一部として提供されることもある。例えば、IA-32における、16ビットx86の互換モードである、仮想86モードなど。
Windows XPやVista、7、8/8.1においては、以前のバージョンのWindowsでしか動かないソフトウェアをインストールや実行を行う際のモードとして互換モードが搭載されている。マイクロソフトの互換性データベースに登録されているソフトは自動的に互換モードで起動されるが、手動で設定することで任意のソフトを互換モードで起動することもできる。なお互換性データベースは「Microsoft Application Compatibility Toolkit」(略称ACT)を使用することで閲覧できる。互換モードで起動するとXPやVista、7で搭載された新機能が一部無効になり、特定のOSや画面の色数、画面サイズでないと動作しないソフトなどで動作に関する問題を解消(あるいは軽減)することができる。
Windowsにおいて互換モードが正式に搭載されたのはXP以降だが、Windows 2000でもサービスパック2 (SP2)以降を適用することで使用できる。Windows 2000では互換モードはデフォルトでは無効のため、使用するには有効にする操作を行う必要がある。
なお、Windows 7(Professinal と Ultimate エディション)では Windows XP Mode と呼ばれるアプリケーションの仮想化による互換性実現機能が搭載された。これは、仮想化された Windows XP を Virtual PC 上で動作させ、その上で旧来のアプリケーションを動作させる方式で、起動したアプリケーションのウィンドウを Windows 7 のデスクトップ上に直接表示させることができる。
Windows 9x系には、MS-DOS時代の周辺機器・アプリケーションとの互換性のために「MS-DOSモード」が搭載されている。これは、Windowsが使用するMS-DOSシステムを用いて、Windowsシステムを終了してMS-DOSそのもののみを起動するものである。
またmacOSでもMac OS X v10.4 (Tiger) までは互換モードにあたる、Mac OS 9をインストールして旧来のClassic Mac OSとの互換性を維持するためのコンポーネントであるClassicが搭載されていたが、Intel Mac移行後のMacでは動作せず、さらにMac OS X v10.5 (Leopard) 以降では完全に廃止された。
Web上にあるHTML文書やCSSには文法ほか記述上の誤りが見られるものがある。これはHTMLやCSSその他の仕様について策定に到るまでの混乱、およびCSSへの対応初期のWebブラウザにおいてCSS解釈を誤っていたことが理由となっている。そのため完全にW3C標準仕様に従ったレンダリングのみを行うと、サイト作成者の意図した通りの表示にならず問題が発生する可能性がある。こうした理由からWebブラウザの中にはHTML文書によって標準仕様に従ったレンダリングを行う「標準モード」(「標準準拠モード」、「Standardモード」とも)と従来の慣行的なレンダリングを行う「互換モード」(「過去互換モード」、「後方互換モード」、「Quirksモード」とも)を切り替えて表示するものがあり、「DOCTYPEスイッチ」などと呼ばれることがある。さらにWebブラウザによっては標準仕様に従いつつも慣行的なレンダリングを一部で残す「準標準モード」(「Almost Standardモード」とも)を搭載しているものもある。さらに各Webブラウザの互換モードの表示にも細かな差異がある。例えば互換モードではボックスモデルの解釈が旧来通りに行われる(widthプロパティの値にボーダーおよびパディングを含めない)ものと標準モードと同じく標準仕様に従うものがある。
DOM Standardでは、以下の3つのモードを定義している。
no-quirks mode
limited-quirks mode
quirks mode
そして、limited-quirks modeおよびquirks modeでの挙動がで定められている。
DOCTYPEスイッチが存在するWebブラウザは次の通りとなっている。
Internet Explorer (Windows版は6.x以降、Macintosh版は5.x)
タブブラウザなどでTridentエンジン(IEコンポーネントブラウザ)のものも含む
Netscape (6以降)
Opera (7.x以降)
OmniWeb (2003年2月以降)
具体的にはHTML文書冒頭でのDOCTYPE宣言により切り替えられる。これはHTML Standardに規定されている。大まかに言って、DOCTYPE宣言を行っていないかHTML3.2以前のものの場合は互換モードに、HTML4.01(のStrictDTD)以降の場合は準標準モードに、現行の<!DOCTYPE html>の場合は標準モードとなる(詳しくは外部リンクを参照のこと)。ただしXHTMLであることを宣言する場合、Windows版Internet Explorer 6.xでは(サーバから文字コードが送信されず、かつ文字コードがUTF-8以外の場合には必須な)XML宣言を行うと互換モードになるバグが存在する。
DOCTYPEスイッチにより標準仕様に従った記述であることを示し、W3Cの仕様に従ったレンダリングをさせることができる。しかしかつてはあえて互換モードで表示するようにWebサイトを製作することも行われていた。これは当時は決して無視できないシェアがあったIE5.x以前と同じ旧来のレンダリングに表示を合わせる、IE6のバグを回避するなどの目的があり、CSSハックとともに用いられていた。その後Webブラウザのシェア変動に伴いIE6までの世代のブラウザの使用率が低下したことにより、こうしたテクニックは廃れつつある。
Microsoft OfficeではOffice 2007においてXMLベースのOffice Open XMLが採用されたが、旧バージョンのOfficeとの互換性を持たせるため、以前のファイル形式で保存しようとすると互換モードに切り替わり、その間は一部の機能の無効化および調整が行われる。また旧バージョン向けにもOffice 2007で使用されるファイル形式Office OpenXMLで保存が可能な「互換機能パック」が配布されている。
HDD/DVDレコーダーはDVD-VRモード、DVD-Videoモードの2種類を備えており、目的により使い分けられる。動画はたいていはDVD-VR規格で保存されるため、VideoモードでDVD-RやDVD-RWなどのディスクに書き込む場合にはDVD-Video規格に変換する必要がある。この変換が行いやすいよう、はじめからDVD-Video規格向けに機能を限定して録画する機能がDVDレコーダーには搭載されており、これがDVD-R互換モード(あるいは「DVD-R高速モード」)などと呼ばれる。録画自体はDVD-VideoモードではなくDVD-VRモードで行われる。DVD-R互換モードでは音声や解像度がDVD-Video規格レベルまでに制限される。