Why I support IE6
Many web developers now think support for IE6 should be dropped, citing its lack of features and security problems as good reasons for upgrading. In this article I’ll discuss why I think this is wrong, and why you should continue to support IE6.
What’s so bad about IE6?
IE6 was a reasonable browser when it was released in August 2001, but Microsoft failed to keep it up-to-date. It suffered from many security issues and as a platform for cutting edge web design it failed, having poor support for advanced CSS and missing features found in other more capable browsers, such as semi-transparent PNGs. Many hacks and work-arounds were found for these shortcomings, but some developers complained that learning and deploying these hacks was time consuming and expensive.
Users first, developers second
Most problems were fixed in IE7 (Oct 2006) and IE8 (Mar 2009), but despite the upgrades offered by Microsoft, IE6 is still used by anything from 17% to 33% of web users. That’s a pretty big slice of the pie!
By current standards, IE6 is a poor browser. As a web designer I would love to ignore it. But what I wish for as a web designer is secondary to what’s right for my clients and my client’s users.
It’s not my place to tell people what browser they should use and even if I could encourage them to ditch IE6, many are unable to. The largest sector of IE6 users are those in organisations where a company wide browser upgrade is restricted by cost, complexity and lack of business benefit (perceived or real). What company is going to spend money on an upgrade that does not offer a return on investment?
Given that there’s still up to 33% of users running IE6, and will be for some time to come, how should we offer ongoing support for this browser?
What is browser support?
To argue supporting an outdated browser, we must define what “support” means. Jeremy Keith discussed it best in his article The IE6 Equation, coming up with a 5 point scale from “No support at all” to “Pixel Perfect across all browsers.” The scale follows:
- Block IE6 users from your site
- Develop with web standards and don’t test in IE6
- Use the Dean Edwards IE7 script to bootstrap CSS support in IE6
- Write an IE6 stylesheet to address layout issues
- Make your site look exactly the same in IE6 as in any other browser
1. Block IE6 users from your site
I don’t think any responsible developer will argue this is reasonable. Blocking users is simply so wrong that if you think it’s an acceptable way of dealing with the issue, you probably shouldn’t be building web sites.
2. Develop with web standards and don’t test in IE6
This is a good compromise if you’re sure the majority of your audience is using an up-to-date browser. Use your server logs and other research to determine IE6 usage – if it’s below just a few percent then consider this option.
3. Use the Dean Edwards IE7 script to bootstrap CSS support in IE6
I’ve never been happy to take this route: using a large JavaScript library to merely affect the look of a site, at the expense of speed and responsiveness is not something I’ve ever been comfortable with. Your mileage might vary.
4. Write an IE6 stylesheet to address layout issues
Correct the major layout problems, but don’t worry too much that the site will look different in IE6. If it looks more or less right and remains useful, usable and accessible, then that’s good enough. The 24 wayswebsite is a good example – it looks fairly awful in IE6 compared to the expected design, but it remains usable. Paul Boag has a demo on this idea of Graded Browser Support.
5. Make your site look exactly the same in IE6 as in any other browser
This level of support is for the real perfectionists and if you can achieve it – great! But don’t waste a lot of time trying to do so, unless your client is happy to pay a premium for that. Yes, I believe if you’re going to aim for this level of support, then you should explain to your client what it means and should be confident enough to charge more for it.
I’ve chosen option 4 as the level of support that I offer. I think it’s the most appropriate for the kind of sites I design and develop. You’ll need to decide for yourself which level you think is right for you, though if you’re erring towards #1, then read on!
Participation for All
The question remains: why offer support for an outdated browser? For me, it’s simple: I want the sites I build to be used by as many people as possible.
In 1998, Sir Tim Berners-Lee, inventor of the web, wrote a one page article, The World Wide web: A very short personal history, which includes this passage:
The dream behind the web is of a common information space in which we communicate by sharing information. Its universality is essential: the fact that a hypertext link can point to anything, be it personal, local or global, be it draft or highly polished.
Tim Berners-Lee
Sir Tim believes in the web being an equal playing field for everyone. I believe it too. Everything I’ve ever designed and built for the web has been done with that vision in mind. All websites should therefore be as accessible to as wide an audience as possible. I can’t tolerate any barriers that stop users from engaging in the web.
I choose to support IE6 to a reasonable level since in all good conscience, I must support it. By ensuring that a user can use my sites in IE6 I make sure that the playing field for participation remains equal.
If you’re a developer who advocates out-right blocking of IE6 (or indeed any browser), or building sites that work only in modern browsers, then I think you need to seriously ask why you are developing on the web in the first place. You’re actively discouraging participation and that really goes against the spirit of what the web is all about.
Final words
My role as a web developer is to make usable sites that work for users. I’m paid to solve the problem of multiple browser support.
I feel the pain of supporting IE6 and I can understand why a large number of developers are trying to drop it. But doing so takes your users out of the equation since you are only trying to please yourself.
Web development isn’t about what’s best for us as developers; it’s about what’s best for our users.