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 (34)

  1. Sonic says:

    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.

  2. Rob says:

    I can see the ads now. "IE9 has a faster, more capable Compatibility View List!!!!!"

    ::rollseyes::

  3. Geoff Pack says:

    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.

  4. Rob^_^ says:

    @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.

  5. Taciturne says:

    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

  6. Mike Dimmick says:

    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.

  7. johnnyq3 says:

    @ 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.

  8. Tom says:

    >>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

  9. EricLaw [MSFT] says:

    @ 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.

  10. Neil Dunensach says:

    @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.

  11. straling says:

    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.

  12. Laurens Holst says:

    IE9 renders my website completely illegible… No response on the Connect issue I filed so far. connect.microsoft.com/…/site-rendered-completely-illegible

  13. other invalid method parameters says:

    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

  14. Lars Ingelhopper says:

    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.

  15. fearphage says:

    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.

  16. Really? says:

    Too bad IE9 is not par of the competition after almost 1 year http://www.impressivewebs.com/html5-support-ie9

  17. MarcSil [MSFT] says:

    @Laurens: We have looked at the issue you submitted and it at first glance it looks like a bug in how IE9 Beta handles XML documents. We will investigate this more and respond in connect. Thank you for submitting detailed feedback!

    @straling: We would like to investigate the first issue that you mention. Please submit your feedback using the “Send feedback” option in the Tools menu and include the URL that you’re seeing the error on. For the second issue, we have heard this feedback from other Beta selfhosters and are considering it.

    @Dave: That’s a good question. We changed createElement() in IE9’s Standards mode to throw an exception when invalid value is passed into a standards-defined parameter. IE9 will not throw an exception when IE-specific parameters are passed into window.open or object.add. Other browsers support extra parameters and don’t throw exceptions either. For example, Gecko extends window.open with Firefox-specific parameters such as centerscreen, outerHeight, outerWidth, innerHeight, innerWidth, personalbar, etc… (developer.mozilla.org/…/window.open). Continuing to support these parameters is important for compatibility.  Browsers extend some standards-based APIs to provide their own unique value-add through browser-specific parameters. Websites should use behavior detection to detect and opt-into these features when appropriate.

    @fearphage: Yes, IE9’s IE8 document mode will be the same as IE8’s Standards mode and IE9’s IE7 document mode will be the same as IE8’s IE7 document mode. The only exception to this goal is when we make specific platform changes to improve fundamental areas such as security or performance. We will document and publish any changes we make to legacy modes. We’ve deliberately minimized the number of changes to legacy modes and even re-introduced bugs so that site developers and users can rely on the platform behavior previously shipped.

  18. dolmen says:

    How will it be possible to deploy custom CV list on a entreprise network for intranet sites?

  19. Drake says:

    @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

  20. straling says:

    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."

  21. straling says:

    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…

  22. MarcSil [MSFT] says:

    @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.”

  23. bobince says:

    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?

  24. Geoff Pack says:

    @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.

  25. Aethec says:

    @Geoff Pack >> Why on earth would you test for any IE's compatibility mode?

  26. Jeroen says:

    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.

  27. Geoff Pack says:

    @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.

  28. Bill Hossick says:

    "For sites that are designed to run in older versions of IE"  Ha!  It must be painful to be a developer having to write special modes into a Web browser because previous versions of your browser were so broken that they caused people to write broken Web pages.  What a mess.  It's really pleasing to see that after all these years, standards have won out and most of the Web runs on standards-based, free software, with Microsoft wasting their own time dealing with layer upon layer of dirty hacks and intentional incompatibility they tried for years to shove down everyone's throats.

  29. Tim says:

    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.

    http://www.microsoft.com/…/details.aspx

  30. Jimmy says:

    @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!

  31. Roland says:

    I just cant understand that for so many years, IE cant compete with other browsers :S (my point of view). I have hard time developing for IE8 :S Testing 4 different modes, with Dev tools not responding every time :S

    I cant understand that the company that has so much money and can hire the best people in the world cant create decent browser, standards compliant :S

  32. johny says:

    Did not work.  All i got was error. I hope you guys fix this beta stuff.

  33. maximo says:

    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/

Skip to main content