A compatibility mode is a software mechanism in which a software either emulates an older version of software, or mimics another operating system in order to allow older or incompatible software or files to remain compatible with the computer's newer hardware or software. Examples of the software using the mode are operating systems and Internet Explorer.

Operating systems
A compatibility mode in an operating system is a software mechanism in which a computer's operating system emulates an older processor, operating system, and/or hardware platform in order to allow older software to remain compatible with the computer's newer hardware or software.

This differs from a full-fledged emulator in that an emulator typically creates a virtual hardware architecture on the host system, rather than simply translating the older system's function calls into calls that the host system can understand.

Examples include Classic Mode in Mac OS X and compatibility mode in Microsoft Windows, which both allow applications designed for older versions of the operating system to run.  Other examples include Wine to run Windows programs on Linux / OS X and Mono to run .NET programs on various Unix-like systems.

Internet Explorer
"Compatibility View" is a compatibility mode feature of the web browser Internet Explorer in version 8 and later. When active, Compatibility View forces IE to display the webpage in Quirks mode as if the page were being viewed in IE7. When compatibility view is not activated, IE is said to be running in native mode. In IE11, a user can turn on compatibility mode for a web site by clicking the Gears icon and clicking Compatibility View Settings.

IE8+ 
Internet Explorer 8 was promoted by Microsoft as having stricter adherence to W3C described web standards than Internet Explorer 7. As a result, as in every IE version before it, some percentage of web pages coded to the behavior of the older versions would break in IE8. This would have been a repetition of the situation with IE7 which, while having fixed bugs from IE6, broke pages that used the IE6-specific hacks to work around its non-compliance. This was especially a problem for offline HTML documents, which may not be updatable (e.g. stored on a read-only medium, such as a CD-ROM or DVD-ROM).

To avoid this situation, IE8 implemented a form of version targeting whereby a page could be authored to a specific version of a browser using the X-UA-Compatible declaration either as a meta element or in the HTTP headers.

In order to maintain backwards compatibility, sites can opt into IE7-like handling of content by inserting a specially created meta element into the web page that triggers compatibility mode in the browser, using:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

A newer version of the browser than the page was coded for would emulate the behavior of the older version, so that the assumptions the page made about the browser's behavior hold true.

Microsoft proposed that a page with a doctype that triggers standards mode (or almost standards mode) in IE7 would, by default, trigger IE7-like behavior, called "standards mode" (now called "strict mode") in IE8 and future versions of IE. The new features of IE8 are enabled to trigger what Microsoft called the "IE8 standards mode" (now called "standards mode"). Doctypes that trigger quirks mode in IE7 will continue to do so in IE8.

Peter Bright of Ars Technica claimed that the idea of using a meta tag to pick a specific rendering mode fundamentally misses the point of standards-based development but positioned the issue as one of idealism versus pragmatism in web development, noting that not all of the Web is maintained, and that "demanding that web developers update sites to ensure they continue to work properly in any future browser version is probably too much to ask."

The result for IE 8 Beta 1 was that it could render three modes: "Quirks," "Strict," and "Standard." When there is an old DOCTYPE or when there is no DOCTYPE, IE renders it like IE5 would (quirks mode). When a special meta element or its corresponding HTTP header is included in a web page, IE8 will render that page like IE7 would (strict mode). Otherwise, IE8 renders pages with its own engine (standard mode). Users can switch between the three modes with a few clicks. The release of Internet Explorer 8 Beta 1 revealed that many web sites do not work in this new standards mode.

Microsoft maintains a list of websites that have been reported to have problems in IE8's standards mode, known as the compatibility view list. When a user enables this list IE8 will render the websites in the list using its compatibility view mode. The list is occasionally updated to add newly reported problematic websites, as well as to remove websites whose owners have requested removal. The Internet Explorer team also tests the websites on the list for compatibility issues and removes those where none are found.

See also
 Windows XP Mode
 Legacy mode
 Backward compatibility
 Quirks mode
 Program information file (PIF)

References

Internet Explorer
Interoperability
Windows software
MacOS software
Linux emulation software
호환성 모드(Compatibility mode)는 오래되었거나 호환되지 않는 소프트웨어나 파일이 컴퓨터의 최신 하드웨어나 소프트웨어와 계속 호환되도록 하기 위해 소프트웨어가 이전 버전의 소프트웨어를 에뮬레이션하거나 다른 운영 체제를 모방하는 소프트웨어 메커니즘이다. 모드를 사용하는 소프트웨어의 예로는 운영 체제와 인터넷 익스플로러가 있다.

운영체제 
운영체제의 호환성 모드는 이전 소프트웨어가 컴퓨터의 최신 하드웨어 또는 소프트웨어와 계속 호환되도록 하기 위해 컴퓨터 운영 체제가 이전 프로세서, 운영 체제 및 하드웨어 플랫폼을 에뮬레이션하는 소프트웨어 메커니즘이다.

이는 에뮬레이터가 일반적으로 이전 시스템의 함수 호출을 호스트 시스템이 이해할 수 있는 호출로 변환하는 것이 아니라 호스트 시스템에 가상 하드웨어 아키텍처를 생성한다는 점에서 본격적인 에뮬레이터와 다르다.

예를 들어 맥 OS X의 클래식 모드와 마이크로소프트 윈도우의 호환 모드가 있으며, 두 모드 모두 이전 버전의 운영 체제용으로 설계된 응용 프로그램을 실행할 수 있다. 다른 예로는 리눅스/OS X에서 윈도우 프로그램을 실행하는 와인과 다양한 유닉스 계열 시스템에서 .NET 프로그램을 실행하는 모노(Mono)가 있다.

인터넷 익스플로러 
"호환성 보기"는 인터넷 익스플로러 버전 8 이상에서 웹 브라우저의 호환성 모드 기능이다. 활성화되면 호환성 보기는 IE7에서 페이지를 보는 것처럼 웹 페이지를 쿼크(Quirks) 모드로 표시하도록 한다. 호환성 보기가 활성화되지 않은 경우 IE는 기본 모드에서 실행되고 있다고 한다. IE11에서 사용자는 기어 아이콘을 클릭하고 호환성 보기 설정을 클릭하여 웹 사이트에 대한 호환성 모드를 켤 수 있다.

IE8+ 
인터넷 익스플로러 8은 인터넷 익스플로러 7보다 W3C 설명 웹 표준을 더 엄격하게 준수한다고 마이크로소프트에서 홍보했다. 결과적으로 이전의 모든 IE 버전에서와 마찬가지로 이전 버전의 동작으로 코딩된 웹 페이지의 일부 비율이 IE8에서 중단된다. . 이는 IE6의 버그를 수정하면서 비준수 문제를 해결하기 위해 IE6 관련 해킹을 사용하는 페이지를 중단한 IE7의 상황이 반복된 것이다. 이는 특히 업데이트할 수 없는 오프라인 HTML 문서(예: CD-ROM 또는 DVD-ROM과 같은 읽기 전용 매체에 저장됨)에서 문제가 되었다.

이러한 상황을 피하기 위해 IE8은 메타 요소 또는 HTTP 헤더에서 X-UA-Compatible 선언을 사용하여 페이지를 브라우저의 특정 버전으로 작성할 수 있는 버전 타겟팅 형식을 구현했다.

이전 버전과의 호환성을 유지하기 위해 사이트는 다음을 사용하여 브라우저에서 호환성 모드를 트리거하는 웹 페이지에 특별히 생성된 메타 요소를 삽입하여 IE7과 유사한 콘텐츠 처리를 선택할 수 있다.

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

페이지가 코딩된 것보다 최신 버전의 브라우저는 이전 버전의 동작을 에뮬레이션하므로 페이지에서 브라우저의 동작에 대해 가정한 내용이 적용된다.

마이크로소프트는 IE7에서 표준 모드를 트리거하는 문서 유형이 있는 페이지가 기본적으로 IE8 및 향후 버전에서 "표준 모드"(현재 "엄격 모드"라고 함)라고 하는 IE7과 유사한 동작을 트리거할 것을 제안했다. 즉. IE8의 새로운 기능은 마이크로소프트가 "IE8 표준 모드"(현재는 "표준 모드"라고 함)라고 부르는 기능을 트리거할 수 있다. IE7에서 쿼크 모드를 실행하는 독타입(Doctype)은 IE8에서도 계속 작동한다.

아스 테크니카(Ars Technica)의 피터 브라이트(Peter Bright)는 특정 렌더링 모드를 선택하기 위해 메타 태그를 사용한다는 아이디어가 근본적으로 표준 기반 개발의 요점을 놓치고 있지만 이 문제를 웹 개발의 이상주의 대 실용주의 중 하나로 자리매김했다고 주장했다. 유지관리와 더불어 "향후 브라우저 버전에서 계속 제대로 작동하도록 웹 개발자에게 사이트를 업데이트하도록 요구하는 것은 아마도 너무 많은 요청일 것이다."

IE 8 베타 1의 결과는 "Quirks", "Strict" 및 "Standard"의 세 가지 모드를 렌더링할 수 있다는 것이다. 이전 DOCTYPE이 있거나 DOCTYPE이 없는 경우 IE는 이를 IE5처럼 렌더링한다(쿼크 모드). 특수한 메타 요소나 해당 HTTP 헤더가 웹 페이지에 포함되면 IE8은 IE7처럼 해당 페이지를 렌더링한다(엄격 모드). 그렇지 않으면 IE8은 자체 엔진(표준 모드)으로 페이지를 렌더링한다. 사용자는 몇 번의 클릭만으로 세 가지 모드 사이를 전환할 수 있다. 인터넷 익스플로러 8 베타 1이 출시되면서 많은 웹 사이트가 이 새로운 표준 모드에서 작동하지 않는 것으로 나타났다.

마이크로소프트는 IE8의 표준 모드에서 문제가 있는 것으로 보고된 웹 사이트 목록(호환성 보기 목록)을 유지 관리한다. 사용자가 이 목록을 활성화하면 IE8은 호환성 보기 모드를 사용하여 목록의 웹사이트를 렌더링한다. 새로 보고된 문제 웹사이트를 추가하고 소유자가 제거를 요청한 웹사이트를 제거하기 위해 목록이 업데이트되는 경우도 있다. 또한 인터넷 익스플로러 팀은 목록에 있는 웹 사이트의 호환성 문제를 테스트하고 발견되지 않는 웹 사이트를 제거한다.

같이 보기 
 윈도우 가상 PC
 하위 호환성
 쿼크 모드

인터넷 익스플로러
상호운용성
윈도우 소프트웨어
MacOS 소프트웨어
리눅스 에뮬레이션 소프트웨어