Mitigation Strategies and Solutions

This section walks you through some basic mitigation steps, and helps you plan for future application compatibility while addressing key issues at hand.

Organizations can take a simple remediation approach that can be handled by IT professionals to tackle minor non-code fixes. Organizations can also employ a more formal remediation approach, involving code changes to support the latest standards of Internet Explorer, which requires web developer involvement. Finally, a third option is available through the technique of virtualization. All three of these are discussed in this topic.

Simple remediation approach

In some cases, design change causes compatibility issues that can be fixed by a simple remediation approach. There are several tools from Microsoft and third party vendors that help IT pros and developers in the remediation process.

For more information about design change, see Browser Changes from Internet Explorer 6 to Internet Explorer 9.

For a list of Microsoft tools, see Appendix 2: Tools for Debugging Web Applications and Add-ons.

Ensuring documents remain compatible with future browser releases is an important concern for web developers. Internet Explorer 9 provides the ability to control document compatibility modes, which enable developers to instruct the browser to render webpages in the same way as older versions of the browser. This feature also allows the developer to choose when to update the webpage while it continues to be usable and function correctly.

Attempt a fix using Compatibility View

Compatibility View is a feature of Internet Explorer 9 that allows the browser to render the webpage nearly identically to the way that Internet Explorer 7 would render it.

For specific details about Compatibility View, see the Internet Explorer Team Blog.

What is Compatibility View?

In Internet Explorer 9, Compatibility View changes the way the browser interprets code written in CSS, HTML, the Document Object Model (DOM), and the JavaScript engine to try to match that of Internet Explorer 7. This means viewing a site in Internet Explorer 9 Compatibility View will be almost identical to viewing a site in Internet Explorer 7. However, compatibility view does not change the way all code is interpreted by the browser. For example, the changes made to Internet Explorer 9 in relation to how the browser handles ActiveX®, networking, and security may still cause website or web application incompatibilities. These behaviors are largely unchanged by the Compatibility View feature.

For more information, see Differences between IE8 Compatibility View and IE7.

For further reading on the differences between Compatibility View and Internet Explorer 7, see the Site Compatibility and Internet Explorer 8 blog.

In an enterprise environment, some areas have lower risk for compatibility issues. For example, Intranet Zone websites use Compatibility View by default. Client web applications that render using the Web Browser Control, or the WebOC, are also low risk for compatibility issues. This is because Internet Explorer 8 and Internet Explorer 9 default to a compatibility mode for the WebOC. However, the default configuration settings for Compatibility View may not be enough to ensure complete compatibility. The best way to know if a website or web application is compatible with Internet Explorer 9 is by testing it.

Why do you need Compatibility View?

When Microsoft looked at compatibility issues in legacy web applications, it was clear that customers could benefit from the ability to have their browser render as it had in previous versions. One of the challenges with delivering this feature to users is to make it as seamless and invisible as possible. The Compatibility View feature follows a set of rules in an attempt to display content correctly, without any user (or IT administrator) action needed. The feature provides mechanisms for developers to instruct the browser which rendering engine to use, as well as the ability for users to override the browser’s choice and enable them to switch modes. When neither the developer nor the IT pro specifies which rendering mode to use, the user will see the broken page icon.

Clicking the icon instructs Internet Explorer 8 and Internet Explorer 9 to switch rendering modes, and the user will see the page reload instantly. Note that users will not always see this icon – its goal is to provide users with a fallback solution rather than serve as the primary application compatibility mechanism. Internet Explorer only displays this button when toggling into Compatibility View makes sense, such as when viewing Standards mode pages. In all other cases, such as when viewing Quirks mode pages or viewing intranet zone sites, the button is not displayed.

For more information about the goals of the Compatibility View feature and when the icon will display, see Introducing Compatibility View.

How do I enable Compatibility View?

There are several ways to enable the Compatibility View feature, and this list is provided to help understand using it for a testing process only. If testing shows that Compatibility View resolves the issue, we recommend that organizations use Group Policy (GP) to control the Compatibility View feature in an enterprise-wide deployment. By default, Compatibility View is enabled for the Intranet Zone, helping to ensure that line-of-business applications work without needing additional modifications. Also, extranet applications, often managed by outsourcing partners, are typically not seen as intranet sites and may need to be included in GP settings. Information about using GP with Compatibility View is included later in this document.

Additional methods for enabling Compatibility View:

  • In the Tools menu, select Compatibility View.

    This places a checkmark next to the Compatibility View item on the menu list, indicating the browser is currently using Compatibility View.

  • Compatibility View can also be enabled through the Developer Tools, which is launched by pressing the F12 key or selecting Developer Tools from the Tools menu. Starting with Internet Explorer 9, there is an option to set Browser Mode to Internet Explorer 9 Compatibility View, which automatically switches Document Mode to IE7 Standards. The Browser Mode setting modifies the UA String reported (changing it from MSIE 9.0 or MSIE 8.0 to MSIE 7.0) and adjusts the version vector which is used by CSS and JavaScript within the documents. The Document Mode setting modifies page rendering. This allows you to force the page to render in one of the three modes (Quirks Mode, Internet Explorer 7 Standards, or Internet Explorer 8 Standards) without modifying the UA String reported to the web application. Be aware that any changes to Document Mode and Browser Mode made in the Developer Tools persist for the lifetime of the tab session.

    For more information about the differences between Browser Mode and Document Mode, see Testing in Different Browser and Document Modes.

  • Enable the EmulateIE7 X-UA_Compatible header. Unlike the previous methods to enable Compatibility View, this method is done using HTML code inserted directly into the page(s) themselves. This method requires making changes either to the server settings (using a HTTP header tag) or on a page level header (using the EmulateIE7 Meta tag). For more information about using the Meta tag, refer to the next section.

    For more information about using a HTTP header tag, see Implementing the META Switch on IIS.

    For more information about using the EmulateIE7 Meta tag, see META Tags and Locking in Future Compatibility and the information that follows in this section.

  • Use the Compatibility View list. This option works if your site is either on the Compatibility View list maintained by Microsoft, or if you manually add a URL to the local Compatibility View list through Compatibility View Settings on the Tools menu. You can check if your web domain is already on the Microsoft-managed compatibility view list in Internet Explorer 9 by visiting the live server version of the list at http://ie9cvlist.ie.microsoft.com/ie9CompatViewList.xml. There is also a local cached version of the Microsoft-managed Compatibility View List located at this file path: File:\\%LOCALAPPDATA%\Microsoft\Internet Explorer\IECompatData\iecompatdata.xml

    For more information, see the following resources:

In addition to this application compatibility guidance document, Microsoft has created the Internet Explorer Readiness Toolkit as a resource to aid in migration planning and issue mitigation.

If Compatibility View resolves the issue

If you enable Compatibility View in Internet Explorer 8 or Internet Explorer 9, and this successfully resolves the issues you were experiencing with the website or web application, the best course of action is to enable Compatibility View using Group Policy. Then plan to update any code using the latest set of adopted web standards for the next release of your web application or website. While Microsoft is committed to supporting the Internet Explorer 8 and Internet Explorer 9 products throughout their respective lifecycles, we recommend that organizations not rely only on legacy rendering modes. You should also opt in all new applications to Standards mode using the Meta tag or header. To ensure forward compatibility in the future, web applications should be coded for currently adopted web standards.

Web standards are constantly evolving and changing. As such, compatibility is an issue that will need to be addressed as your organization moves forward. Browsers are continually being improved to become more compliant, not less compliant, with the newest web standards; consequently, your web-based applications and websites should be updated to match the newest browser standards as well.

If Compatibility View does not resolve the issue

Some older applications specifically coded for Internet Explorer 6 may not work in Compatibility View. For these applications, there is an alternative remediation option with setting the website to Quirks mode. Quirks mode is a backwards compatibility mode that is approximately equivalent to the rendering behavior in Internet Explorer 5.5. To check whether a website renders properly in Quirks mode, testers can set Internet Explorer 9 to Quirks mode by using Developer Tools. If Quirks mode mitigates site compatibility issues, IT Pros can add the site to the Quirks mode policy list using Group Policy. If Quirks mode does not mitigate compatibility issues, IT pros will need to look to alternate methods of remediating the site. This could include asking the site developer to remediate the website or using virtualization as a workaround with MED-V, Terminal Services, or Windows XP Mode.

Use the Meta tag or HTTP header to ensure future compatibility

By using the Meta tag’s content attribute, developers can specify the mode content is rendered in for the webpage. To ensure the content is displayed using the Internet Explorer 8 standards rendering mode, specify the value of IE=EmulateIE8 or IE=8. To ensure the content is displayed using the Internet Explorer 9 standards rendering mode, specify the value of IE=EmulateIE9, or IE=9. To ensure the content is displayed by Internet Explorer 9 using the Internet Explorer 7 rendering behavior, specify the value of IE=EmulateIE7 or IE=7. To ensure the content is displayed using the Internet Explorer 5.5, or Quirks, rendering behavior, specify the value of IE=5.

For further information about compatibility and the X-UA-Compatible header, see Defining Document Compatibility.

Microsoft recognizes that websites may contain thousands (or tens of thousands) of individual pages, so setting this value on each document is impractical. If your site works by setting the Meta tag for all pages or a collection of pages selected by folder, the recommendation is to adjust your server configuration and add the X-UA-Compatible metadata in the HTTP header.

The following table describes document compatibility modes in Internet Explorer 9:

Content value Meaning

IE=5

“Quirks” Mode.

IE=7

Always use Internet Explorer 7 mode.

IE=EmulateIE7

Display in Internet Explorer 7 mode unless site has Quirks DOCTYPE.

IE=8

Always use Internet Explorer 8 mode.

IE=EmulateIE8

Display in Internet Explorer 8 mode unless the site has a Quirks DOCTYPE. Also, use this tag to override Compatibility View on client machines and force Internet Explorer 8 mode.

IE=Edge

Display in latest mode; in Internet Explorer 9, this is equivalent to IE=9.

IE=9

Always use Internet Explorer 9 mode.

IE=EmulateIE9

Display in Internet Explorer 9 mode unless the site has a Quirks DOCTYPE. Also, use this tag to override Compatibility View on client machines and force Internet Explorer 9 mode

Managing Compatibility View with Group Policy

Internet Explorer 9 has over 1500 Group Policy entries that can be configured for keeping your environment managed and safe. Configuring these for the first time may seem like a daunting task. This section provides recommendations for the following important areas: security, performance, and compatibility with Internet Explorer 8, Internet Explorer 7, and Internet Explorer 6.

To enable Compatibility View for all sites using Group Policy, regardless of Zone determination, set the following policy object to Enabled:

Policy object Location

Turn on Internet Explorer 7 Standards Mode

Windows Components\Internet Explorer\Compatibility View

 

To enable Compatibility View for all Intranet Zone sites using Group Policy, set the following policy object to Disabled:

Policy object Location

Turn on Internet Explorer Standards Mode for Local Intranet

Windows Components\Internet Explorer\Compatibility View

To ensure your users are using the compatibility list maintained by Microsoft, set the following policy object to Enabled:

Policy object Location

Include updated Web site lists from Microsoft

Windows Components\Internet Explorer\Compatibility View

 

To set websites to display in Compatibility View using Group Policy, set the following policy object to Enabled, and add your list of sites:

Policy object Location

Use Policy List of Internet Explorer 7 sites

Windows Components\Internet Explorer\Compatibility View

Users will be able to add or remove sites manually to their local Compatibility View list, but they will not be able to remove the sites you specifically added.

To set websites to display in Quirks mode using Group Policy, set the following policy object to Enabled and add your list of sites.

Policy object Location

Use Policy List of Quirks Mode sites

Windows Components\Internet Explorer\Compatibility View

By configuring the Site-to-Zone assignment list, you can control which security zone settings are applied to specified sites.

Policy object Location

Site to Zone Assignment List

Windows Components\Internet Explorer\Internet Control Panel\Security Page

 

By configuring security policy, you can restrict users from making configuration changes.

Policy object Location

Disable the Security Page

Windows Components\Internet Explorer\Internet Control Panel

 

To turn off Data Execution Prevention (DEP), set the following policy object to Enabled.

Policy object Location

Turn off Data Execution Prevention

Windows Components\Internet Explorer\Security Features

For a comprehensive list of all settings included in the administrative template files delivered with Internet Explorer 9, see the Group Policy Settings Reference for Internet Explorer 9 spreadsheet.

For more information about Group Policy and Internet Explorer 9, see Group Policies in Internet Explorer 9.

Remediating ActiveX installation for standard users

An ActiveX control is a piece of executable code (typically an OCX file packaged within a cabinet file) that is installed and invoked by the user through Internet Explorer. Web developers create ActiveX controls to add functionality to their web applications that they cannot easily achieve with standard HTML or a simple script. One common hurdle in the development of a secure desktop environment is how to mitigate the threats surrounding malicious ActiveX controls, while still providing an appropriate level of application compatibility in your environment.

A key feature of ActiveX controls is their simple "download and execute" deployment model. ActiveX controls are installed and invoked through the HTML object tag, which has an attribute called CODEBASE that tells Internet Explorer (using a URL) where to get the control if it is not already installed on the user’s computer. In that case, Internet Explorer downloads the associated installation package, performs trust verification on the object, and prompts the user for installation permission in the Internet Explorer Information Bar. During the installation, the control is registered and invoked by the rendering page. Once installed, the control can be invoked by any standard user. This simple mechanism of distribution and execution is meant to provide developers with an easy way to distribute their components to users of their web application. The problem with this distribution method is that standard account users cannot directly install per-computer ActiveX controls. Administrator privileges may be required to complete the installation.

The ActiveX Installer Service (AXIS) enables IT professionals to manage the deployment of ActiveX controls by using Group Policy on computers in an organization. The options and sites used by the ActiveX Installer Service are configured by Group Policy settings, which can be modified by using either the Group Policy Management Console (GPMC) or the Local Group Policy editor. There are two policy settings for the ActiveX Installer Service: Approved Installation Sites for ActiveX Controls and ActiveX installation policy for sites in trusted zones. The Approved Installation Sites for ActiveX Controls policy setting consists of a list of approved installation sites, which the ActiveX Installer Service uses to determine whether an ActiveX control can be installed. The ActiveX installation policy for sites in Trusted zones policy setting identifies the methods by which Trusted sites zones can be used to install ActiveX controls. When a website attempts to install an ActiveX control, the ActiveX Installer Service checks to see if the URL of the Web site is listed in either the list of approved installation sites or as part of the trusted sites zone. If the site is on either of these, the ActiveX Installer Service checks to make sure that the site meets the requirements defined by the policy. If the site and the ActiveX control meet all of the requirements of the policy settings, the control is installed.

For more information, see Administering the ActiveX Installer Service.

Virtualization approach

Application compatibility is one of the main reasons why organizations may be reluctant to upgrade to the latest version of the Windows operating system. Organizations may rely on an important line-of-business application that must run in the Windows XP operating system, for example, or they may have a critical intranet site that was built to run in Internet Explorer 6. Additionally, they may not have the time or the resources they need to rebuild, refit, or upgrade these applications.

If an organization is considering an upgrade to Windows 7 and has a large number of legacy web applications to be tested and migrated to the latest version of Internet Explorer, IT pros can use virtualization technologies to address this temporarily. (Note that they should simultaneously work on remediating the web applications to run natively in the newer version of Internet Explorer.) The three Microsoft supported virtualization options most appropriate for virtualizing web applications built for Internet Explorer 7 and Internet Explorer 6 are MED-V, Windows XP Mode, and Terminal Services.

For more information about virtualization options, see Solutions for Virtualizing Internet Explorer.

Microsoft has produced the following webcasts that introduce the supported Internet Explorer virtualization options:

Formal remediation approach

If enabling Compatibility View and other simple fixes do not resolve the compatibility issues you are experiencing with your web applications, you will need to update the source code. This ensures that the web application or website works natively in Internet Explorer 9 in at least one of the four rendering modes it provides (Internet Explorer 9 standards, Internet Explorer 8 standards, Internet Explorer 7 standards, or Quirks). Identify application owners and development resources to tackle the compatibility issues of critical business applications by putting together a formal remediation plan.

For organizations that are already running Internet Explorer 9, the Internet Explorer 9 Compatibility Cookbook is the primary resource for developers to learn about the developer features that have been changed or deprecated since Internet Explorer 8.

For organizations that are currently running Internet Explorer 6, Internet Explorer 7, or Internet Explorer 8, see Appendix 1: Internet Explorer 6 to Internet Explorer 9 Browser Changes in this document.