Oli Warner About Contact Oli on Twitter Subscribe

It’s time we buried Internet Explorer 8

Thursday, 13 November 2014 browsers ie8 microsoft webdev

Every web developer loves to wail on Internet Explorer but we need to act now if we want to stop the history of IE6 repeating itself with IE8. The longer we don’t, the longer we agree to limit ourselves to not using new and exciting features that make the internet better and our lives easier.

Internet Explorer 8 is 35 years old! Okay, okay, it’s only 5½ but consider that in Internet Years. When IE8 was released in 2009, neither Android or Twitter were mainstream… and people still found BlackBerries desirable. In digital terms, IE8 was released a million years ago.

A large part of being a web developer is supporting crappy old browsers. We spend all day with Mozilla and Chrome splashing their fancy new features around in our faces before we remember that we’re not allowed to have fun; we need cross-browser support.

Our clients only care about their users buying stuff from them. There’s simply no time or will to fight over browsers. And that means we developers have to suck it all the way up and learn to avoid a whole raft of CSS3, SVG and HTML5 features. These are things that could ultimately make websites better and also save us time developing. Some of the cracks can be papered over with Javascript but you still have to raster out your vectors and anything complicated can quickly become an elaborate stack of hacks.

Even remembering that 5 years is forever in tech years, the volume of stuff IE8 doesn’t support is astounding. It’s not just fancy HTML5+CSS stuff. It doesn’t support TLS Server Name Indication which means you need a unique IP for every SSL certificate you deploy. That sort of stuff just makes me furious because IPv4 isn’t infinite and its addresses are rationed. Even stupidly simple things like box-shadow aren’t supported, and made doubly infuriating because proprietary crap like DXImageTransform.Microsoft.DropShadow exists… That’s right, IE8 is able to render a drop-shadow but Microsoft were too arrogant to make it available through [draft] standard CSS.

I think we’ve established that kaka kaka IE8 is awful… And yet 5-10% of the Internet is still using it.

If IE9 has been around for 3 years, why hasn’t everybody and their dog upgraded already?!

There are a couple of things going on.

IE8 was the last version of IE8 that Microsoft made for Windows XP so XP users either stick with IE8, use another browser or an upgrade to Windows Vista, 7 or 8. Even if they know this is the case, some people will just they wait for their computers to die of natural causes rather than upgrade. Things lag.

My assumption had always been that all IE8 users were on Windows XP. Windows Vista and 7 users could upgrade to IE9 and IE10 respectively so they’d never be an issue… But looking at my web statistics, 45% of IE8 users are using Windows 7, they just haven’t updated IE. This is all down to the Microsoft’s awful approach to upgrades. Despite stories to the contrary, if you want to upgrade IE, you have to go into Windows Update and manually select the upgrade. This same stupid “feature” was what left us with IE6 for all those years. People just didn’t know they needed to upgrade. So didn’t.

That does still have 55% of users down as computing dinosaurs who refuse to upgrade their machines. Since neither XP or IE8 get security updates any more, they’re bumbling around the internet picking up every bit of malware known to man. They’ll inevitably be recruited into a botnet at some point. They’re frankly as much a risk to us as they are themselves.

And there are two groups the buck all other trends: Large enterprise IT departments are occasionally filled with lazy and largely incompetent jobsworths figuring out the paths of least resistance to make their lives easier. And China because there’s so much piracy there (and therefore so little working Windows Update). Seriously, ~5% of China is using IE6 and ~13% on IE8.

But we’re just web developers, what could we possibly do to influence the great unwashed?

Enterprise IT and China can both go swivel on it. Your enterprise users are paying you to support them so just make them pay extra to keep supporting IE8. If that’s a detailed cost, they might get the idea eventually. Otherwise there’s nothing we or Microsoft can do to influence them; they’re both lost causes. If you need to support IE8 indefinitely, I guess that’s that. We’ll see you in 2020 when they’ve finally upgraded.

For everybody else…

It's simple, we kill the IE8

Education is going to be the easiest issue to solve. Unfortunately Windows computers don’t explode when something on them leaves its support period. This is a major design flaw which keeps people oblivious people using ancient software indefinitely. Let’s just tell them what the score is. Knowing is half the battle, right?

So if you own a website, you can make your IE8 users aware their browser is ancient. There are numerous solutions out there but it can be as simple as just adding a conditional header to your main template. You can highlight a few things:

Here’s my simple example using conditional comments. It’s fairly low impact but won’t annoy too many people.

<!--[if lt IE 9]>
<p class="alert">Thanks for visiting my website. The browser you're
using is <em>ancient</em>. Even Microsoft has stopped supporting it
which means it's quite <strong>dangerous</strong> to keep using it.
It also means I have to take extra steps to make sure this site
works on your ancient browser.</p>
<p class="alert">Do the Internet a favour and
<a href="http://windows.microsoft.com/internet-explorer/">upgrade to
the latest Internet Explorer</a>... or use another browser like Chrome
or Firefox. If you're on Windows XP, your whole operating system is
putting you and others at risk. Please upgrade.</p>

I use a shorter one in my template but my IE8 users are pretty few already. The next step is to actively stop supporting IE8 and start using the things you’ve been holding back from. When people notice their browser isn’t offering them the experience they want, they’ll get the message.

But this didn’t work for IE6, did it? Why would it work for IE8?

It did work but it took us forever to notice there was a problem. We expected IE6 to die naturally. It didn’t.

Our rationale was that new versions of Windows were generally considered good upgrades and computer hardware was also improving at pace. Every couple of years, everybody would chuck out their old desktop and bring in this shiny new thing with a new copy of Windows. When Vista came out and was slated, people stopped upgrading. Hardware development pace has also slowed and with it (and a shift to mobile) people’s enthusiasm for expensive Hardware+Windows has evaporated.

Once developers realised XP and IE6 would never die organically and started to lose their shit, banners and tools like sevenup started popping up to tell IE6 users of their insolence. Within a few years, IE6 dropped under 5%. Then the big sites like Google started dropping support and usage flew below 2% within a year. IE6 usage is currently around 1% and largely unusable on the modern internet; the way it should be.

We need to start the wheel turning for IE8. Just hoping it’ll go away doesn’t work because that’s just not what happens with software.

What’s next? What will the deaths of IE9 and IE10 bring?

Until Microsoft fix how they upgrade Internet Explorer —so major versions are little more than an automatic update like in Chrome, or packaged up separately from the core OS as in Ubuntu— we’re destined to go through this cycle of uptake, decline and venomous hatred every couple of years. I already hate IE9, I just hate IE8 more.

Can I Use has a great search function that allows you to compare dinosaurs like IE9 and IE10 against the development builds of Chrome and Firefox. I’m personally looking forward to using FlexBox for layouts but I know a lot of people want decent 3D transforms.

The internet of tomorrow is going to be a beautiful thing to develop on, but only if we can get rid of the crappy old browsers that hold us back.