Share via


IE9’s faster, more capable Compatibility View List

We have talked about our goal with IE9 to run the same standards-based markup as other browsers by default. It is also our goal for IE9 to successfully run the Web that you browse today. For sites that are designed to run in older versions of IE, IE9 includes support for compatible document modes and a Compatibility View (CV) List that’s similar to what shipped with IE8.

The CV List and compatible document modes are good for site developers because they enable developers to transition between IE8 and IE9 on their own schedule. We only add a site to the CV List when the site is designed to run in an older version of IE, doesn’t run well in IE9’s Standards mode, and doesn’t declare an X-UA-Compatible meta tag or header. The CV List is good for users because it means that IE9 works great with popular sites the day they upgrade and without users having to click on the Compat View button.

We want the CV List to be as small as possible when IE9 ships and to get smaller over time because more and more of the web works well in IE9 by default. This is good for users and site developers. To achieve this, we want sites to update now to work well in IE9’s Standards mode and serve the same markup they use with other browsers. At a minimum, sites should take advantage of the IE7 or IE8 document mode by declaring an X-UA-Compatible value until they can update.

The IE9 Beta CV List currently has just over one thousand sites listed. This is a third of the size of IE8’s CV List, which originally shipped with 3122 sites listed.

The IE9 CV List is capable of customizing how each website runs.
We want as many sites as possible to render in IE9’s Standards mode so that they can take advantage of HTML5 capabilities and performance improvements. Today many sites use browser detection instead of feature and behavior detection to give IE different markup that is not interoperable with IE9’s Standards mode or other browsers. This can result in major functionality breaks on sites rendered in IE9’s Standards mode.

For example, IE9’s Standards mode strictly follows the createElement() DOM standard to be interoperable with other browsers. A simple test for this behavior is even part of Test 22 of Acid 3, which checks that browsers throw an INVALID_CHARACTER_ERR exception when a webpage tries to pass invalid characters into createElement().

Passing this Acid3 test and being interoperable unfortunately leads to breaking sites with IE-specific code in IE9’s Standards mode. For example, the page header and menus aren’t displayed on verizonwireless.com in IE9’s Standards mode because it relies on IE8’s more lenient behavior for createElement(), which accepts valid HTML in addition to specific element names.

To keep sites working well in IE9’s Standards mode instead of reverting to IE8 or IE7 Document modes, the IE9 CV List includes a new capability called a “featureSwitch.” This makes specific APIs in IE9’s Standards mode behave as they do in previous IE versions.

For example, the IE9 CV List has a “featureSwitch” called “createElementWithMarkup.” This re-enables IE8’s more lenient behavior for createElement() in IE9’s Standards mode, but only for specific sites on the CV List.

<domain docMode="EmulateIE9" featureSwitch="createElementWithMarkup">verizonwireless.com</domain>

We intend to remove feature switches as soon as sites update themselves to use the same markup across browsers. We reserve feature switches for specific, high-impact changes that we’ve found through testing to affect many web sites. We won’t create feature switches for every change in behavior and sites cannot opt-in to them. Instead, sites should opt-in to the IE7 or IE8 Document Mode through the X-UA-Compatible meta tag or header to get compatible until they can update to IE9’s Standards mode.

Sometimes Conditional Comments are used to make webpages work in IE6 and IE7. In IE9’s Standards mode, a site doesn’t need them. The IE9 CV List can make Conditional Comments targeted at old versions of IE work in IE9 Mode or turn them off for a site. This is a temporary solution until the site developer has a chance to make updates to stop using them in IE9’s Standards mode. In addition to featureSwitches and the ability to turn off Conditional Comments, the IE9 CV List can put sites in Compat View, just like the IE8 CV List did. The IE9 CV List can also change the Document Mode that a site renders in to IE7 or IE8.

We’ve updated how we populate the CV List to avoid putting websites on it that don’t need it.
Different from IE8, before adding a site to the IE9 CV List we verify that it is incompatible with IE9. We also verify what Document Mode it works best in. This will help us make sure that we ship with the smallest CV List possible at Beta, RC and RTM.

The CV List continues to be community-data-driven. For the IE9 Beta CV List, we use data from site compat testing and internal usage to determine what sites go on the list. For the RC and RTM CV Lists, we’ll rely more on data from Beta and RC selfhosters.

Process to populate the Compatibility View list. The IE team collects URLs that users click the CV Button on. Test confirms that a site needs to be on the CV list and IE authors and publishes the CV list based on this.

The IE9 CV List is quickly and simply deployed as a webpage.
We just shipped a CV List update to IE9 Beta and it only took a few minutes to ship. We added sites including ted.com, mkb.hu, and hoyts.com.au based on IE9 Beta customer response. The IE9 CV List is an XML file on Microsoft.com. We can update the list daily through this mechanism, which means we can quickly accommodate site developer requests to remove updated sites.

Another benefit of deploying the CV List as a webpage is that users automatically get updates instead of having to download the optional IE8 CV List packages from Windows Update or Download Center (users can opt-out just as easily as IE8 too).

You will be able to view the IE9 Beta CV List on your local machine by navigating to this file path:

File:\\%LOCALAPPDATA%\Microsoft\Internet Explorer\IECompatData\iecompatdata.xml

The server version, which is used to ship updates to IE9 is located here.

Ask to site developers
While verifying that your site works well in IE9 Beta, please check to see if it is on the IE9 Beta CV List here. If it is on the list, uncheck “Include updated website lists from Microsoft” in the Compatibility View Settings (Alt –> Tools --> Compatibility View Settings).

Compatibility View Settings dialog box with 'Include updated website lists from Microsoft' checked

Use IE9’s improved Developer Tools to resolve compatibility issues. Lastly, please email iepo@microsoft.com with the information at the bottom of this webpage and ask to be removed from the IE9 CV List when your updates are live on the web. This will help make sure users have an amazing experience when they install IE9 and browse to your site.

Thanks,
Marc Silbey
Program Manager

Comments

  • Anonymous
    September 29, 2010
    I thank you for vastly improving the web browser. I’ve wondered how Microsoft could improve its own blogging service to take advantage of HTML 5. Over the years, the services and products that Microsoft offers increase. I’ve wondered how many more services or products Microsoft can provide. Recently, Microsoft has announced that it will close its blogging services. Recognizing that millions of users have been actively using Windows Live Spaces, Microsoft gives them a choice to move the WORDPRESS.com, which Microsoft recommends, or simply other blogging services of their own choice. Windows Live Spaces have not been updated for quite a while. Just as Microsoft released IE9 Beta to general public, I do expect consistency among Microsoft’s policies. Recent announcement of the end of Windows Live Spaces, in some ways, do meet my expectations. I’ve moved to WORDPRESS.com by ‘clicking’ the upgrade. I’ve been given a choice to download all the blog posts that I’ve published but I didn’t download them. The blog posts that I previously published on Windows Live Spaces did not appear at WORDPRESS.com right away. I didn’t know if they will ever appear there. What I do know is that my new blog is now using HTML 5 by default, which is kind of surprising to me.

  • Anonymous
    September 29, 2010
    I can see the ads now. "IE9 has a faster, more capable Compatibility View List!!!!!" ::rollseyes::

  • Anonymous
    September 29, 2010
    Stuff compatibility view. All I want from you is the ability to easily run multiple versions of IE on a single OS. I can code around the bugs and limitations of previous versions of IE, but I don't want to boot up multiple VMs just to see if my pages work. Please release stand-alone versions of IE 6, 7 and 8.

  • Anonymous
    September 29, 2010
    @Geoff You don't need VI's... use the Document Mode and Browser Mode menu options on the Devloper tool. You can use the Script tab to inspect the source for the presence of the U-XA meta tag and the Netorking tab for the presence of a U-XA header or an application/xhtml content type header. @MSFT the about urls don't transpose the %localappdata% environment token.... Connect Id: 606981 creating an about url to access the compatibility list does not work... When you run the url File:%LOCALAPPDATA%MicrosoftInternet ExplorerIECompatDataiecompatdata.xml in the address bar the unformated xml values are displayed... connect Id: 606974 I use an about url for the IE8 compatibility list all the time to varify if a site is on the list and to determine if an OP @ answers has switched on the setting to Include Updated web site lists from Microsoft. Other third-party Help Desks would also benefit if an about url for some common settings were available. Regards.

  • Anonymous
    September 29, 2010
    I expect a blog post about revising your release strategy in the near future What are your thoughts on:

  • Release early, release often
  • Self auto-updating Waiting 3 years for a bug fix will be unacceptable in 2011
  • Anonymous
    September 29, 2010
    Rob: your file URI is non-standard, and it's quite possible that MS broke legacy file URI parsing in IE 9. I don't have the beta installed here (work machine), but it might work better if you:

  • used file:/// to reference a file on the local machine

  • used forward slashes / instead of backslashes

  • escaped the % symbols surrounding the environment variable (i.e. use %25) I'm not sure that it will interpret the environment variable here, though. Correct use of file URIs: blogs.msdn.com/.../file-uris-in-windows.aspx Description of 'legacy' file URIs, and how they came about: blogs.msdn.com/.../420059.aspx IE 9 Beta doesn't seem to have the default XML stylesheet (XSLT) as used by IE 8 when encountering an XML document which doesn't specify a stylesheet. This may be a knock-on effect of supporting XHTML.

  • Anonymous
    September 29, 2010
    @ Taciturne MS has to be careful when releasing IE.  They have to deal with business schedules, which none of the other browsers seem to have to deal with.  IE updates itself through Windows Update.  Having its own update cilent would be worthless.  MS has a pretty decent update schedule to begin with.

  • Anonymous
    September 29, 2010
    >>We have talked  about  our  goal  with IE9 to run the same standards-based markup as other browsers by default. That sound like you IE9 will support Webworkers and Websockets :) Cheers

  • Anonymous
    September 29, 2010
    @ Mike Dimmick, @Rob: The lack of a default stylesheet for unstyled XML files when visited at hostless URIs is a known bug in the beta. If you view the file from a network share (e.g. even \127.0.0.1) the stylesheet should be applied correctly.

  • Anonymous
    September 30, 2010
    @Johnnyq3 - "MS has a pretty decent update schedule to begin with."  Not when it comes to IE.  Patch Tuesday is good for bug fixes, security holes etc but actual updates - IE 8.1, 8.2, even 8.5?  Never.  I expect the same with IE9.  If memory serves me correct, the only "interim" release of an IE was 5.5.

  • Anonymous
    September 30, 2010
    Recently installed the IE9 Beta, so far like everything about it. I am having one issue that I have not been able to resolve: When using a popular non-MS search engine, I receive the following messageerror: "While attempting to load module "net.scansafe.searchahead.Bootstrap", user property "user.agent" was set to the unexpected value "unknown"     Allowed values: gecko, gecko1_8, ie6, opera, safari. Also why do I constantly have to hit F10 to get the menu bar to show-up, only to disappear after use and it is checked viewstoolbars.

  • Anonymous
    September 30, 2010
    IE9 renders my website completely illegible... No response on the Connect issue I filed so far. connect.microsoft.com/.../site-rendered-completely-illegible

  • Anonymous
    September 30, 2010
    Does this mean in IE9 that calling: window.open(url, name, features, someInvalidIEonlyParameter); will fail too? and HTMLSelectElement.options.add(HTMLElement, anInvalidIntegerNotAnHTMLElement); will also fail? I certainly agree that it should cause an error, we just need to know if IE9 will correctly implement these methods. Dave

  • Anonymous
    September 30, 2010
    I'm happy about this compatibility list feature, because without it IE9 wouldn't be so far in standards supports it is now. But IMHO in the next IE version it should also incorporate a method for changing the user agent string, so that you could also make more radical changes to the default one.

  • Anonymous
    September 30, 2010
    Will IE9's IE8 compatibility mode be IDENTICAL to the IE8 borwser (quirks, bugs, and all)? Will IE9's IE7 compatibility mode be IDENTICAL to the IE7 borwser (quirks, bugs, and all)? When you released IE8, you gave developers at least 2 additional browsers to test. IE8 and IE7 compatibility mode which is not an identical match ot IE7. This is not helping developers at all. Worst case scenario is we'll have to test in IE9's standard mode, IE9's IE8 mode, and IE9's IE7 mode. Please don't complicate our jobs further.

  • Anonymous
    September 30, 2010
    www.impressivewebs.com/html5-support-ie9

  • Anonymous
    September 30, 2010
    Too bad IE9 is not par of the competition after almost 1 year www.impressivewebs.com/html5-support-ie9

  • Anonymous
    October 01, 2010
    The comment has been removed

  • Anonymous
    October 03, 2010
    How will it be possible to deploy custom CV list on a entreprise network for intranet sites?

  • Anonymous
    October 03, 2010
    @Neil Dunensach If by "interim" you mean "not linked to any particular version of Windows" then no: IE 5.5 was part of Windows Me. Version 3.0 is technically the only one as this shipped with Windows '95 OSR2, which was a version only available to PC builders, not the general public through a retail edition of an OS.  (IE 4.0 you could also argue, technically, as this came with Windows '95 OSR 2.5; 4.01 shipped with Windows 98 First Edition). IE8 is debatable as it did come out 4 months between the RTM of Windows 7 (and 7 months before the retail release), though did ship natively with this OS.  IE9 looks set to be the next clear-cut not-tied-to-any-Windows release -- unless Windows 8 arrives sooner than anyone expected... ;p

  • Anonymous
    October 04, 2010
    As much as I would love to send you the requested information, using send feedback requires a windows live ID. None of my ID's and passwords...you will need to send this info to feedback...message above also states when I try to login, service may not be available. "Recently installed the IE9 Beta, so far like everything about it. I am having one issue that I have not been able to resolve: When using a popular non-MS search engine, I receive the following messageerror: "While attempting to load module "net.scansafe.searchahead.Bootstrap", user property "user.agent" was set to the unexpected value "unknown"     Allowed values: gecko, gecko1_8, ie6, opera, safari. Also why do I constantly have to hit F10 to get the menu bar to show-up, only to disappear after use and it is checked viewstoolbars."

  • Anonymous
    October 04, 2010
    as mentioned in the above post, without fail when using google to search, when I enter my search criteria, select a topic and bring up that page, and then return to my main search topic it throws the above error everytime. Also.....when I hit F10, the tool bar should stick and not have to hit F10 every time I want to file edit etc....and yse it is checked in my viewtoolbar settings...

  • Anonymous
    October 04, 2010
    @dolmen: You can deploy a custom CV list for intranet sites using the same group policy mechanism as IE8. Here is the blog post on this topic: blogs.msdn.com/.../ie8-group-policy.aspx. The policy you will want to configure is “Use Policy List of Internet Explorer 7 Sites.”

  • Anonymous
    October 04, 2010
    How do featureSwitches interact with X-UA-Compatible? If we ask for IE=9 (or IE=edge), might we get an unwanted createElementWithMarkup switch if that happens to be set on the CV list?

  • Anonymous
    October 04, 2010
    @fearphage I fear it may be worse than that. We will need to test for: IE9 IE9's IE8 compatibilty mode IE9's IE7 compatibilty mode IE8 IE8's IE7 compatibilty mode IE7 IE6 7 tests instead of 4. Isn't this madness? General users shouldn't even need access to compatibility modes. Only developers should need this.

  • Anonymous
    October 05, 2010
    @Geoff Pack >> Why on earth would you test for any IE's compatibility mode?

  • Anonymous
    October 05, 2010
    Just installed the ie9 Beta version and put our siteload speed to the test. Our site http://www.makkelijkensnel.nl seems to load at least a bit quicker in ie9 than in firefox 3.6.10. Overall I really like the new interface and usability.

  • Anonymous
    October 05, 2010
    @Aethec > I wish we didn't have to test the compatibility modes, but some people have them turned on, and they seem not to be identical to the real thing.

  • Anonymous
    October 06, 2010
    The comment has been removed

  • Anonymous
    October 06, 2010
    Speaking of compatibility, does anyone know when update versions of the Internet Explorer Application Compatibility VPC Images will be released? Once they expire they always seem to reboot at the most inopportune times while testing. The currently posted ones expired Oct. 1, 2010. www.microsoft.com/.../details.aspx

  • Anonymous
    October 07, 2010
    @Geoff If I hit your website in IE3, Lynx and Netscape 4 does that mean you will test in those browsers too? Great job IE team. I'm really looking forward to IE9's release. Thanks for all your hard work!

  • Anonymous
    October 12, 2010
    The comment has been removed

  • Anonymous
    October 12, 2010
    Did not work.  All i got was error. I hope you guys fix this beta stuff.

  • Anonymous
    May 07, 2015
    When you released IE8, you gave developers at least 2 additional browsers to test. IE8 and IE7 compatibility mode which is not an identical match ot IE7. http://gtaonlineargent.com/