Document: customElementRegistry property

Baseline 2026
Newly available

Since October 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

The customElementRegistry read-only property of the Document interface returns the CustomElementRegistry object associated with this document, or null if one has not been set.

For documents associated with a Window (such as the main document of a page), this is the global CustomElementRegistry that is also accessible through the window.customElements property. Documents created programmatically (for example, via DOMImplementation.createHTMLDocument()) have a null custom element registry by default.

This property is also available on ShadowRoot objects via the same customElementRegistry property name.

Value

A CustomElementRegistry object, or null.

Examples

Accessing a document's custom element registry

This example shows that the main document's customElementRegistry is the same global registry available through window.customElements, while documents created programmatically via DOMImplementation.createHTMLDocument() have a null registry by default.

js
// The main document's registry is the global one:
console.log(document.customElementRegistry === window.customElements); // true (for Window-associated documents)

// Documents created programmatically have a null registry:
const newDoc = document.implementation.createHTMLDocument("New document");
console.log(newDoc.customElementRegistry); // null

Specifications

Specification
DOM
# dom-documentorshadowroot-customelementregistry

Browser compatibility

See also