Putting IE to sleep
I had a twitter discussion today with Robert Nyman regarding how we should treat old IEs (6,7 and 8) when we develop. The trigger was his tweet regarding his post from 2 years back that we should stop developing for IE6. Since twitter is fairly limited for this kind of things, here's my real, chatty opinion on this subject.
Stats below are taken from statcounter and regard EU and North America. Other markets' mileage may vary :)
So, what's the problem?
While we certainly can simply ignore IE6 in most of the world (around 2% market share), IE7 still has 7%-11% in the western world. But then again, this is where IE6 was 2 years ago when Robert wrote his post. In any case IE7 can be ignored or simply nudged to upgrade, since it is by all means an obsolete browser.
The real trouble start with IE8. While IE8 is much better then its older brothers, it is still a piece of crap in comparison to today's browsers and it does not support any of the new APIs we need to make the web awesome. It has a market share of 26-34% in the western world and since IE9 is not for XP, it is not going away anytime before the end of 2014 when XP is *finally* decommissioned. It will probably last a little while longer after that as well.
What can we do about it?
There are a few approaches that web developers can use in order to drive people away from the old IEs into the modern web:
- Advocate - Campaigns like HTML5forXP are trying to get the users to upgrade through awareness
- Nag - Display in-site messages that notify the user that he would be getting a better experience if he'd upgrade to a modern browser or install Chrome Frame
- Ignore - Stop testing on old IEs and trying to create a similar experience for these users using various polyfills
- Exclude - Block out old IE users from sites until they upgrade
Robert Nyman — Thu, 31 Mar 2011 11:10:03 GMT
Interesting. I like the discussion, and it's interesting to also talk about business value here. What's the extra cost for developing for an old browser (with a steadily declining user base) and to maintain it etc.
Jordi Boggiano — Thu, 31 Mar 2011 12:18:09 GMT
I think it really depends on the actual website you're working on. That's the problem with many things on the web, there's just not one right answer to any problem. Context is everything.
For styling, the question is quite clear in my opinion, just make it look acceptable in IE, but don't waste time re-creating rounded corners and crap like that. Modernizr can help a great deal here to provide alternative styling for non-supported features. Just like with JS feature detection, this is much nicer than browser sniffing.
The real issue is the new JS APIs. And there I think it just depends on your target market. Some of my sites have 3-5% IE because of the developer-oriented traffic, in those cases it's acceptable to ignore/nag. Like Robert said, if the IE audience grows it becomes a business decision. For some APIs the use of polyfills is fairly painless and in terms of cost doesn't represent much, so I don't think I'd advocate for ignoring IE users there.
What I really can't stand for though is blocking users. Sure it might bring adoption faster, but it's often done poorly. Being an Opera user, I've suffered from blocking many times over the years, from services that just don't want to care fixing bugs. But most of the time I'd be happy to have the option to just use their website, even if buggy, rather than be blocked at the door with a message telling reading "you're not important enough" or "we're too lazy" depending on how you read it.
Similarly, if you're gonna nag, nag intelligently. I stumbled over a site lately that was telling me I don't have the latest version of Opera -which is wrong- with a massive "lightbox" on top of the content. Hello? I am (was?) interested in your content, not in your buggy browser detection script.
adardesign — Thu, 31 Mar 2011 13:29:21 GMT
Time to start telling bed time stories for IE7, hopefully it will fall asleep fast.
egecan — Fri, 01 Apr 2011 07:30:32 GMT
I think the most important factor for flash adoption was video-sharing web sites. You simply couldn't access any of what they are offering without flash (you still can't, for some of them). I also think that the nagging is simply not enough. I know it, because I observed my 50 year old mother use her IE6 for a month and she just ignored the fact that most of the web was broken and sites displaying glowing orange and red errors everywhere. Now I made her switch to Firefox and she keeps complaining about her "missing buttons" and how her old "internet" "just worked". I also don't think we should completely "block" or anything. I just think about not serving stylesheets and then I can tell my mother, "here, look how awesome the web can be". (Probably she will answer, "can I still read my newspaper", but please excuse her) =)
Guest — Sat, 02 Apr 2011 09:58:38 GMT
Didn't Flash get their 95% market share by doing a whole bunch of distribution deals with OEMs to pre-install it on PCs together with Windows?
While ignoring is tempting, you probably don't want 40% of your users to have a shitty experience on your site, so my personal favorite is "nag and ignore the none-essential parts" approach. (kinda like twitter with border radius)
On the other hand, I can't help from reflecting on the fact that Macromedia Flash (before it was bought by Adobe) gained 98% market share through Exclusion. "If you want to see this website - you MUST install Flash" was the paradigm that got it there.
The big question is "Who was the first to exclude users without Flash?" (If anyone knows, I'd love to hear about it). A bigger question is "Will one of the big guns on the web today (Google, Yahoo, Facebook, Bing) start excluding services from old IEs?". I know some of them don't support IE6, but who will be the first to not support IE8? I'm only guessing here, but it probably won't be Bing...
That's it for now.
UPDATE: I found some "Way back machine" stats that indicate that Macromedia Flash made a final market share leap from 90% to 95% in the summer of 2000. Could not find stats before that though...