{"id":296714,"date":"2019-10-28T07:13:14","date_gmt":"2019-10-28T14:13:14","guid":{"rendered":"https:\/\/css-tricks.com\/?p=296714"},"modified":"2020-01-10T17:31:02","modified_gmt":"2020-01-11T00:31:02","slug":"a-business-case-for-dropping-internet-explorer","status":"publish","type":"post","link":"https:\/\/css-tricks.com\/a-business-case-for-dropping-internet-explorer\/","title":{"rendered":"A Business Case for Dropping Internet Explorer"},"content":{"rendered":"

The distance between Internet Explorer (IE) 11 and every other major browser is an increasingly gaping chasm. Adding support for a technologically obsolete browser adds an inordinate amount of time and frustration to development. Testing becomes onerous. Bug-fixing looms large. Developers have wanted to abandon IE for years, but is it now financially prudent to do so?<\/p>\n

<\/p>\n

First off, we\u2019re talking about a dead browser<\/h3>\n

Development of IE came to an end in 2015. Microsoft Edge was released as its replacement, with Microsoft announcing<\/a> that \u201cthe latest features and platform updates will only be available in Microsoft Edge\u201d.<\/p>\n

Edge was a massive improvement over IE in every respect. Even so, Edge was itself so far behind in implementing web standards that Microsoft recently revealed that they were rebuilding Edge from the ground up using the same technology that powers Google Chrome.<\/p>\n

Yet here we are, discussing whether to support Edge\u2019s obsolete ancient relative. Internet Explorer is so bad that a Principal Program Manager at the company published a piece entitled The perils of using Internet Explorer as your default browser<\/a> on the official Microsoft blog. It\u2019s a browser frozen in time; the web has moved on. <\/p>\n

\"Newspaper
Publications have spelled the fall of IE since 2015.<\/figcaption><\/figure>\n

Browsers are moving faster than ever before. Consider everything that has happened since 2015. CSS Grid. Custom properties. IE11 will never implement any new features. It\u2019s a browser frozen in time; the web has moved on.<\/p>\n

It blocks opportunities and encourages inefficiency<\/h3>\n

The landscape of browsers has also changed dramatically since Microsoft deprecated IE in 2015. Google developer advocate Sam Thorogood has compiled a list of all the features<\/a> that are supported by every browser other than IE. Once the new Chromium version of Edge is released, this list will further increase<\/a>. Taken together, it\u2019s a gargantuan feature set, comprising new HTML elements, new CSS properties and new JavaScript features. Many modern JavaScript features can be made compatible with legacy browsers through the use of polyfills and transpilation. Any CSS feature added to the web over the last four years, however, will fail to work in IE altogether.<\/p>\n

Let\u2019s dig a little deeper into the features we have today and how they are affected by IE11. Perhaps most notable of all, after decades of hacking layouts on the web, we finally have CSS grid, which massively simplifies responsive layout. Together with CSS custom properties, object-fit<\/code>, display: contents<\/code> and intrinsic sizing, they\u2019re all examples of useful CSS features that are likely to leave a website looking broken if they\u2019re not supported. We\u2019ve had some major additions to CSS over the last five years. It\u2019s the cumulative weight of so many things<\/em><\/a> that undermines IE as much as one killer feature.<\/p>\n

While many additions to the web over the last five years have been related to layout and styling, we\u2019ve also had huge steps forwards in functionality, such as Progressive Web Apps. Not every modern API is unusable for websites that need to stay backwards compatible. Most can be wrapped in an if<\/code> statement. <\/p>\n

if ('serviceWorker' in navigator) {\r\n\/\/ do some stuff with a service worker\r\n} else {\r\n  \/\/ ???\r\n}<\/code><\/pre>\n

You will, however, be delivering a very different experience to IE users. Increasingly, support for IE will limit the choice of tools that are available as library and frameworks utilize modern features.<\/p>\n

Take this announcement from Evan You about the release of Vue 3, for example: <\/p>\n

The new codebase currently targets evergreen browsers only and assumes baseline native ES2015 support.<\/p><\/blockquote>\n

The Vue 3 codebase makes use of proxies \u2014 a JavaScript feature that cannot be transpiled<\/a>. MobX is another popular framework that also relies on proxies. Both projects will continue to maintain backwards-compatible versions, but they\u2019ll lack the performance improvements and API niceties gained from dropping IE. Pika<\/a>, a great new approach to package management, requires support for JavaScript modules, which are not supported in IE. Then there is shadow DOM \u2014 a standardized part of the modern web platform that is unlikely to degrade gracefully.<\/p>\n

Supporting it takes tremendous effort<\/h3>\n

When assessing how much extra work is required to provide backwards compatibility for a deprecated browser like IE11, the long list of unimplemented features is only part of the problem. Browsers are incredibly complex pieces of software and, despite web standards, browsers are inconsistent. IE has long been the most bug-ridden browser that is most at odds with web standards. Flexbox (a technology that developers have been using since 2013), for example, is listed on caniuse.com as having partial support on IE due to the “large amount of bugs present<\/a>.”<\/p>\n

IE also offers by far the worst debugging experience \u2014 with only a primitive version of DevTools. This makes fixing bugs in IE undoubtedly the most frustrating part of being a developer, and it can be massively time-consuming \u2014 taking time away from organizations trying to ship features.<\/p>\n

There\u2019s a difference between support \u2014 making sure something is functional and looks good enough<\/em> \u2014 versus optimization, where you aim to provide the best experience possible. This does, however, create a potentially confusing grey area. There could be differences of opinion on what constitutes good enough<\/em> for IE. This comment about IE9 from Dave Rupert<\/a> is still relevant: <\/p>\n

The line for what is considered “broken” is fuzzy. How visually broken does it have to be in order to be functionally broken? I look for cheap fixes, but this is compounded by the fact the offshore QA team doesn\u2019t abide in that nuance, a defect is a defect, which gets logged and assigned to my inbox and pollutes the backlog\u2026Whether it\u2019s polyfills, rogue if-statements, phantom styles, or QA kickbacks; there are costs and technical debt associated with rendering this site on an ever-dwindling sliver of browsers.<\/p><\/blockquote>\n

If you\u2019re going to take the approach of supporting IE functionally, even if it\u2019s not to the nth degree, still confines you to polyfill, transpile, prefix and test on top of everything else.<\/p>\n

It\u2019s already been abandoned by many top websites<\/h3>\n
\"Website<\/figure>\n

Popular websites to officially drop support for IE include Youtube<\/a>, GitHub<\/a>, Meetup<\/a>, Slack<\/a>, Zendesk<\/a>, Trello<\/a>, Atlassian<\/a>, Discord<\/a>, Spotify<\/a>, Behance<\/a>, Wix<\/a>, Huddle<\/a>, WhatsApp, Google Earth and Yahoo<\/a>. Even some of Microsoft\u2019s own product\u2019s, like Teams<\/a>, have severely reduced support for IE.<\/p>\n

\"Whats<\/figure>\n

Twitter displays a banner informing IE users that they will not receive the best experience and redirects users to a much older version of the Twitter website. When we think of disruptive companies that are pushing the best in web design, Monzo, Apple Music and Stripe break horribly in IE, while foregoing a warning banner.<\/p>\n

\"Stripe
Stripe offers no support or warning.<\/figcaption><\/figure>\n

Why the new Chromium-powered Edge browser matters<\/h3>\n

IE usage has been on a slower downward trend following an initial dramatic fall. There\u2019s one primary reason the browser continues to hang on: ancient business applications that don\u2019t work in anything else. Plenty of large companies still use applications that rely on APIs that were never standardized and are now obsolete. Thankfully, the new Edge looks set to solve this issue. In a recent post, the Microsoft Edge Team explained<\/a> how these companies will finally be able to abandon IE:<\/p>\n

The team designed Internet Explorer mode with a goal of 100% compatibility with sites that work today in IE11. Internet Explorer mode appears visually like it\u2019s just a part of the next Microsoft Edge…By leveraging the Enterprise mode site list<\/a>, IT professionals can enable users of the next Microsoft Edge to simply navigate to IE11-dependent sites and they will just work.<\/p><\/blockquote>\n

\n

.@MicrosoftEdge<\/a>: one browser for all web experiences. IE mode will allow you to view and access legacy sites directly in the same window. #MSBuild<\/a> https:\/\/t.co\/NXcDjDB5B4<\/a> pic.twitter.com\/x7BtCtASNs<\/a><\/p>\n

— Microsoft Edge Dev (@MSEdgeDev) May 6, 2019<\/a><\/p><\/blockquote>\n