Browser support
u-elements is committed to provide great support for all users and technologies, including older browser versions.
Based on up-to-date statistics from caniuse.com, u-elements currently support 96.86% of all users on Chrome, Edge, Firefox, Firefox for Android, Opera, Safari, Safari on iOS, and Samsung Internet.
Minimum requirements
| Browser version | Release date |
|---|---|
| Chrome 77+ | September 2019 |
| Edge 79+ | January 2020 |
| Firefox 93+ | October 2021 |
| Firefox for Android 150+ | April 2026 |
| Opera 64+ | October 2019 |
| Safari 16.4+ | March 2023 |
| Safari on iOS 16.4+ | March 2023 |
| Samsung Internet 12+ | June 2020 |
Web features in use
u-elements tracks browser support by monitoring the web features it uses. This is done by analyzing source code with JSHint and cross-referencing the identified features against MDN Browser Compatibility Data and caniuse.com usage statistics.
Here are the web features used by u-elements that are not yet fully supported by all browsers:
| Feature | Browser support |
|---|---|
| HTMLElement.attachInternals | 96.86% |
| Array.values | 98.86% |
| Node.getRootNode | 99.34% |
| Window.customElements | 99.34% |
| :host | 99.34% |
| :host() | 99.34% |
| Element.append | 99.36% |
| Object.entries | 99.36% |
| Element.prepend | 99.36% |
| Object.values | 99.36% |
| Element.attachShadow | 99.41% |
| ShadowRoot.mode | 99.41% |
| ShadowRoot.activeElement | 99.41% |
| ShadowRoot.innerHTML | 99.41% |
| Element.slot | 99.41% |
| ShadowRoot.host | 99.41% |
| Event.composed | 99.43% |
| Node.isConnected | 99.57% |
| KeyboardEvent.key | 99.57% |
| Array.includes | 99.87% |
Content Security Policy (CSP)
u-elements uses constructable stylesheets to inject styles. If the browser does not support constructable stylesheets (iOS 16.3 and older), u-elements will fall back to instead inject an inline <style> element. Be aware that if you enforce a strict Content Security Policy that blocks the style-src-elem directive, these inline <style> elements will be blocked as well and thus cause styling issues for users on iOS 16.3 and older.