IE6 - hope of web standards
I often find myself in a room with web developers and at least one of them proclaiming that IE6 sucks because it doesn’t support web standards while others nod in agreement.
This has bothered me enough to contemplate having a talk at BarCamp Ljubljana . I didn’t, but this is what I would say.
Internet Explorer 6 was released on 27th August 2001, when twin towers were still standing in NY.
7 years is a long time to remember, but what did we work with back then? There was no Safari and Firefox was still in its infacy, far from 1.0 release coming 3 years later. It was changing so often most developers simply ignored it. Opera was at version 5 (version 6 came out in November of that year) and I am sure I am not alone in remembering how awful it was at least until version 7 in 2003. Mozilla was at version 0.6 and although showing great promise, IE6 definitely was the browser we hoped others would match.
Back then no browser supported CSS2 in a meaningful capacity. Opera had the best support for CSS until then, but IE6 surpassed it. It didn’t support DOM Level 2, which was standardized only 4 months before first beta of IE6. Good excuse not available anymore to IE7 and IE8. Apart from that it supported more or less everything web developer could want back then and then some. IE6 problem isn’t so much that it didn’t support standards of its time as it is that it doesn’t support standards of today.
So why the hostility?
Lancia Delta Integrale , which dominated rally competitions in eighties, is today an obsolete car, but car aficionados still have a soft sport for it. You don’t hear them go around complaining how it doesn’t meet standards of todays cars.
Well, as I’ve said, 7 years is a long time and most web developers are not old gits like me, so the historic context isn’t there. We also have to live with its real shortcomings today. But I think there’s more to this.
Complaining about IE6 standards deficiencies is declaring who you are and where you stand. It’s a simple and very recognizable way of declaring you are a member of web-standards tribe. IE6 bitching has at least as much to do with proclaimer as with proclamation’s subject. Trashing IE6 isn’t so much talking about the browser as it is talking about you.
However it is not unreasonable to ask why IE6 doesn’t better support standards that were released or updated after its initial release.
Certainly more could be done through software updates, but are standards themselves forward looking in a way that would avoid updating browser internals with every new version of a particular standard?
I am quite certain that this isn’t always possible. I don’t see how you could add a video object from HTML5 to a browser without explicit support from browser’s developers. But not all changes are such as John Allsopp has recently pointed out.
I have mixed feelings about HTML5. It’s bringing much needed new capabilities and lots of goodies, but I also think Sam Ruby has a point. New, simple, DOCTYPE is reduced to a switch between standards and quirks mode and unless it will become more complicated in later revisions, it won’t offer an easy way to distinguish between HTML5 documents and other HTML versions. This isn’t a particular problem if newer revisions will be backwards compatible with older, but this isn’t true even of HTML5. Why would we think this is the last version where we will make a major misstep that needs backwards-incompatible correction?
There are other things I don’t like about HTML5, but if I would have to pick one thing I would like to see changed, is to make it more extendable.
To sum it up, IE6 is indeed a problem in todays development, but it’s also at least at fault for this. It was an excellent browser when it came out and is remarkably solid one for software so old. There are many reasons, completely untouched in this post, why its users don’t migrate to something newer, but we, web developers, are also to blame, because we tend to standardize only current practice and leave few doors open for future development which invariably comes.