'IE6 Must Die' Must Die
For years, the phrase “IE6 Must Die” has been used as the rally cry for web developers who want to put IE6 in the rear-view mirror. As a seasoned web developer, I’ve certainly had much share of frustrations with that browser. We all have. It’s just old and lacking in so many neat, useful, heck… vital features for modern web applications. We can all agree that it’s a royal pain in the ass and it is holding the web back. Right? Wrong.
I’ve tweeted “#ie6mustdie” more than a few times. I’ve cheered as Douglas Crockford shows “IE6 Must Die” slide during his presentations. I even own a t-shirt that has the phrase. As happy as I’d be if the browser disappeared off the face of the earth. But unfortunately that’s not going to happen and no amount of wishing on my part can accelerate its demise.
So as IE6 celebrates it’s 10th year anniversary (happy birthday you P.O.S.), I’m going to throw this out there… “IE6 Must Die” must die. We’re at a turning point now where no amount of polyfills can provide the level of features that a “modern browser” can provide. In the past, browsers all did mostly the same thing, implementation just varied a bit. Nowadays, that’s not the case. Sure you can use a Flash fallback for something like Websockets. But IndexedDB? Hah! CSS3? Psshh… Geolocation? Yeah… no.
But the simple truth is that there is still a very large amount of users on the world that are using IE6. While it may be a non-factor for some niche sites (e.g. Github), for other sites it may represent more than half of their traffic. In China, 40% of the web traffic (“Why Microsoft Can’t Get Rid Of IE6 Yet“) is using the browser. Globally, we’re still above 10% IE6 market-share (ie6countdown.com) and it’s going to take years before that drops below 5%.
My advice? Embrace it. Stop fighting IE6 and understand that all web pages do not have to look or act exactly the same. Remember, you are a professional web developer building web pages. While IE6 has its faults, it is still a standards compliant browser that is designed to view (X)HTML web pages. There is no reason your blog cannot support IE6
Last week, the YUI team announced an update to its Graded Browser Support guidelines (“Graded Browser Support Update“). There has been some confusion in the community as to why IE6 is still on it and what that inclusion implies.
My take? I think it’s a great, thoughtful, step in the right direction. If IE6 were excluded from the EBS, that means dropping all support for the browser and just ignoring it even exists. As much as we’d love for that to be a reality, we’re still far from it happening. Ignoring IE6 even exists means you don’t even consider it when building your web applications. Even some of the more advanced web apps from Yahoo, Google, Facebook, etc… still consider IE6. “Considering” doesn’t mean fully supporting, it just means you provide some tailored experience for those users. That experience could even be a splash page that says “Sorry, you need to upgrade to another browser in order to view this page.” According to the latest GBS, that is absolutely an acceptable experience.
With the rise of HTML5, the world that the GBS exists in today is much different than it was even a year ago. In the past, all browsers had more-or-less the same capabilities, the variance came in implementation and quirks, which libraries helped you work around. There were a few exceptions (e.g. png transparency, performance) but for the most part, they all did the same thing and had similar capabilities. Those days are long gone though. Polyfills can only get you so far until you run into things that simply cannot be done in non-HTML5 browsers (FF<4, IE6-9). Because there’s such a wide-variety of browser capabilities today and it’s especially hard to predict capability support (see: now-you-see-me-now-you-don’t websockets), it’s impossible for the GBS to insist that you provide specific experiences for a set of browsers. The best we can do at this point is just tell you which browsers matter, and the metric for that is market share.
There are some parts of the world (northern Europe) where IE6 traffic is under 1%. Fortunately for them, (in my opinion) they can safely ignore IE6. However, in other parts of the world, such as China, IE6 still accounts for up to 40% of the traffic (“Why Microsoft Can’t Get Rid Of IE6 Yet“). Globally, we’re still above 10% IE6 market-share (ie6countdown.com). Because it still represents a significant market-share, it would be careless to completely drop support for the browser, especially for a JS library.
Along with YUI, jQuery and Prototype both continue to support IE6, along with most other JS libs as well. Why? We have to. If a JS library doesn’t support IE6, you can’t even include it on your pages without fear of seriously impacting the experience for your users. We shouldn’t be the ones who tell you what browsers you can and can’t support, that should be your decision. It’s your product, they are your users, you should decide what is best for them. If you choose not to support a full experience for IE6 users, more power to you. In many cases, I advocate that approach. But, you should at least be confident that if you still wish to provide support for IE6 users, even minimal support, you have confidence that your JS library will work.
While I’m absolutely in favor of pushing the web forward and reducing the usage of legacy browsers, we as web developers have to accept reality. IE6 is the baseline web browser we’re going to have to target for years to come. When you build your next web application and build in basic support for IE6, do not think of it as “Supporting IE6”, think of it as supporting “the web”. We develop atop a platform that considered backwards compatibility to be paramount, and the things we build should work decades from now.
Life has definitely taught me to learn to love the things you must do. In this case, I’m forcing myself to learn to love IE6 all over again. I no longer view it as an annoyance, and instead look at it as a fundamental stepping stone on our journey to build a better web. Years from now, I’m certain we’ll all look back at IE6 with a bit more reverence.