By now most of you will probably have read the article posted today on A List Apart, Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8.
In a nutshell, the new http-equiv=“X-UA-Compatible” instruction will let you tell Internet Explorer to render the page in the manner of a particular IE version. If you have developed for IE7 you can place a meta element into the head of your document that tells Internet Explorer to render that page as IE7. When IE8 comes out, your page will still render as it did in IE7 regardless of whether rendering bugs have been fixed or support has been added for things in IE8, the page will still display as in the earlier browser.
So what is wrong with this picture? I believe that it will encourage the practice of developing for specific browsers. A practice we have tried to discourage since the days we all had to build two versions of our sites, one for Netscape and one for IE. It will also mean that the large number of developers who code solely for Internet Explorer and who, in the last couple of years, have been forced to update their methods due to IE7 having better standards support can now code purely for a specific version of IE, thus leaving large chunks of the web frozen in time – not taking advantage of improvements that would benefit all of their users.
However it gets worse. This feature isn’t simply lurking in Internet Explorer, ready to be invoked by people who think it is a good idea. By default, if you do not add any meta tag to your document, or send it as a header from the server, then your website will display as IE7 … forever. As Jeremy Keith explains so well, this means that if you have used a CSS feature currently unsupported in IE7, when IE8 comes out – despite it supporting that feature – it won’t render your page with it as it will be rendering as IE7. I know this sounds bizarre, but IE8 will only render your pages as IE8 if you tell it to. There is the ability to set IE=edge so you get the terrifying unknown thing that is the latest version of the browser, but how many people will know or care enough to do this?
I feel this is a huge step back, and if it does happen, the full implications won’t be seen until a few years down the line when we are dealing with JavaScript libraries and widgets hugely bloated in size due to the need to maintain support for legacy browser versions because current browser versions still render as them despite the actual browser having very little usage. When we are seeing sites strangely frozen in time along with development teams with skills similarly stagnated. Once of the good things about Microsoft beginning browser development once again with IE7 was that it meant people did have to update their skills to support the latest Microsoft browser.
New versions of browsers should behave, by default, as the version that they are. If there is to be any rendering engine switch, and I believe it to be a bad thing entirely, it should involve opting out of the default standards compliant mode. I also believe that any ‘solution’ like this, should be a solution developed by all major browser vendors, along with the W3C. This all feels like the browser wars all over again, and I don’t want to go back there!
Finally, I believe this is a solution to a problem that was actually becoming less of a problem since IE7. It is a problem that is going away. The “broken sites” caused by the release of IE7 seem to have been, in the main, fairly small differences in rendering and those of us who developed to web standards found we had very few changes to make, if any. The move to Web Standards is the solution to the problem of new browsers “breaking” sites, and just as it starts to look as if there could be a light at the end of the tunnel Microsoft appear to want to call a feature freeze on the web.
2 Comments
I’ve been dotting about various different discussions on the subject, mainly because it seems such an extraordinary idea but one that has gained something of a “star-studded” following, and this is the most succinct and even-handed reading of the issue I’ve seen. So thanks. I really hope Microsoft see the error of their ways, for their own sakes and everyone else’s – I share Andy Budd’s sense that this may be the beginning of the end of IE as a dominant browser.
Finally, I believe this is a solution to a problem that was actually becoming less of a problem since IE7. It is a problem that is going away.
That is what I have assumed is happening. If you build your website today to work in the most standard compliant browsers, and IE8 is so standards compliant, it will work, while IE7 will continue to receive any “fixes” you have had to include (wrapped in lteIE7 conditional comments).
The huge leap forward from IE6 to IE7 means that most sites that will have broken already did. It is very unusual for me to need to add much to an IE7 stylesheet. I assume that an IE8 stylesheet will contain even less.