Feb 2015: 3½ years later, we’re in a better place. The new IE Spartan project has killed off document modes. (Technically, still possible in firewall environments, but… effectively dead for us.) These days, our IE support landscape is IE8 (still), IE11, and IE Mobile. 3 is definitely better than 72.
Cheers to Microsoft & the IE team for doing their best to address legacy and bring IE into the fold of evergreen browsers.
You may soon be developing for 76 browsers.
(╯°□°)╯︵ ┻━┻
Lemme take a step back… So it’s fair to say that for most of us, IE6 has gone the way of the dodo. Good! Now in IE7, we have less CSS issues, working PNGs, but pretty much the exact same JavaScript engine (though faster). IE8 gives a few more goodies (localStorage, postMessage, hashchange event) that’ll be nice to use when we retire IE7, but IE8 will be with us for a while.
Since Windows XP still accounts for 46.6% of Windows users, IE9+ adoption has a significant upper bound. More: How Microsoft is handicapping its own web browser and IE9 adoption is painfully slow. Google to the rescue?
IE6 has been a source of pain for… I’d say four years. IE8 will be a source of pain for the next 9, it appears. You’re clearly aware that IE9 (and IE10…) are not available on Windows XP, even though Firefox and Chrome continue to ship versions for that operating system (still 40% of the Windows market), so unless the whole world shells out $79 for an upgraded OS, they won’t get an upgraded browser, without switching. That’s terrible, clearly. But this isn’t the worst part. No, no…
How many browsers would you like to support?
Personally, I’m totally happy supporting the latest version of each of the five browsers. IE10 will be a very impressive browser, and the latest releases of Chrome, Firefox, Safari, and Opera are all incredible as well. Supporting the legacy versions is not exactly my idea of a good time, but ya know.. With IE6,7,8,9.. I’m used to it.
It’s about to get worse
IE looks to be on a yearly release cycle. Great! IE10 out in March-ish.. IE11 a mere 52 weeks after that. (Mind you, Firefox and Chrome are shipping every 6 weeks these days). But what’s far more important than shipping frequency, is the browser half-life.
Products like Windows and Office have a lifecycle policy that typically runs 10+ years because that’s what these organizations need. As part of Windows, IE honors that 10+ year commitment. ~Dean Hachamovitch, IE Corporate VP
IE9 and IE10 are both scheduled to be sunset (as far as official Microsoft support) in 2020. Since IE8 shipped with Windows 7, we can expect the same death date for it. Yes, IE8’s death date is 9 years from now. Meanwhile, you won’t have to worry about supporting Firefox 6 or Chrome 13 in November.
Extrapolating this, if they maintain the same policy, IE17 be released in 2019, before IE8, 9 and 10 finally die. So in a few years from now, you’ll be supporting one version of Chrome, one version of Firefox, one of Opera, (probably) one of Safari, and ten versions of IE.
Did I say 10 versions of IE? I meant to say 72.
72 versions of IE on the wall, 72 versions of IE… Maybe drinking beer at this point in the post would be a smart move.
So you’re aware that IE ships with multiple document modes. IE essentially ships with legacy versions of the renderer so that you can upgrade your browser but still see content that was terribly coded and cannot withstand the reality of web development, therefore it needs to be locked into a single version. I worded this differently a bit ago.
We seem to be using this term of “intranet apps” or “internal corporate apps” just as a euphemism for poorly written code. Consumer facing apps have been handling new and unknown browser versions day in and day out for years. Like Kroc said, “Corporate users should be testing their applications against standards, not browser version numbers.”
So IE9 contains IE8, IE7, and IE5 modes. IE10 contains modes for IE9 and on down the line.
The problem percolates when you come to terms with the fact that many of these modes are not the same as the original browser. For example:
- IE8’s IE7 mode: adds sessionStorage & localStorage, false positives on a feature test for the hashchange event, mishandles rowspan, and some other event and attribute differences.
- IE9’s IE8 mode: intermittently false positives on a feature test for inline SVG. Renders CSS differently than true IE8, and is crashier than the real one.
These are not browsers with reliable replicated browser versions embedded, these are frankenstein versions that behave unpredictably. (To better understand the internals, the new JScript engine (these days it’s called Chakra) is used in the compatibility modes, but IE engineers remove features and add bugs to make them “match” earlier behavior. Luckily they run at their modern speed, but run with a whitelist of bugs being put in place. MSFT has all reason to keep these compat modes as identical as possible, so we should expect fewer issues in IE10+’s compat modes.)
Of course, there is the matter of what % of market share it takes for you to “support” a browser (test against during dev / QA against / customize your experience for).. It’s possible some of these IE versions won’t have enough numbers for us to care. Kind of like how we support Firefox 3.6 and 6, but not 4 or 5. (btw, Mozilla will soon pull the lever to prompt 3.6 users to upgrade).
Where, from here? Do we have solutions?
All this news isn’t the best, certainly. What are our options?
Asking your users to upgrade their IE version to the latest? We’ve been naively doing this for a while now, but we’ve only been shooting ourselves in the foot. Without an upgrade policy for IE that takes the web seriously, you can’t responsibly ask your users to upgrade to the latest IE (the future’s boat-anchor browser.)
boat-anchor browser (noun): the browser with enough users and not enough capability, holding back the potential of the web. [via]
IE version pigpile. Chrome’s silent auto-updates (charts via arstechnica)
Microsoft’s move. Maybe the IE team will introduce a way to upgrade their users well and also serve their business audience that are interested in a snapsnot of the web that doesn’t change. Maybe they’ll also introduce a better solution for testing in their browsers than running four (soon five) unique Windows OS images.
Chrome Frame gives us a solid option for handling this situation. (Also, if you haven’t read these three posts by Alex Russell… do so.) At the very least, Chrome Frame will automatically update and has the user-perceived benefit of being “just a plugin” (that all users can install) instead of switching to a whole new browser.
I’m almost done, I swear
Clearly, having your users on a browser that not only iterates quickly but appreciates developers by guaranteeing a short browser half-life is a boon to you and the success of the experiences you can deliver. All the browsers are racing to deliver features and speed to you and your users (including IE).
Seriously, all browser engineers are doing incredible, fantastic work. But without a strategy for how this turns out in the long term, this IE situation will become a complete mess—costing you enormous time in designing how scale your design to 76+ browsers, testing it, QA’ing it, and maintaining it.
The IE team is incredibly talented and wise; I think they have a great opportunity here to make the right move (like when they reversed policy on X-UA-Compatible). Perhaps with Win8 and Metro we’ll see a more aggressive approach towards bringing the full potential to the web to all its users.
Now, I apologize for writing what seems to be a less-than-optimistic post. But truly, from the conversations I’ve had with the IE team to everything said publicly on the matter, this looks to be the impending reality. I’d be happy to correct or amend this post with any facts that conflict with the picture I’ve painted above.