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