The next public update of IE8 (for Windows Vista- and Windows XP-based operating systems as well as the Windows 7 Beta) includes improvements to Compatibility View that help end-users when they visit web sites that are not yet ready for IE8’s new, more standards-compliant defaults. This blog post describes the technical background and how this new functionality works.
A Brief History of Standards, Interoperability, Compatibility, and IE8
As we improve the interoperability of Internet Explorer by delivering better implementations of web standards, some users may face compatibility issues with sites that rely on the behavior of previous versions of Internet Explorer.
With IE8’s Beta 1 release, Microsoft demonstrated its commitment to interoperability by making the most standards-compliant default view for web pages IE’s default. This is a good thing for the next billion web pages. We think that developers will have an easier time building interoperable sites on top of IE8’s strong platform work (like CSS 2.1, a better Document Object Model, ARIA, and cross-domain requests (XDR) and cross document messaging (XDM) and our start on HTML5 support).
The problem is that some of today’s web pages might expect the old, less interoperable behavior from IE. These web pages might not function correctly, in ways ranging from just looking a bit misaligned to not working at all.
This scenario is exactly why we’re committed to interoperability and doing the standards work we’re doing in IE8. People who develop web sites and people who use sites want them to just work. Previously, some versions of IE released while some key standards were still under construction and before standards efforts had started for other key technologies. The most important thing we can do now is deliver better interoperability for a better web, with as few compatibility issues as possible so that end-users adopt it.
We really want the new more standards compliant default to be a great experience. We have many, many people engaged in reaching out to hundreds and hundreds of websites. Our goal with IE8 was to make it easy for sites to deliver a great experience, either by testing with IE8’s new standards-compliant functionality or by adding a tag or HTTP header to their site to instruct IE8 to use IE7-compatible mode.
With IE8’s Beta 2 release, we introduced the Compatibility View button. This button enables savvy end-users to resolve compatibility problems they encounter with sites that rely on legacy IE behavior. Specifically, the button enables users to treat specific websites in a non-default way so that they work in the browser. This is a good thing – with Beta 2, a site that relies on IE7 behavior from IE8 but has not specified it explicitly can still work for someone visiting it in IE8.
Despite all the outreach to sites, we saw from the telemetry data that IE8 Beta 2 users still have to use Compatibility View a lot. Looking at our instrumentation, there were high-volume sites like facebook.com, myspace.com, bbc.co.uk, and cnn.com with pages that weren’t working for end-users with IE’s new standards compliant default. We could also see from our instrumentation that not all IE8 visitors to those sites were clicking the Compatibility View button. So, large groups of people were having a less than great experience because they weren’t aware of the manual steps required to make certain sites work.
Community to the Rescue (or, applying telemetry and customer feedback to make this experience better)
We wanted to make the experience of defaulting to standards mode better for the end user.
The IE8 approach here focuses on using customer feedback to make the compatibility experience better. In addition to listening to the end-user community, we’re also engaging the site development community as well.
When users install Windows 7 Beta or the next IE8 update, they get a choice about opting-in to a list of sites that should be displayed in Compatibility View. Sites are on this list based on feedback from other IE8 customers: specifically, for what high-volume sites did other users click the Compatibility View button? This list updates automatically, and helps users who aren’t web-savvy have a better experience with web sites that aren’t yet IE8-ready. Some details:
We reach out to those sites (beyond all the other outreach we’ve already done!) to make sure they know the experience their IE8 visitors have by default and what steps they (the sites) can take to make it better. We also tell them that in the meantime, we’re adding their site to this compatibility list and provide instructions on how the site can opt-out. (If a domain notifies Microsoft that it’s choosing to opt-out, we remove it from the list at the next scheduled list update.)
IE8 is not the first browser to consider making website compatibility fixes for specific highly trafficked sites. Opera has “a feature that allows Opera to automatically fix incompatible Web pages.” It’s “automatically distributed by Opera Software ASA, and can be used to apply fixes to specific Web sites.”
User Choice: Some Details and Screenshots
Users can make a choice about the list during IE’s first run experience as well as in Compatibility View Settings dialog. During the first run experience, neither ‘Express’ nor ‘Custom’ is selected by default. The user must choose one:
The Compatibility View Settings dialog box reflects the user’s choice, and the user can turn updates to the list on or off at any time:
Users who choose to get the list receive it via Windows Update packages, just like IE security updates. The list package is separate from, but on the same schedule as, security updates (typically, every 2 months). Our goal here is to provide predictability by following a regular, known update cadence.
Enterprise customers running WSUS and other management software can control the download and installation of these packages. Enterprises can also use group policy to provide their users an additional list of sites that should be displayed in Compatibility View. Other customers can control the download and installation of these packages as well by choosing to install only Internet Explorer updates marked as ‘Critical’.
When the user browses to a web site and this list is active, IE checks the list to determine if the site should be shown in Compatibility View. If the site is on the list, IE uses Compatibility View, as if the user had clicked the Compatibility View button. If the site isn’t on the list, IE uses whatever setting the site indicates in its content. And, just as with websites on the user-populated Compatibility View list, the presence of a <META> tag / HTTP header “wins” over whatever mode Compatibility View on the client would have resulted in. So, if a site starts on this list but does great work to take advantage of IE8 and now wants IE8 to use the most standards-compliant mode, then the site can specify it and override this list.
Also, the Compatibility View Settings dialog shows only the entries in the user-populated list. Users interested in seeing the contents of the active list can navigate to res://iecompat.dll/iecompatdata.xml from IE’s address bar.
Some Closing Thoughts
Life as one of the people who builds the web is hard. Developers have a lot of things competing for their scarce time: making their sites more secure, or faster, or richer using some of the new functionality that new browsers like IE8 are starting to support. In some cases, for a new browser, developers have to spend time to add a tag or header to make their sites compatible. Starting back in March 2008 with IE8 Beta 1, Microsoft has been actively engaging site developers about how they can make sure that users continue to have a good experience on their sites.
Whether developers get around to doing this work or not, the people who use the web expect that the web will keep working. They want the benefits of interoperability and standards. They don’t want to deal with compatibility issues.
To that end, IE8 Beta 1 offered end-users a large compatibility toolbar button that required a browser restart. In Beta 2, IE8 offered a more discreet button that didn’t require a browser restart for a more end-user friendly compatibility experience. This latest compatibility view update refines the experience by offering users the choice to have a community-driven list that reduces the amount of manual work involved in browsing the web with compatibility.
Scott Dickens Program Manager