Skip to content

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 versionRelease 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:

FeatureBrowser 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%

Released under the MIT License