Dropping IE11 is a conversation
Four different things people mean by dropping it, and the number that hides who's behind it.
“Can we drop IE?”
Yes, I said. It’s under 2%, everything’s moved on, Microsoft themselves have been telling people not to use it as a default browser since February.
And then the client’s operations director, who had been quiet, said that the 2% included every one of their county government customers, because those agencies run a locked-down desktop build and their staff cannot install anything, and those accounts are a third of the revenue.
I have written this post before. In 2014 it was about IE8 and I said that browser support is a commercial decision that keeps getting filed as a technical one, and then five years later I filed it as a technical one in a meeting, out loud, in front of the person whose commercial decision it was.
Four things called “dropping”
The first mistake is that the question is treated as binary, and it has at least four answers that are all called the same thing.
Stop testing it. You no longer open it before you ship. Bugs may exist and you’d find out from a user. This is what most teams mean and it’s the cheapest.
Stop fixing it. You’ll accept a bug report and you won’t act on one. Different from the above and worth separating, because it’s the one that determines what you say when someone complains.
Serve it something deliberately simpler. A single-column, unstyled-ish, fully functional version. This is a design decision that costs work, and it’s the one I usually want.
Block it. A page saying your browser is unsupported. I’ve seen this shipped and I think it’s almost always indefensible for the sort of sites I build.
Those are four different amounts of money and four different amounts of risk, and the conversation goes badly when the developer means the first and the client hears the fourth. Which is roughly what happened to me, since I’d said “drop” and the operations director had pictured a county employee getting a wall.
The numbers, and what they hide
Same as it ever was: ask for the analytics, look at trend rather than the current figure, and then work out who.
The trend part is straightforward and reassuring. IE11 has been declining steadily everywhere I’ve looked, so a number today is an overstatement of the number that matters over the life of the decision.
The “who” part is where it gets interesting, and IE11 is different from IE8 in a specific way. Its remaining users are not stragglers who haven’t got round to it. They’re overwhelmingly people on machines they don’t control: corporate desktops, government and hospital fleets, schools, some manufacturing and logistics. There’s a whole class of internal line-of-business software that only runs in IE, so the browser is pinned by something that has nothing to do with your site.
Those users are disproportionately at work, on the clock, spending someone else’s money. Which is the exact opposite of the assumption “old browser, low value” that everyone including me carries around.
IE11's remaining users mostly aren't people who haven't got round to upgrading. They're people on machines they aren't allowed to upgrade, at work, spending someone else's money.
If the client sells business-to-business, segment by browser and look at revenue rather than sessions before anybody says anything confident.
The cost side, which nobody quantifies
The other half of the trade is never presented, which is why these conversations turn into a vibe.
If you’re going to ask a client to accept a risk, tell them what they’re buying. On a current project, supporting IE11 means: a second CSS layout for anything using grid, a polyfill bundle of around 30 KB that every browser used to download until we split the build, fetch and Promise shims, no custom properties so the theming is compiled twice, and a testing pass that adds most of a day per release.
Put a number on the day per release and the client can do arithmetic. Suddenly it isn’t “should we support an old browser,” which is an identity question, it’s “11 days a year and a slower site for everyone, against a third of revenue,” which is a business question with a defensible answer either way.
The differential-serving trick is worth knowing here because it removes part of the cost without removing the support:
<script type="module" src="/js/app.mjs"></script>
<script nomodule src="/js/app.legacy.js"></script>
IE11 doesn’t understand type="module", so it ignores the first and takes the second. Modern browsers understand both and are specified to skip the nomodule one. So the polyfilled, transpiled, heavier bundle goes only to the browsers that need it, and everyone else stops paying for it. That’s the single highest-value thing I’ve done on this front in a year.
Ask what they should get
The reframing that fixed the conversation, when I went back and had it properly.
Not “can we drop IE11.” Instead: “what should someone on IE11 see?”
That’s a design question, so it goes to the designer and the client together, and the answer is nearly always the same and nearly always reasonable. They should be able to read everything. They should be able to use the forms. They should be able to ring us. It doesn’t have to look like the design.
Which is exactly the Grade B tier I wrote about a couple of years ago, and it turns out the support matrix is most useful not as a document you write at the start but as a vocabulary you have when this comes up in month nine.
What I actually ship
The floor is: all content, all forms, all navigation, in one column, in a system font, without the enhancements.
Getting there is mostly free if you’ve built in the right order. @supports guards the grid layout so IE never enters the block. Flexbox mostly works, with some old bugs you can design around. Anything that’s genuinely enhancement, sticky headers, smooth scroll, the filter that updates without a reload, is feature-detected and simply absent, and the underlying thing it enhances is a link or a form submit that works.
The part I’ve stopped doing is the polite upgrade banner. It sounds helpful and it’s slightly insulting to the person who cannot upgrade, who is now being told they’re the problem by a website, on a machine locked down by an IT department in a different building. If you must, phrase it as “this site works best in a newer browser” and never block anything, and don’t let anyone talk you into a modal.
Not yet, though
Microsoft’s own security lead published a post in February saying IE shouldn’t be anybody’s default browser, and quoting the vendor is much more effective in a meeting than quoting a developer, because it can’t be dismissed as fashion. Worth having to hand.
It’ll be over eventually. There’ll be a support end date and it’ll come and mostly nobody will notice, and I’ll write a slightly wistful post about 12 years of workarounds ending quietly.
Not yet though. Not for the county offices.