Behind IE 8's big incompatibility list
Growing, growing, gone
To realize the scale of the challenge facing Microsoft as it pulls the web around to Internet Explorer 8, you need look no further than the list of sites that fail to render properly on the browser.
All-about-Microsoft blogger Mary-Jo Foley has reported that - out of the box - the current IE 8 release candidate will not work with at least 2,400 web sites. That's "major" sites as defined by Microsoft and excluding many more considered too small or too niche by the company.
That list includes, yes, Microsoft and MSN, in addition to high-volume sites such as the BBC, CNN, Google in various geographies, Apple, PayPal, Amazon, and major UK sites such as Barclays, Tesco, the Royal Mail, and ITV.
Those sites and more are included on a Compatibility List that was announced this month for inclusion in the current release candidate of IE 8.
Out of the box, IE 8 will work in default mode, so it'll render sites using support for new standards like CSS 2.1. However, there's millions of sites out there that have been built to work with previous versions of IE that do not fully comply with internet standards.
Microsoft introduced a compatibility view mode that would let you switch over to viewing sites that do not support IE 8 without seeing this kind of scramble - image courtesy of Microsoft:
How the web can look in IE 8, according to Microsoft
It seemed, though, that people were having trouble switching between the standard-based default mode and the non-standard compatible compatibility mode. So they were getting scrambled results regardless. Microsoft in January announced the Compatibility List as a list of sites that are not compatible with IE 8 but that would render automatically, without the need for users manually switching modes. You - the user - download the list.
IE's support for web standards has been like a rising balloon for Microsoft, to paraphrase Withnail and I's philosophical drug dealer Danny. Should it continue holding on and keep getting higher, perpetuating the messy failure to comply with web standards? Or should it let go before it's too late, to end the standards-compliance madness?
There was never going to be any good time or a pain-free option, given the huge installed base of sites that work with IE.
Judging by types of companies on the 2,400-strong list of sites that currently do not work, it seems the pain is just beginning for Microsoft and for web surfers.
Ignore for a moment that these are the "major" domains, and not the millions of lesser sites that individuals might come to rely on.
The fact is these major sites have either not heard or have ignored Microsoft's outreach to update their sites to support IE 8. If it's the former, then Microsoft has not made a large enough effort or contacted the right people to ensure organizations make the necessary changes.
If it's the latter, then Microsoft faces some major hurdles. New versions of IE take a year or so to flood the market, so sites can afford to put off the move to IE 8.
Unlike the last time a new version of IE shipped - when the customer and industry migration to a version of IE was a given - organizations will likely want to see some evidence of uptake. Microsoft will need to make the case for support for IE 8 in a world where rival browsers - Firefox and Chrome - have either growing adoption or weighty corporate patronage.
The final challenge comes in the fact many of the names on that list are brand-conscious and interested in connecting to users online - in terms of delivering content or product information. They will be debating what do around Rich Internet Applications (RIAs).
The choice of what browser to support will likely be couched in terms of what RIA player to endorse - AIR, Silverlight, Moonlight, plain-old AJAX - and whether the browser or browsers they elect are also the best choice for delivering such content.
Expect Microsoft's compatibility list to get a lot longer before it starts to shrink. ®
To all those who say it's web developers lazy browser detection:
How was anyone to know in advance that IE8 would be more compliant?
If they had just detected the versions floating around at the time,
if( IE5 or IE6 or IE7 )
Then, using the knowledge available at the time, they would have been building in the requirement to change that if statement in future to:
if( IE5 or IE6 or IE7 or IE8)
So, for the sake of future compatibility, everyone just used:
If( IE )
By your logic, people should also be coding now, to detect IE9, 10, 11 e.t.c
The simplest solution is for IE to report a different agent string. That won't happen of course, because the loss of face for MS would be huge.
It's nothing to do with IE8...
It's to do with MS developers. They're not used to having a standards document in front of them and writing an engine to implement it. They're used to writing what they think looks right after having scanned the standard one or two times. They typically miss out a few key clauses, and smile like maniacs when they see 'implementation dependent'.
It's the same with VC++ - 'creative' standards at play... expression templates are pretty difficult with vc++ since they've been so stingy with the number of templates you're allowed in a single definition (64 doesn't go far!)
Now they're trying to stick to the book the programmers are confused!! Sack them all.... muhahhaahhaaaaaa.
This has nothing to do with whether Microsoft are following them.
This is all about websites treating IE8 as IE7/6/5/4/3 and serving up crap pages - which as IE8 now defaults to standards - breaks the pages!
Exactly the same would probably happen if Firefox/Opera or Safari got served the crap the sites are serving to IE8
The compatbility mode/list is Microsoft trying to fix the sites that are broken - but only until the site can serve the standards page to IE8!