## Summary
Should MediaWiki and our shared UI component library continue to support IE11 (and ES5)?
## Considerations
#### Why does this matter?
Shared library code will live outside of MediaWiki, meaning it will be easier to use certain build tools to automatically transpile code back to ES5. We won't need to write shared component code in ES5. Regardless of transpilation tools, Vue 3 cannot support IE 11 due to its use of [[ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy | Proxy objects ]]. Continuing to support IE 11 would require staying on Vue 2, and not upgrading t to Vue 3.
MediaWiki provides a version of Vue (currently 2.6.11) in the `vue` ResourceLoader module, which is used by (almost) all code that uses Vue in MediaWiki or its skins and extensions. If this version of Vue is upgraded to Vue 3, we will not be able to support IE 11 for any Vue features in MediaWiki, even if the migration build of Vue 3 is used and even if those features are written using Vue 2-compatible code. Continuing to support IE 11 would require the MediaWiki-provided version of Vue to stay on Vue 2, which would mean nothing in MediaWiki or its extensions/skins could upgrade to Vue 3 (unless we make Vue 2 / Vue 3 coexistence work somehow, see "//Alternative//" below).
#### Compatibility policy and IE statistics
The WMF has updated its [[ https://www.mediawiki.org/wiki/Compatibility/IE11 | compatibility policy ]] to state that new products don't need to support IE11. Any ResourceLoader modules with the `es6: true` property simply won't be delivered to legacy browsers at all.
IE11 support has significantly tapered off since early 2020 – as of July 2021 we're down to a [[ https://analytics.wikimedia.org/dashboards/browsers/#all-sites-by-browser/browser-family-timeseries | daily average of 0.7% across all sites ]] (desktop and mobile). For desktop traffic alone, the share is only slightly higher at 1.8%.
#### Existing projects
There are several existing Vue.js projects that already support IE11 (WMDE features, Commons MediaSearch, etc). What should happen to these features?
#### Relevant Links
- T285045 Consider dropping IE support in WiKit
---
## Decisions
#### 1. Will the new shared component library support IE 11, meaning it will need to be built with Vue 2?
**Design Systems Team proposal:** No. See T286948 for further discussion and our proposed path forward.
#### 2. Will MediaWiki support IE 11 for Vue code, meaning its Vue version would need to stay at Vue 2?
**Design Systems Team proposal:** No. See T286948 for further discussion and our proposed path forward.
//Alternative//: Providing both Vue 2 and Vue 3 in MediaWiki is messy and suboptimal, but possible in principle. Vue 2 and Vue 3 can even [[T251974#6862536|coexist on the same page]]. Supporting this while also allowing the component library to be used in both Vue 2 and Vue 3 would be possible in theory, if certain challenges with dependency management in ResourceLoader can be solved.
#### 3. What happens to existing projects that support IE 11?
**Design Systems Team proposal:** Provide a no-JS fallback experience for IE users. Some projects, e.g. MediaSearch, already include this for no-JS users, it would just need to be extended to users with no ES6 browser support.