Visitar URL original
RFC: Internet Explorer 11 support deprecation and removal · Issue #41840 · angular/angular · GitHub
Skip to content

RFC: Internet Explorer 11 support deprecation and removal #41840

Description

@IgorMinar

TL;DR

The Angular team is deprecating support for Internet Explorer 11 in Angular v12 (to be released in May 2021 and supported through November 2022), and plans to remove support for this browser in Angular v13 (late 2021).

Why?

The worldwide usage of Internet Explorer 11 (IE11) has been steadily declining for years, and is currently at 0.73% according to StatCounter and 1.70% according to NetMarketShare, meaning that a very small fraction of the overall world population uses this browser and benefits from our effort to support it.

At the same time, IE11 is the last non-evergreen browser that Angular currently supports, and due to the feature gap between IE11 and evergreen browsers, it is becoming increasingly difficult to provide modern features in Angular while also preserving IE11 compatibility.

Since some of the core functionality of the framework, Material components, and CLI must work on IE11, supporting this legacy browser has resulted in complexity, compromises, or even in our inability to offer solutions that would take advantage of modern web APIs.

Community feedback

We'd like the community to weigh in on the timeline of removal of IE11 support.

Angular v12 is planned to be the last version of Angular that supports IE11, this version will be:

  • released in May 2021
  • actively supported through November 2021, and
  • supported under LTS through November 2022

See Angular's support policy & schedule for more information about differences between active and LTS support, and other support policy info.

This timeline seeks to balance when the benefits of IE11 removal will materialize with the need to ensure ecosystem stability and support. If however the community feels strongly that we should move ahead on a more aggressive timeline, or if there are reasons to delay the actual removal further, we'd like to hear from you. Please provide the arguments and use cases in comments below.

This RFC will close on May 10, 2021.

The benefits

Angular is an evergreen platform, meaning that it stays up to date with the evolving Web ecosystem. By removing support for legacy browsers we can focus our efforts on providing modern solutions and better support to developers and users.

There are several groups of stakeholders that will benefit from the removal of IE11 support:

  • Application users

    • the apps will be smaller and load faster thanks to the removal of IE11-specific code
    • the use of modern Web APIs will result in further UX improvements
  • Application authors and stakeholders

    • will benefit from improved APIs and build infrastructure
    • will reduce the risks and liabilities due to known security issues and limitations of IE11
    • can lean on our decision as an argument when talking to application stakeholders about IE11 support (if they still support it)
  • Library authors

    • can lean on our decision and drop IE11 support in their libraries as well (if they still support it)
  • Angular team

    • We'll be able to remove special JS and CSS code paths, polyfills, build passes, and dev infrastructure that exists only because we support IE11.
    • Since IE11 is the last non-evergreen browser we support, we'll gain access to many new modern web APIs and features that have been around for years, but we couldn't use them due to IE11 support and limitations to polyfilling. These APIs include:
      • CSS Variables, Intersection Observers, CSS Grid (components/issues#7374)
      • Native version of EcmaScript APIs (e.g. regexp)
      • Web animation APIs
      • Proxies
      • etc

Background information

Microsoft support

IE11 was initially released almost 8 years ago, in 2013, and since that time, it has been receiving only bug and security fixes. It was superseded by Microsoft Edge, which unlike IE11 is an evergreen browser, which automatically receives feature updates including web platform API enhancements.

On August 17, 2020 Microsoft announced deprecation of IE11 support in Microsoft 365 apps and services, with the removal date set for August 17, 2021. Microsoft Teams already removed support for IE11 on November 30, 2020.

Web API feature gap

The difference in Web APIs & features supported by IE11 compared to evergreen (modern) browsers is too vast to list in this RFC, and can instead be reviewed at caniuse.org.

Browser usage

StatCounter-browser-ww-monthly-202103-202103-bar

source: statcounter.com

Screen Shot 2021-04-26 at 10 32 44 AM

source: netmarketshare.com

Activity

  1. pavankjadda commented on Apr 27, 2021

    @pavankjadda
    Contributor

    The world-wide usage of Internet Explorer 11 (IE11) has been steadily declining for years, and is currently at 0.73% according to StatCounter and 1.70% according to NetMarketShare, meaning that very small fraction of the overall world population uses this browser and benefits from our effort to support it.

    For this exact reason, we shipped first version of the project without IE 11 support. I would agree with you since Microsoft only supports Edge Chromium(for end users)

  2. penfold commented on Apr 27, 2021

    @penfold

    Really glad to see the proactive move away from IE11.

    We registered with MS so that anyone visiting us with IE11 automatically redirect in to Edge.

    https://docs.microsoft.com/en-us/microsoft-edge/web-platform/ie-to-microsoft-edge-redirection#request-an-update-to-the-ie-compatibility-list

  3. MaxArt2501 commented on Apr 27, 2021

    @MaxArt2501

    I think IE usage should be deprecated as soon as Microsoft pulls the plug for its support for consumers, and removed soon after (next version, maybe?).
    If someone needs to still support Internet Explorer, they could either provide the needed polyfills or use an older version of Angular.

    Time to (finally) move on.

  4. e-oz commented on Apr 27, 2021

    @e-oz

    Please consider this option: users who need IE11 support have an option to include tones of polyfills, but it will allow their apps to work.

    Some companies require IE11 support because of “thin clients” they use. They don't care what will be the size of the application since app is for internal use. Leaving them with the outdated framework is not an option - it will not pass a security audit.

    So with the “download tones of your polyfills” option, they would still have the ability to use Angular.

  5. paulparas commented on Apr 27, 2021

    @paulparas

    Good decision, we spend most of our UI development time in fixing that one small control which works in chrome but not in IE & then we spend a lot of our precious time in applying hacks to make it work in IE.

    Clients want us to use latest angular version with IE support just in case someone uses IE. Glad, now they have to chose either latest angular version or IE support. I think timeline is perfect and may even have been earlier as I don't know why someone would use IE in 2021 when they have chromium based edge or chrome. I have a top end i7 laptop and IE still fails to load fast.

    If its just because some people are used to IE and don't want to try anything else , then they need to be forced to use other browsers as otherwise they would keep using IE for another 100 years.

  6. IgorMinar commented on Apr 27, 2021

    @IgorMinar
    ContributorAuthor

    So with the “download tones of your polyfills” option, they would still have the ability to use Angular.

    @e-oz there thank you for your feedback. Angular does all of this today and offers differential loading to minimize penalty for modern browsers. But even with this approach there is many web APIs we wish we could use but simply can't because they would be incompatible with IE11.

    There are real limitations to what can be polyfilled in production-ready (secure, reliable, and performant) way. The same applies to transpilation. And for some APIs its better not to use them at all than to put in place a complex and slow build pipeline that would make things compatible.

  7. added this to the Backlog milestone on Apr 27, 2021
  8. mhartington commented on Apr 27, 2021

    @mhartington
    Contributor

    We have long since dropped IE11 support in Ionic and support this as well.

  9. yharaskrik commented on Apr 27, 2021

    @yharaskrik
    Contributor

    I support this wholly and as quickly as possible. I realize there may be some uses cases that require ie11 but we have to move on and allow angular to evolve as a framework.

  10. mlc-mlapis commented on Apr 27, 2021

    @mlc-mlapis
    Contributor

    Who says, We need IE because ... or It's too expensive to migrate from IE to... ignore the fact that those others pay all expenses (time, money, ...) instead of them, and it has been going on for a long time, and it's not possible to continue by the same way.

  11. sgravrock commented on Apr 27, 2021

    @sgravrock

    Selfishly I'd like to see this go ahead, because it's one of the things that probably has to happen before Jasmine can drop IE support.

    When my clients ask for IE support it's because they need browser upgrades in their organization to be infrequent and planned, and they haven't figured out where else to get that. Dropping IE might be more palatable to those organizations if more than one Firefox ESR version is supported.

  12. alisaduncan commented on Apr 27, 2021

    @alisaduncan
    Contributor

    This feels like a reasonable and generous timeframe to me.

    The B2B app I work on has ~1.7% IE11 users we're working to message transitioning. Being able to point to Microsoft apps and significant dev frameworks like Angular dropping support will help lend credibility to the data we present in our transition messages.

    I appreciate the Angular team asking for input from the community on these major decisions!

  13. 48 remaining items

  14. spock123 commented on Apr 30, 2021

    @spock123

    We specifically do not support any IE version at all. We never had any issues with that - removing support greatly simplifies and improves our solution.

    /update
    Actually I lied, we do "support" IE: we detect IE and tell the users to upgrade /s

  15. IgorMinar commented on May 4, 2021

    @IgorMinar
    ContributorAuthor

    Just a quick summary of the discussion and a reminder that the RFC closes next Monday.

    So far it seems that vast majority of the people that got involved in the discussion support the deprecation and removal timeline as proposed. There are two additional smaller groups of people — those that would like us to outright remove IE11 support in v12, and those that would like to see an extension of the support period.

    Several commenters asked if we could offer polyfills and additional transpilation — this is something we already heavily do and that's how the current IE11 support works, but there are real limitations to what we can do with this approach and we feel strongly that these limitations are holding the entire Angular ecosystem back and prevent all of us taking advantage of using modern Web APIs.

    In #41840 (comment) @SanderElias reminded us that there are real security threats and risks affecting any businesses that still rely on IE11 and these concerns outweigh concerns about teams eventually using unsupported version of Angular.

    If you have additional comments or things that we missed, please let us know. Thank you!

  16. s-gbz commented on May 7, 2021

    @s-gbz
    Contributor

    I am really glad the Angular team is taking a step into a modern, IE free web 🚀 🔥 !
    I also do agree with suggestions as @waynon s (tackle the process even faster) since the only users of IE are "old fashioned" companies that rarely update their systems anyway (my humble experience). They have found workarounds for IE and probably will find further if necessary.

    This is probably not the most objective or persuasive argument, but HEY, we all know there's truth in it 😄 😇

  17. eemt commented on May 7, 2021

    @eemt

    One follow up comment. For those who believe they "need IE support for legacy applications." Microsoft has provided a path forward: Edge/legacy mode. If that doesn't work, that's Microsoft's responsibility to address. It shouldn't hold up everyone else.

  18. hrishikesh-shukla commented on May 8, 2021

    @hrishikesh-shukla

    I totally support the move that is being taken up and timeline also seems perfect. I don't know who is using IE in 2021. Great decision.

  19. bjfu-projects commented on May 10, 2021

    @bjfu-projects

    I do think we can remove support for IE 11 in Angular v12.
    😘😘😘

  20. IgorMinar commented on May 10, 2021

    @IgorMinar
    ContributorAuthor

    This RFC is now closed, thank you everyone for participating.

    Since my last summary of the discussion we heard from several developers that they'd like IE11 support removed in v12. Judging by the number of reactions, it seems that this group of community members is still in minority compared to those that would prefer to go with the originally proposed timeline.

    In reality the difference between dropping IE11 in v12 and v13 at this point in time is negligible. The master/main branch will be open for breaking changes targeting v13 in 2-3 months, so that's when we we'll able to start making IE11 incompatible changes. 2-3 months is insignificant in the long term perspective, and not worth creating the extra inconveniences for developers and teams that still support IE11.

    So to summarize, the originally proposed timeline is the one with the most support, this means that IE11 support will be deprecated in v Angular v12 (to be released in May 2021 and supported through November 2022), and IE11 support removal will occur in Angular v13 (late 2021).

    Thank you again everyone for sharing your thoughts with us and helping us make the decision.

  21. Stargator commented on May 18, 2021

    @Stargator

    @IgorMinar thanks for opening this. I wished I had seen it before the ng 12 release, but I'm happy that the team engaged in this discussion.

  22. pavankjadda commented on May 19, 2021

    @pavankjadda
    Contributor
  23. unpinned this issue on May 21, 2021
  24. angular-automatic-lock-bot commented on Jun 20, 2021

    @angular-automatic-lock-bot

    This issue has been automatically locked due to inactivity.
    Please file a new issue if you are encountering a similar or related problem.

    Read more about our automatic conversation locking policy.

    This action has been performed automatically by a bot.

  25. locked and limited conversation to collaborators on Jun 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: coreIssues related to the framework runtimeneeds: discussionIndicates than an issue is an open discussion

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions