IE8 Blacklist: forcing standards rendering opt-inThursday, February 12, 2009
A year ago Microsoft announced (through A List Apart) that standards compliant websites would be forced to opt into a standards rendering mode in IE8. The uproar from the web standards community was loud and clear: the default should always be render in standards compliancy mode. Microsoft backed down.
So it is with considerably surprise and anger to read that Microsoft have quietly gone back to their original position. The gist of it is if you want to be sure your site renders in standards compliant mode in IE, you have to explicitly opt into it. Otherwise you risk being blacklisted and thrown into IE7 Compatibility mode.
Blacklisting domains to IE7 rendering
In a blog posting that seems to have gone unnoticed by the web standards crowd titled "Compatibility view improvements to come in IE8" by Scott Dickens, he writes:
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.
So if enough people click on the Compatibility View button in IE8 on pages on a website then everyone opted-in to this list will have that site rendering in IE7 Compatibility mode.
There seems to be no indication of a manual check of a site before it gets added to this blacklist, and the
[t]his list updates automatically rather suggests there is no manual checking.
So if a large number of people went to A List Apart at the same time and a enough of them clicked on the Compatibility View, A List Apart's domain would be added to a blacklist. By default A List Apart would then be rendered in the IE7 Compatibility Mode regardless of whether it renders correctly or not in the Standards Mode.
Then the only way for A List Apart to be rendered in IE8's standards rendering mode is to explicitly opt into it. This is exactly what we, the web standards community, rebelled against last year.
Targetting top-level domain
What is even worse is that sites are blacklisted by top-level domain. As the IE8 blog post describes:
The data we collect from IE8 beta users is the top level domain of the website and whether the user chose Compatibility View while visiting that site.
This is insidious; organisations running multiple sites on subdomains (like Yahoo, AOL, CNN, Blogger, WordPress, Wikipedia, Ning) are exposed to a new risk: a problem with one single subdomain is sufficient to black-list all their websites into an IE7 Compatibility Mode.
That means if we invest a load of time making sure our top-priority sites are working immaculately in IE8's standard rendering mode then with enough Compatibility clicking on a site that isn't a high priority site is enough to damn all of our sites into this blacklist.
The danger here is that Microsoft don't seem to be collecting the reason behind why a visitor clicked on Compatibility View. So a couple of hundred curious people seeing if the Web Standards Project website works in IE7 Compatibility mode might be enough to stop the Web Standards Project's website from rendering perfectly in IE8. And the only way they can prevent that is to opt-in to the standards rendering mode. What message does that send to the web standards community when WaSP requires an explict opt-in to IE8 rendering?
Forcing an opt-in to standards rendering
To pre-empt this nonsense the practical course of action is to add the IE8 Compatibility view to your pages now before your sites get added to a blacklist. Exactly what Microsoft announced a year ago. They've routed around the web standards community. Again.
Two extra browsers to test in
And to spite us, last week I noticed that the IE7 Compatibility mode doesn't render pages exactly the same as Internet Explorer 7 itself.
So not only do we have to test a new browser with IE8 (which is now A-Grade according to our Graded browser support), it is looking very likely (
if I can confirm the bug. Now confirmed.) we will have to test IE7 and IE7 Compatibility Mode separately.