Articles - IE8 Browser Versioning

Introduction

As most web developers will tell you, Internet Explorer has been a real problem for years. IE6, for example, has more rendering bugs than you can shake a stick at and just outright ignores the standards in many cases. What this means is that when you develop a website, you can make it work in every browser except Internet Explorer by writing the site according to the standards (with an occasional tweak here or there to work around a minor bug in one browser or another). But then to make it work in Internet Explorer you have to spend a long time making trial-and-error hacks to work around the many problems, all the while making sure you don't break the site on all the other browsers.

Then IE7 was released and things got quite a bit better... It's still nowhere near as standards compliant as the other browsers though.

A while ago, Microsoft announced that the next version of Internet Explorer (IE8) would be much more compliant with the official HTML 4.01 and CSS 2.1 standards - to the point that it would pass the ACID2 test. This brings it up to a similar standard to the other browsers. This was good news - the end of millions of nasty hacks just to make IE work was in sight.

More recently, Microsoft have announced that by default, IE8 won't be running in this nice standards compliant mode. They are worried that doing so would break web sites that rely on the existing browser bugs in order to work. Their solution was to introduce a new non-standard HTTP header (and associated HTML meta tag): "X-UA-Compatible". i.e. in order to make the browser more standards compliant you have to use non-standard code - crazy huh?

I won't beat about the bush - I think this is a terrible idea. This article explains why.

Background

I'll start off by providing some background on how this system is going to work.

If you don't specify the X-UA-Compatible header, IE8 will render your web page in the same way IE7 would, emulating IE7's rendering bugs. If you do specify the X-UA-Compatible header, you need to specify a browser version the site is designed to work with. So specifying "IE=8" will make future versions render the page as IE8 would, complete with any bugs that IE8 has.

Problems

So some immediate problems with this system spring to mind:

Whilst it may make sense to do this sort of thing in a single-platform environment (although some of the above problems are still present), I honestly can't see how this can work in an environment like the world wide web where a web site must work across many different platforms.

Sadly, Microsoft's Internet Explorer strategy has always been to make things as painless as possible for the consumers at the expense of the developers. The consumers get to pick the browser they use, and whilst IE has a large share of the market, commercial web developers are going to have to jump through whatever hoops are required to support it. The consumers themselves don't get to see the almighty problems with IE and so just continue to blindly use it, perpetuating the problem.


Slashdot  Slashdot It!

Would you like to submit a comment about this article?

Contact Me
Site last updated: 26th June, 2013