Drop support for IE11
Motivation
- Continuing to support IE adds on maintanence burden.
- Dropping the support would simplify and unblock switch to es-build.
- Support for IE is generally decreasing with EOL date for certain OS is set for mid 2022.
Current status
- iD editor works in IE11, however the user editting experience is bad - inconsistent ui elements, unexpected pointer events etc.
- osmwebsite stats show that iD editor is getting <10 hits daily via IE11, ~0.1% of all hits
- Few members have voted in favor of dropping the support and RapiD is planning on doing the same (https://github.com/facebookincubator/RapiD/issues/387). This and some additional info is available in https://github.com/openstreetmap/iD/pull/8774
Tasks
- If I am reading https://github.com/openstreetmap/iD/issues/8527 correctly, it seems that the current phantomJS has a dependency on legacy build, however switching to karma https://github.com/openstreetmap/iD/pull/8764 should unblock this.
- I don't have a full context on the development of the IE11 specific features in the past, however here are todo items that I am aware of (cc @bhousel to double-check, add missing):
- [x] Merge https://github.com/openstreetmap/iD/pull/8764 (pre-requisite)
- [x] Remove legacy build (package.json commands, config rollup, babel?)
- [x] Polish rest of commands (remove legacy from commands:
all,test, switch minify to take iD.js) - [x] Remove polyfills and IE11 specific code
- [x] Update
util/detect.js - [x] Update information on README, ACCESSIBILITY.md, ~~core.yaml (
browser_notice)~~, package.json - browser list - [x] Double check if osmwebsite can consume iD.js and prior to release update vendor config (notice that currently osm website is serving iD.legacy.js)
Let's do this! (see also https://github.com/openstreetmap/iD/pull/8774#issuecomment-988080734)
This is another place that needs to be updated IMO:
https://github.com/openstreetmap/iD/blob/fe4f5c9548b97b898960b65b3191367fd9864347/CONTRIBUTING.md#L327-L327
632e24137a22922718aa1d8c2fd915a154d02879 should mostly finalize the drop of IE11 support. Only thing to do and investigate is to adapt the deployment/integration on the openstreetmap-website repo and check if everything works as expected. Also, the "unsupported browser" error message could probably be improved a bit…
Great work! Yea, that should mostly cover it.
The only thing that I could add is that I think that babel.config.json file in root can be dropped given that it was introduced for legacy build
Also and perhaps minor, the terminology 'modern' can be dropped and some commands/config files renamed. e.g.
build:modern": "node config/esbuild.config.modern.mjs
to
build:js": "node config/esbuild.config.mjs
etc.