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 99.08% of all users on Chrome, Edge, Firefox, Firefox for Android, Safari, Safari on iOS, Samsung Internet, and Opera.
Minimum requirements
Browser version | Release date |
---|---|
Chrome 54+ | October 2016 |
Edge 79+ | January 2020 |
Firefox 63+ | October 2018 |
Firefox for Android 130+ | September 2024 |
Safari 10.1+ | March 2017 |
Safari on iOS 10.3+ | March 2017 |
Samsung Internet 6.2+ | October 2017 |
Opera 41+ | October 2016 |
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 |
---|---|
Window.customElements | 99.08% |
:host | 99.10% |
:host() | 99.10% |
ShadowRoot.mode | 99.10% |
Element.attachShadow | 99.12% |
ShadowRoot.activeElement | 99.12% |
Element.slot | 99.12% |
Node.getRootNode | 99.14% |
Event.composed | 99.27% |
HTMLLabelElement.control | 99.28% |
Node.isConnected | 99.29% |
CSSStyleDeclaration.length | 99.29% |
CSSStyleDeclaration.item | 99.29% |
Window.document | 99.31% |
Navigator.userAgent | 99.31% |
Navigator.platform | 99.31% |
Node.ownerDocument | 99.31% |
Element.id | 99.31% |
Node.nodeName | 99.31% |
HTMLElement.tabIndex | 99.31% |
Window.focus | 99.31% |
Event.bubbles | 99.31% |
KeyboardEvent.altKey | 99.31% |
MouseEvent.altKey | 99.31% |
KeyboardEvent.ctrlKey | 99.31% |
MouseEvent.ctrlKey | 99.31% |
KeyboardEvent.metaKey | 99.31% |
MouseEvent.metaKey | 99.31% |
KeyboardEvent.shiftKey | 99.31% |
MouseEvent.shiftKey | 99.31% |
Document.activeElement | 99.31% |
Node.firstChild | 99.31% |
CSSStyleDeclaration.cssText | 99.31% |
Event.cancelable | 99.31% |
Object.entries | 99.38% |
Element.append | 99.39% |
Element.prepend | 99.39% |
KeyboardEvent.key | 99.46% |
Element.shadowRoot | 99.51% |
Array.includes | 99.69% |
Array.from | 99.70% |
Array.find | 99.70% |
Array.findIndex | 99.70% |
:scope | 99.80% |
Element.closest | 99.89% |
Array.of | 99.90% |
Number.isNaN | 99.92% |
Number.parseFloat | 99.92% |
Number.isFinite | 99.92% |
Object.getOwnPropertySymbols | 99.92% |
String.includes | 99.93% |
Element.insertAdjacentElement | 99.93% |
Element.remove | 99.94% |
HTMLElement.innerText | 99.94% |
WeakMap.get | 99.95% |
WeakMap.delete | 99.95% |
WeakMap.set | 99.95% |
MutationObserver.disconnect | 99.95% |
MutationObserver.observe | 99.95% |
CustomEvent.detail | 99.98% |
Event.defaultPrevented | 99.98% |
HTMLElement.dataset | 99.98% |
HTMLElement.click | 99.99% |
Object.defineProperty | 99.99% |
CSSStyleDeclaration.setProperty | 99.99% |
String.trim | 99.99% |
HTMLElement.hidden | 99.99% |
Object.getOwnPropertyDescriptor | 99.99% |
Node.contains | 99.99% |