For those of us unfortunate enough to be web developers or designers, cross browser compatibility is a constant thorn in our collective side. For the most part, said thorn exists in the form of Internet Explorer 6. As one of the most widely used browsers, web developers are forced by necessity to cater for this sinking ship. At the time of writing, IE6 still holds an impressive 25% of internet users in its demonic grip, while its younger, but equally frustrating sibling, IE7 maintains anywhere between 25% and 50%, depending on where you get your information.
Now anyone who is familiar with the topic knows what is coming next: I’m about to tell you about Firefox, an open source browser whose compliance with web standards makes life easier for developers. While the end user is unlikely to notice much difference, most developers not in the pay of Microsoft will preach the graces and virtues of this most pious of browsers. In fact, five minutes of reading various forums on the topic will have you believing that Firefox has descended from heaven to lead us all to the Promised Land. And while I am occasionally inclined to agree, I like to think my opinion is a little more subjective than that.
The fact is, IE6 is neither evil nor stupid. At time of writing, Windows XP and Windows Vista collectively occupy over 85% of the market. And since each copy of Windows comes conveniently bundled with Internet Explorer, it is the browser of choice for most casual users. So what’s the problem?
Web standards
The problem is web standards, or the lack thereof in Internet Explorer 6. For any of you scratching your heads right now, let me explain: there is an organisation called the World Wide Web Consortium, or W3C for short, whose main job is to develop standards for how websites should be written. They are headed by a man called Tim Berners-Lee, the man heralded as the inventor of the World Wide Web.
Now when a web browser is created, it is supposed to interpret web pages according to the web standards set out by the W3C. Many browsers, Firefox most prominent among them, manage to maintain full compliance with the standards. Even Internet Explorer 8, currently only in the beta stage, is apparently standards compliant. What this means is that when a web developer writes a page, the outcome is predictable, no matter which browser the end user has installed. Unfortunately IE6 seems to ignore the standards in many cases, making extra work for the developer, who has to fix apparent “bugs” on the page. These aren’t problems with the page itself, but problems with the way IE6 is interpreting it.
The future
Now this argument is nothing new, but serves as a background for my main point. That is: IE6 is a lot of work for those of us creating web pages. It’s not only display bugs that cause problems, but lack of functionality. Many elements of CSS 2 remain unsupported in IE6. For developers, it’s like having a shovel to dig a hole but being told to use your hands – if you use any of these unsupported features then IE6 users won’t see them. For a long time this has been the case, and has become something developers get used to.
I’m sure that other developers, like me, are looking forward to the day when we can stop catering for IE6. After all, we used to complain about catering for IE5, which was even worse. And when IE8 is released, I’m sure we’ll complain about IE7. But as things stand at the moment, I am just about ready to throw in the towel anyway.
Why? Well I started thinking on the topic last week, when Google released Chrome. Along with IE6, IE7, Firefox and Safari, this makes 5 browsers for developers to test their websites in. On top of that, IE8 is on the horizon and will add even more testing to the mix. As a result, development costs for websites steadily increase. Clearly the most volatile of the above line-up is IE6. The question is, when is it ok to stop supporting it?
Soon enough the time will come when we can abandon IE6 and start using CSS 2 in earnest. By that time we’ll probably be wishing we could use CSS 3, but as the saying goes, you can’t have your cake and eat it.

