There’s a fire spreading over the Internet right now, and it’s about the new Microsoft idea with version targeting in their new IE 8 web browser.
The idea is explained in detail in Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 and Microsoft’s Chris Wilson discusses it in Compatibility and IE8. The gist is that in IE 8, a
meta element (instead of a
DOCTYPE) will decide what rendering mode you will get.
<meta http-equiv="X-UA-Compatible" content="IE=8">
<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4">
My friend Snookums called it and interestingly (shockingly, to some), as Jeremy points out, IE 8 will behave exactly like IE 7, unless you specifically tell it to behave better (with the above
Why is this so?
The problem, as Microsoft see it, is that there are definitely more web sites, intranets etc out there with invalid, and usually (read: hopefully) old code which will break with each new web browser release, rather than properly built web sites. While the gut notion is to tell those companies to just fix their shit, it’s not that easy in reality. And we’re talking major companies here where the cost would be enormous for re-writing all the code.
I can definitely relate to the problem, but not the solution. While, as PPK explains, The versioning switch is not a browser detect, it still leads us web developers back to superfluous code similar to
DOCTYPE switching and such, and it’ll probably create hell for web browser vendors as well.
To me, it seems like such a waste for a new web browser to have backwards compatibility with old and incorrect code forever, and the bulk of the code base will be workarounds, fixes and patches, rather than new optimized functionality. Without a doubt, my work as an Interface Developer takes at least 25% longer when developing a web site to work out all sorts of bugs that IE 6 and IE 7 are riddled with.
Personally, I’d say I’ve had enough of wasting my clients’ time and money because of a poor product, and my sincere belief is that all (or at least most) these bugs are the result of being overly backwards compatible with poor code while trying to implement new features at the same time. The IE team is far from incompetent, but I think their legacy on their shoulders is pushing them down.
My alternative solution for Microsoft
Granted, a web browser need to work with bad and invalid code, so that has to be addressed. However, I only think that’s really valid for Intranets and other closed environments. If you have a public web site, you have to shape up to work with current web standards, accessibility and so on.
Therefore, my suggestions are as follows:
- Offer an official way to have multiple versions of Internet Explorer installed side-by-side. This way, employees in these giant dragon companies can use IE 6, 7 or whatever for work on their internal applications, while they can have a proper web browser for surfing Internet.
- IE 8 should only go for a standards mode, with no quirks mode support. That will lead to an incredibly lean web browser, much easier work for the IE team adding new things and for web developers coding web sites.
- If needed, add an option in IE 8 (toolbar button, context menu option) to choose to open a web site in old IE. This means that if there’s no prior version of IE, a stand-alone version should be installed when the user installs IE 8. If there is indeed a previous version of IE on the system, let it stay there and make the IE 8 installation stand-alone.