Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intent to Deprecate: IE11 Support #34453

Closed
kristoferbaxter opened this issue May 19, 2021 · 29 comments
Closed

Intent to Deprecate: IE11 Support #34453

kristoferbaxter opened this issue May 19, 2021 · 29 comments
Labels
INTENT TO DEPRECATE Proposes deprecating an existing AMP feature.

Comments

@kristoferbaxter
Copy link
Contributor

kristoferbaxter commented May 19, 2021

Summary

Microsoft has announced a final date for IE11 support: https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/

I'd like to propose we deprecate IE11 support on an aggressive schedule to coincide with the official timings from Microsoft.

Motivation

The AMP codebase contains a significant number of workarounds for compatibility with IE11, removing these workarounds nets a smaller and more performant library (as evidenced by our module/nomodule support today).

Dropping IE11 compatibility will allow the codebase to take advantage of more modern APIs in the CSS layer and JS layer without introducing additional testing pressure to ensure polyfills work for an increasingly out of date browser platform.

Additionally, there is a significant improvement to CI by removing IE11 support (estimated to be 18m+ per execution).

Impact on Existing Users

Existing users sometimes rely on AMP to handle IE11 compatibility issues, ensuring documents render as expected (minus custom CSS). This plan removes support, and as a result could introduce broken behaviour for IE11 users.

Alternative Implementation

Alternatively, we could continue to support IE11 in the nomodule codebase and exclude CSS rules that break rendering in IE11 or are unsupported.

Additional Context

  1. This falls under the "Changes that affect fewer than 0.1% of crawler-accessible AMP pages" rule. Meaning no major revision bumps are required.
  2. This has now passed the two week conversation timeline per rule "Allow at least 2 weeks of open discussion after the I2D is created before proceeding with the deprecation of the feature".
  3. Discussion is now planned for the June 9th Design Review.
  4. Pending approval from 3 approvers, this change will be announced on the mailing list and on Slack.
  5. Following announcement the change will land in roughly 6 weeks to production.

Notifications

/cc @ampproject/wg-approvers

@kristoferbaxter kristoferbaxter added the INTENT TO DEPRECATE Proposes deprecating an existing AMP feature. label May 19, 2021
@nainar
Copy link
Contributor

nainar commented May 19, 2021

Let's do it!

@rsimha
Copy link
Contributor

rsimha commented May 19, 2021

+1 to deprecating IE11 as soon as is feasible. Doing so will also help eliminate a large number of special case code paths in test and infrastructure code and simplify our CI workflows.

@jridgewell
Copy link
Contributor

jridgewell commented May 19, 2021

🎉💯🎊

@cramforce
Copy link
Member

What data do we have to inform this decision?

@cramforce
Copy link
Member

Also, CCing @ampproject/tsc

@davidstrauss
Copy link
Contributor

The only counterpoint I think I can think of is to consider whether this affects any marginalized populations who, for any reason, have access to IE11 but not alternatives. I suspect that's not the case because I think IE11 is only available versions of Windows that are new enough to support alternatives as well. This was definitely a major issue for older IE versions, which remained in broad use (often without users having access or awareness of alternatives) well beyond Microsoft's support cycle.

If Edge is available everywhere IE11 is, though, I'm probably +1 on deprecation. Microsoft certainly isn't shy in letting users know about the alternative option of Edge if you use literally anything else, at least on Windows 10.

@dvoytenko
Copy link
Contributor

I think Edge and Chrome both available everywhere where IE11 is. I roughly remember this was one of the reasons Edge switched to Blink. One of the major sources of holdovers might actually be enterprise-like users with the enterprise apps hardcoded to IE features and where a browser upgrade might be disabled by admins. This still might be a relatively important segment of userbase, however. For instance, it might include many libraries throughout the world.

That being said, if we go through our normal deprecation process, it should take us well past the official end-of-life published by Microsoft, which is June 2022.

@cramforce
Copy link
Member

Another nail in the coffin is that Edge support "IE11 frame" where admins can designate certain domains to use MSHTML (legacy IE11 renderer) to render certain domains within Edge (so legacy apps that needs IE11 are not a problem). I've also heard that IE11 already opens Edge for certain domains by default where Microsoft determined that IE11 cannot render them (like youtube).

From Google's data (not specifically) for AMP there is definitely a major weekend/weekday swing in IE11 usage indicating the enterprise bias that Dima mentioned.

Overall usage is very low and sinking quickly.
IE market share

I wonder if we have similar data for the AMP runtime.

@kristoferbaxter
Copy link
Contributor Author

@jridgewell is working on getting data from cdn.ampproject.org which we can share.

@kristoferbaxter
Copy link
Contributor Author

Percentage of Requests for AMP JavaScript Resources for IE11 from cdn.ampproject.org
Weekday – 0.001%
Weekend – 0.04%

@cramforce
Copy link
Member

@kristoferbaxter Is this both AMP Cache and origin traffic? Could you break it out?

@kristoferbaxter
Copy link
Contributor Author

This is both the Google AMP Cache and Origin traffic. We can split it out, but it will take a little bit.

@kristoferbaxter
Copy link
Contributor Author

kristoferbaxter commented Jun 3, 2021

From @jridgewell here are some recent stats for Google AMP Cache and Origin traffic.

Day Cache? IE11
5/27/2021 FALSE 0.24%
TRUE 0.03%
5/28/2021 FALSE 0.22%
TRUE 0.04%
5/29/2021 FALSE 0.21%
TRUE 0.02%
5/30/2021 FALSE 0.22%
TRUE 0.06%
5/31/2021 FALSE 0.24%
TRUE 0.03%
6/1/2021 FALSE 0.25%
TRUE 0.07%
6/2/2021 FALSE 0.23%
TRUE 0.02%
Grand Total FALSE 0.23%
TRUE 0.04%

@dvoytenko
Copy link
Contributor

The higher percentage on non-cached pages make sense. The numbers are actually better (that is worse for IE) than I expected.

@jridgewell
Copy link
Contributor

After design review, I approve this change.

@rsimha
Copy link
Contributor

rsimha commented Jul 13, 2021

+1, approve.

@cramforce
Copy link
Member

Approved ✅ 🎉

@davidstrauss
Copy link
Contributor

I don't know if you need any more +1s, but here's mine!

@kristoferbaxter
Copy link
Contributor Author

Fantastic, this is enough approvers and after enough time to make a public announcement and start work.

I'll kick this off today.

@kristoferbaxter
Copy link
Contributor Author

kristoferbaxter commented Jul 15, 2021

Steps to complete:

@dvoytenko
Copy link
Contributor

+1

@vinayakkulkarni
Copy link

First vue, then Svelte.. Now everyone is deprecating IE!

Good days ahead for web devs

@niutech
Copy link
Contributor

niutech commented Sep 27, 2021

How about legacy Windows Phone devices, which have only Internet Explorer Mobile? I know they are unsupported, but still some people browse the Internet through them. Please don't break the web and at least provide basic backwards compatibility with IE, like static HTML with CSS and images, so that legacy users could see some content instead of White Screen Of Death.

@samouri
Copy link
Member

samouri commented Sep 27, 2021

How about legacy Windows Phone devices, which have only Internet Explorer Mobile? I know they are unsupported, but still some people browse the Internet through them. Please don't break the web and at least provide basic backwards compatibility with IE, like static HTML with CSS and images, so that legacy users could see some content instead of White Screen Of Death.

Previous to this I2D we were maintaining not perfect but not broken support for IE11. Given our recent stats that say < 0.23% of all page visits stem from IE11, we've decided to stop putting in effort to maintain support. While its likely much of the text/css/images of the pages will still render, most interactivity may break.

@cramforce
Copy link
Member

But, FWIW, ideally this does not lead to White Screen Of Death. That should be true at least as long as the JS syntax we are serving can be parsed by IE11.

@jridgewell
Copy link
Contributor

That should be true at least as long as the JS syntax we are serving can be parsed by IE11.

We also allow the <script amp-error> that will detect if there was a syntax error thrown by parsing v0.js, and will unhide the document. So, if we serve new syntax (or APIs) that IE11 can't handle, the document should be shown during the next event loop.

@jimmywarting
Copy link

+1 from me. Push the development forward!

Forcing developer to force users to upgrade browser will make other developers happy that it's gone and isn't forced to stick with something so old

@niutech
Copy link
Contributor

niutech commented Nov 9, 2021

@jimmywarting but not everybody can upgrade its browser. Think about legacy devices (such as Windows Phone) or out-of-date companies still sticking to IE. The web should be backwards compatible as much as it can, at least provide a readable fallback. You can go forward with innovations and provide a basic experience for legacy browsers.

@samouri
Copy link
Member

samouri commented Nov 9, 2021

Thank you all for the discussion.

We've already removed support for IE11 and completed all of the steps outlined here on Aug 26th.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
INTENT TO DEPRECATE Proposes deprecating an existing AMP feature.
Projects
None yet
Development

No branches or pull requests