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

jQuery: Drop IE<11 support in jQuery 4.0 #4299

Closed
mgol opened this issue Feb 18, 2019 · 12 comments · Fixed by #4347
Closed

jQuery: Drop IE<11 support in jQuery 4.0 #4299

mgol opened this issue Feb 18, 2019 · 12 comments · Fixed by #4347

Comments

@mgol
Copy link
Member

mgol commented Feb 18, 2019

Microsoft has recently announced dropping IE<11 support completely in January 2020, including on Windows Server & Embedded versions. IE 11 will be made available to those supported systems that only had access to Internet Explorer 10 until now.

It seems jQuery 4.0 might be where we'd like to drop IE<11 support. When evaluating that, remember we're not releasing 4.0 right now but most likely closer to 2020 so the situation will make it more & more realistic. And with our strategy to reduce browser support only in major releases, if we don't drop those versions we'll be stuck with them for a long time.

Dropping IE<11 support could help a lot with the big planned refactors, like a rewrite of the event system that gets us closer to native and dropping Sizzle in favor of a smaller querySelectorAll wrapper with selector rewriting to work around issues.

Market share of IE<11 seems very low even right now. StatCounter data shows global IE 10 usage at 0.15% and IE 9 at 0.36%. Even in countries with historically high IE usage like China IE 10 & IE 9 already have small market share. In South Korea IE 11 has high usage at 20.1% but IE 10 - only 0.40% and IE 9 - only 0.18%.

Event netmarketshare.com, which historically shown way higher IE usage than StatCounter, shows all IE<11 versions combined had market of 1.13% in January, 2019.

Let's look at some other popular tools. Most of the ones I checked either already support only IE 11 or no IE at all or plan to drop IE<11 support in their next versions.

What do you think?

@dmethvin
Copy link
Member

Anyone who needs IE<11 support can continue to use jQuery<4 so there's no heavy burden being put on those who need to run on older browsers. I think we've also had a policy that if the vendor doesn't support it we don't support it either. Not just IE but browsers like Firefox where we don't support anything older than ESR.

I've seen people continue to use jQuery 1.x and HTML5 Boilerplate thinking that gives them better compat with older IE, but they're actually using CSS and JS features that aren't supported in IE9. It all works out in the end because they never test on those browsers so they don't know it's broken. 😏

The only other common case I've seen is people running IE11 in IE9 compat mode, but jQuery never supported that. It may kinda sorta work today though, so we might get some people surprised their IE11 in IE9 mode doesn't run jQuery 4.0.

@Johann-S
Copy link

Hi,

Yep in Bootstrap v5 we remove totally IE support, but we'll list polyfills needed for those who plan to use our v5 on IE 11.
BTW our v5 can work with and without jQuery 👍

According to your planning I think it's a good idea to remove IE 11 and it'll decrease a lot jQuery size 👍

@mgol
Copy link
Member Author

mgol commented Feb 19, 2019

@Johann-S This issue is about dropping support for IE<11. I don’t think we’re ready to drop IE 11 just yet.

@cseelus
Copy link

cseelus commented Feb 19, 2019

@Johann-S Unfortunately IE11 still is used quite a lot in some countries (~3% worldwide, South Korea ~20%[1]), so dropping support for it would exclude a lot of users.

  1. https://www.w3counter.com/globalstats.php

@marcus-hiles
Copy link

woow thats a big one, not a fan of IE, but I think this will affect lots of people and lots of sites.
These guys just keep disturbing developers lives!

@dmethvin
Copy link
Member

@marcus-hiles not sure I understand. Do you know of a lot of sites that have users of IE10 or earlier? Are those sites actively developing their code and updating their jQuery to the latest version? No site currently using jQuery 1.x, 2.x, or 3.x will be affected by us releasing jQuery 4.0. How would people be affected?

@marcus-hiles
Copy link

marcus-hiles commented Feb 21, 2019

@dmethvin
Trust me, u'll get about 60% of developers who are newbies or mid-level developers who hardly check all browser support versions before jumping to the latest versions of libraries, and this can happen to them with jquery 4.0. Normally once they check their code in the browser they are working in, which might be Firefox or chrome and since it works for them, they are done. Only for their applications to go live and clients start complaining several times and even stop using their plugins or site, before they notice. If they are lucky, they'll discover this early and work on it, if not its doomsday for them.

A lil suggestion is, there could be a fallback implemented in jquery, so that it detects if your browser is <IE11 and calls a deprecated function or native javascript function in the background to implement whatever jquery function you call.

@mgol
Copy link
Member Author

mgol commented Feb 21, 2019

@marcus-hiles If a developer only checks how their site looks & works only in Chrome & Firefox, the chance it will work properly in IE is minuscule, even if they use libraries in versions that support IE <11. jQuery makes it easier to avoid cross-browser issues but it doesn't solve this problem completely. You still need to use only those browser features that are supported and even then your code may trigger bugs in some legacy browsers (e.g. even IE 11 has lots of flexbox issues).

With IE <11 having a tiny market share that will only get tinier when we release 4.0 (this will not happen anytime soon) most people shouldn't care about their code working in those browsers.

A lil suggestion is, there could be a fallback implemented in jquery, so that it detects if your browser is <IE11 and calls a deprecated function or native javascript function in the background to implement whatever jquery function you call.

It's not that simple. We have browser-related workarounds sprinkled around the code base and they are usually not jQuery representatives of a native method. If we remove support for older IE then the support is gone and it's impossible to make it work via some clever hacks like that.

@DemonCloud
Copy link

remove IE<11 support. Let developers who need to be compatible with lower-level browsers use the old version of jQuery. jQuery needs to streamline code and improve performance

@PlippiePlop
Copy link

PlippiePlop commented Feb 22, 2019

Is it not easier to make an IE-JQ-polyfill.js for < IE11 which you can load in case you need < IE11 support in 2020. Even IE11 support is questionable in 2020

@mgol
Copy link
Member Author

mgol commented Feb 22, 2019

@PlippiePlop No, it's not that simple for the reasons I mentioned in my last comment. This would only increase code complexity and wouldn't buy us anything.

@timmywil
Copy link
Member

timmywil commented Mar 4, 2019

The team agrees and we'll be dropping IE < 11 in 4.0. This ticket will stay open to track progress.

mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 13, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 15, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
@mgol mgol self-assigned this Apr 15, 2019
@mgol mgol changed the title jQuery: Drop IE<11 support in jQuery 4.0? jQuery: Drop IE<11 support in jQuery 4.0 Apr 17, 2019
mgol added a commit to mgol/jquery that referenced this issue Apr 17, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 23, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 29, 2019
…& PhantomJS

Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit that referenced this issue Apr 29, 2019
…& PhantomJS

Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Fixes gh-3950
Fixes gh-4299
Closes gh-4347
@lock lock bot locked as resolved and limited conversation to collaborators Oct 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.