# WorkerDOM compatibility ## DOM API Compatibility This section highlights the DOM APIs that are implemented in WorkerDOM currently. Please [file an issue](https://github.com/ampproject/worker-dom/issues/new) if you would like an API suppported. | API | Status | Notes | |-----------------------------------------------------|--------|--------------------------------------------------| | Attr.localName | ✖️ | | | Attr.name | ✔️ | | | Attr.namespaceURI | ✔️ | | | Attr.ownerElement | ✖️ | | | Attr.prefix | ✖️ | | | Attr.specified | ✖️ | | | Attr.value | ✔️ | | | CDATASection | ✔️ | See Text | | CharacterData.appendData() | ✖️ | | | CharacterData.data | ✔️ | | | CharacterData.deleteData() | ✖️ | | | CharacterData.insertData() | ✖️ | | | CharacterData.length | ✔️ | | | CharacterData.replaceData() | ✖️ | | | CharacterData.substringData() | ✖️ | | | ChildNode.after() | ✖️ | | | ChildNode.before() | ✖️ | | | ChildNode.remove() | ✔️ | Implemented at Node layer | | ChildNode.replaceWith() | ✔️ | Implemented at Node layer | | Comment | ✔️ | See CharacterData and Node | | CSSStyleDeclaration.cssText | ✔️ | | | CSSStyleDeclaration.getPropertyPriority() | ✖️ | | | CSSStyleDeclaration.getPropertyValue() | ✔️ | | | CSSStyleDeclaration.item() | ✖️ | | | CSSStyleDeclaration.length | ✖️ | | | CSSStyleDeclaration.parentRule | ✖️ | | | CSSStyleDeclaration.removeProperty() | ✔️ | | | CSSStyleDeclaration.setProperty() | ✔️ | | | CustomEvent.detail | ✖️ | | | Document.adoptNode() | ✖️ | | | Document.all | ✖️ | | | Document.anchors | ✖️ | | | Document.body | ✔️ | | | Document.captureEvents() | ✖️ | | | Document.caretRangeFromPoint() | ✖️ | | | Document.characterSet | ✖️ | | | document.clear() | ✖️ | | | document.close() | ✖️ | | | Document.compatMode | ✖️ | | | Document.contentType | ✖️ | | | Document.createAttribute() | ✖️ | | | Document.createAttributeNS() | ✖️ | | | Document.createCDATASection() | ✖️ | | | Document.createComment() | ✔️ | | | Document.createDocumentFragment() | ✔️ | | | Document.createElement() | ✔️ | | | Document.createElementNS() | ✔️ | | | Document.createEntityReference() | ✖️ | | | Document.createEvent() | ✔️ | | | document.createExpression() | ✖️ | | | Document.createNodeIterator() | ✖️ | | | document.createNSResolver() | ✖️ | | | Document.createProcessingInstruction() | ✖️ | | | Document.createRange() | ✖️ | | | Document.createTextNode() | ✔️ | | | Document.createTouch() | ✖️ | | | Document.createTouchList() | ✖️ | | | Document.createTreeWalker() | ✖️ | | | Document.defaultView | ✔️ | | | Document.designMode | ✖️ | | | Document.dir | ✖️ | | | Document.doctype | ✖️ | | | Document.documentElement | ✔️ | | | Document.documentURI | ✖️ | | | Document.domain | ✖️ | | | Document.embeds | ✖️ | | | Document.enableStyleSheetsForSet() | ✖️ | | | document.evaluate() | ✖️ | | | document.execCommand() | ✖️ | | | Document.exitPointerLock() | ✖️ | | | Document.fonts | ✖️ | | | Document.forms | ✖️ | | | Document.fullscreenElement | ✖️ | | | Document.getAnimations() | ✖️ | | | document.getElementById(String id) | ✔️ | | | Document.getElementsByClassName() | ✔️ | | | document.getElementsByName() | ✔️ | | | Document.getElementsByTagName() | ✔️ | | | Document.getElementsByTagNameNS() | ✖️ | | | document.hasFocus() | ✖️ | | | Document.hasStorageAccess() | ✖️ | | | Document.head | ✖️ | | | Document.hidden | ✖️ | | | Document.images | ✖️ | | | Document.implementation | ✖️ | | | Document.importNode() | ✖️ | | | Document.lastModified | ✖️ | | | Document.lastStyleSheetSet | ✖️ | | | Document.links | ✖️ | | | Document.location | ✖️ | | | Document.mozSetImageElement() | ✖️ | | | Document.mozSyntheticDocument | ✖️ | | | Document.normalizeDocument() | ✖️ | | | Document.onafterscriptexecute | ✖️ | | | Document.onbeforescriptexecute | ✖️ | | | Document.oncopy | ✖️ | | | Document.oncut | ✖️ | | | Document.onfullscreenchange | ✖️ | | | Document.onfullscreenerror | ✖️ | | | Document.onpaste | ✖️ | | | Document.onreadystatechange | ✖️ | | | Document.onselectionchange | ✖️ | | | Document.onvisibilitychange | ✖️ | | | Document.onwheel | ✖️ | | | document.open() | ✖️ | | | Document.plugins | ✖️ | | | Document.policy | ✖️ | | | Document.preferredStyleSheetSet | ✖️ | | | document.queryCommandEnabled() | ✖️ | | | document.queryCommandIndeterm() | ✖️ | | | document.queryCommandState() | ✖️ | | | document.queryCommandSupported() | ✖️ | | | document.queryCommandValue() | ✖️ | | | document.querySelector() | ✖️ | | | document.querySelectorAll() | ✖️ | | | Document.readyState | ✖️ | | | Document.referrer | ✖️ | | | Document.releaseCapture() | ✖️ | | | Document.releaseEvents() | ✖️ | | | Document.requestStorageAccess() | ✖️ | | | Document.scripts | ✖️ | | | Document.scrollingElement | ✖️ | | | Document.selectedStyleSheetSet | ✖️ | | | Document.styleSheetSets | ✖️ | | | Document.timeline | ✖️ | | | Document.title | ✖️ | | | Document.undoManager | ✖️ | | | Document.URL | ✖️ | | | Document.visibilityState | ✖️ | | | document.write() | ✖️ | | | document.writeln() | ✖️ | | | DocumentFragment.getElementById() | ✔️ | | | DocumentFragment.querySelector() | ✔️ | Partial support[1](#myfootnote1) | | DocumentFragment.querySelectorAll() | ✔️ | Partial support[1](#myfootnote1) | | DocumentOrShadowRoot.activeElement | ✖️ | | | DocumentOrShadowRoot.caretPositionFromPoint() | ✖️ | | | DocumentOrShadowRoot.elementFromPoint() | ✖️ | | | DocumentOrShadowRoot.elementsFromPoint() | ✖️ | | | DocumentOrShadowRoot.getSelection() | ✖️ | | | DocumentOrShadowRoot.pointerLockElement | ✖️ | | | DocumentOrShadowRoot.styleSheets | ✖️ | | | DocumentType.name | ✖️ | | | DocumentType.publicId | ✖️ | | | DocumentType.systemId | ✖️ | | | DOMException.code | ✖️ | | | DOMException.message | ✖️ | | | DOMException.name | ✖️ | | | DOMImplementation.createDocument() | ✔️ | | | DOMImplementation.createDocumentType() | ✖️ | | | DOMImplementation.createHTMLDocument() | ✖️ | | | DOMImplementation.hasFeature() | ✖️ | | | DOMSTokenList.length | ✔️ | | | DOMStringList.contains() | ✖️ | | | DOMStringList.items() | ✖️ | | | DOMStringList.length | ✖️ | | | DOMTokenList.add() | ✔️ | | | DOMTokenList.contains() | ✔️ | | | DOMTokenList.entries() | ✖️ | | | DOMTokenList.forEach() | ✖️ | | | DOMTokenList.item() | ✔️ | | | DOMTokenList.keys() | ✖️ | | | DOMTokenList.remove() | ✔️ | | | DOMTokenList.replace() | ✔️ | | | DOMTokenList.supports() | ✖️ | | | DOMTokenList.toggle() | ✔️ | | | DOMTokenList.value | ✔️ | | | DOMTokenList.values() | ✖️ | | | Element.animate() | ✖️ | | | Element.attachShadow() | N/A | Not supporting Custom Elements | | Element.attributes | ✔️ | | | Element.classList | ✔️ | | | Element.className | ✔️ | | | Element.clientHeight | ✖️ | | | Element.clientLeft | ✖️ | | | Element.clientTop | ✖️ | | | Element.clientWidth | ✖️ | | | Element.closest() | ✖️ | | | Element.computedName | ✖️ | | | Element.computedRole | ✖️ | | | Element.computedStyleMap() | ✖️ | | | Element.createShadowRoot() | N/A | Not supporting Custom Elements | | Element.getAnimations() | ✖️ | | | Element.getAttribute() | ✔️ | | | Element.getAttributeNames() | ✖️ | | | Element.getAttributeNode() | ✖️ | | | Element.getAttributeNodeNS() | ✖️ | | | Element.getAttributeNS() | ✔️ | | | Element.getBoundingClientRect() | ✖️ | | | Element.getClientRects() | ✖️ | | | Element.getElementsByClassName() | ✔️ | | | Element.getElementsByTagName() | ✔️ | | | Element.getElementsByTagNameNS() | ✖️ | | | Element.hasAttribute() | ✔️ | | | Element.hasAttributeNS() | ✔️ | | | Element.hasAttributes() | ✔️ | | | Element.hasPointerCapture() | ✖️ | | | Element.id | ✔️ | | | Element.innerHTML | ✔️ | Partial support | | Element.insertAdjacentElement() | ✖️ | | | Element.insertAdjacentHTML() | ✖️ | | | Element.insertAdjacentText() | ✖️ | | | Element.localName | ✔️ | | | Element.matches() | ✖️ | | | Element.namespaceURI | ✔️ | | | Element.onfullscreenchange | ✖️ | | | Element.onfullscreenerror | ✖️ | | | Element.onwheel | ✖️ | | | Element.openOrClosedShadowRoot | ✖️ | | | Element.outerHTML | ✔️ | | | Element.prefix | ✖️ | | | Element.querySelector() | ✔️ | Partial support[1](#myfootnote1) | | Element.querySelectorAll() | ✔️ | Partial support[1](#myfootnote1) | | Element.releasePointerCapture() | ✖️ | | | Element.removeAttribute() | ✔️ | | | Element.removeAttributeNode() | ✖️ | | | Element.removeAttributeNS() | ✔️ | | | Element.requestFullscreen() | ✖️ | | | Element.requestPointerLock() | ✖️ | | | Element.scroll() | ✖️ | | | Element.scrollBy() | ✖️ | | | Element.scrollHeight | ✖️ | | | Element.scrollIntoView() | ✔️ | Only suported without params | | Element.scrollLeft | ✖️ | | | Element.scrollLeftMax | ✖️ | | | Element.scrollTo() | ✖️ | | | Element.scrollTop | ✖️ | | | Element.scrollTopMax | ✖️ | | | Element.scrollWidth | ✖️ | | | Element.setAttribute() | ✔️ | | | Element.setAttributeNode() | ✖️ | | | Element.setAttributeNodeNS() | ✖️ | | | Element.setAttributeNS() | ✔️ | | | Element.setCapture() | ✖️ | | | Element.setPointerCapture() | ✖️ | | | Element.shadowRoot | N/A | Not supporting Custom Elements | | Element.slot | N/A | Not supporting Custom Elements | | Element.tabStop | ✖️ | | | Element.tagName | ✖️ | | | Element.toggleAttribute() | ✖️ | | | Event.bubbles | ✔️ | | | Event.cancelable | ✔️ | | | Event.cancelBubble | ✔️ | | | Event.composed | ✖️ | | | Event.composedPath() | ✖️ | | | Event.currentTarget | ✔️ | | | Event.deepPath | ✖️ | | | Event.defaultPrevented | ✖️ | | | Event.eventPhase | ✔️ | | | Event.explicitOriginalTarget | ✖️ | | | Event.isTrusted | ✔️ | | | Event.originalTarget | ✖️ | | | Event.preventDefault() | ✖️ | | | Event.returnValue | ✔️ | | | Event.srcElement | ✖️ | | | Event.stopImmediatePropagation() | ✖️ | | | Event.stopPropagation() | ✖️ | | | Event.target | ✔️ | | | Event.timeStamp | ✔️ | | | Event.type | ✔️ | | | EventTarget.addEventListener() | ✔️ | | | EventTarget.dispatchEvent() | ✖️ | | | EventTarget.removeEventListener() | ✔️ | | | GlobalEventHandlers.onabort | ✖️ | | | GlobalEventHandlers.onanimationcancel | ✖️ | | | GlobalEventHandlers.onanimationend | ✖️ | | | GlobalEventHandlers.onanimationiteration | ✖️ | | | GlobalEventHandlers.onanimationstart | ✖️ | | | GlobalEventHandlers.onauxclick | ✖️ | | | GlobalEventHandlers.onblur | ✖️ | | | GlobalEventHandlers.oncancel | ✖️ | | | GlobalEventHandlers.oncanplay | ✖️ | | | GlobalEventHandlers.oncanplaythrough | ✖️ | | | GlobalEventHandlers.onchange | ✖️ | | | GlobalEventHandlers.onclick | ✖️ | | | GlobalEventHandlers.onclose | ✖️ | | | GlobalEventHandlers.oncontextmenu | ✖️ | | | GlobalEventHandlers.oncuechange | ✖️ | | | GlobalEventHandlers.ondblclick | ✖️ | | | GlobalEventHandlers.ondrag | ✖️ | | | GlobalEventHandlers.ondragend | ✖️ | | | GlobalEventHandlers.ondragenter | ✖️ | | | GlobalEventHandlers.ondragexit | ✖️ | | | GlobalEventHandlers.ondragleave | ✖️ | | | GlobalEventHandlers.ondragover | ✖️ | | | GlobalEventHandlers.ondragstart | ✖️ | | | GlobalEventHandlers.ondrop | ✖️ | | | GlobalEventHandlers.ondurationchange | ✖️ | | | GlobalEventHandlers.onemptied | ✖️ | | | GlobalEventHandlers.onended | ✖️ | | | GlobalEventHandlers.onerror | ✖️ | | | GlobalEventHandlers.onfocus | ✖️ | | | GlobalEventHandlers.ongotpointercapture | ✖️ | | | GlobalEventHandlers.oninput | ✖️ | | | GlobalEventHandlers.oninvalid | ✖️ | | | GlobalEventHandlers.onkeydown | ✖️ | | | GlobalEventHandlers.onkeypress | ✖️ | | | GlobalEventHandlers.onkeyup | ✖️ | | | GlobalEventHandlers.onload | ✖️ | | | GlobalEventHandlers.onloadeddata | ✖️ | | | GlobalEventHandlers.onloadedmetadata | ✖️ | | | GlobalEventHandlers.onloadend | ✖️ | | | GlobalEventHandlers.onloadstart | ✖️ | | | GlobalEventHandlers.onlostpointercapture | ✖️ | | | GlobalEventHandlers.onmousedown | ✖️ | | | GlobalEventHandlers.onmouseenter | ✖️ | | | GlobalEventHandlers.onmouseleave | ✖️ | | | GlobalEventHandlers.onmousemove | ✖️ | | | GlobalEventHandlers.onmouseout | ✖️ | | | GlobalEventHandlers.onmouseover | ✖️ | | | GlobalEventHandlers.onmouseup | ✖️ | | | GlobalEventHandlers.onmousewheel | ✖️ | | | GlobalEventHandlers.onpause | ✖️ | | | GlobalEventHandlers.onplay | ✖️ | | | GlobalEventHandlers.onplaying | ✖️ | | | GlobalEventHandlers.onpointercancel | ✖️ | | | GlobalEventHandlers.onpointerdown | ✖️ | | | GlobalEventHandlers.onpointerenter | ✖️ | | | GlobalEventHandlers.onpointerleave | ✖️ | | | GlobalEventHandlers.onpointerlockchange | ✖️ | | | GlobalEventHandlers.onpointerlockerror | ✖️ | | | GlobalEventHandlers.onpointermove | ✖️ | | | GlobalEventHandlers.onpointerout | ✖️ | | | GlobalEventHandlers.onpointerover | ✖️ | | | GlobalEventHandlers.onpointerup | ✖️ | | | GlobalEventHandlers.onprogress | ✖️ | | | GlobalEventHandlers.onratechange | ✖️ | | | GlobalEventHandlers.onreset | ✖️ | | | GlobalEventHandlers.onresize | ✖️ | | | GlobalEventHandlers.onscroll | ✖️ | | | GlobalEventHandlers.onseeked | ✖️ | | | GlobalEventHandlers.onseeking | ✖️ | | | GlobalEventHandlers.onselect | ✖️ | | | GlobalEventHandlers.onselectionchange | ✖️ | | | GlobalEventHandlers.onselectstart | ✖️ | | | GlobalEventHandlers.onshow | ✖️ | | | GlobalEventHandlers.onsort | ✖️ | | | GlobalEventHandlers.onstalled | ✖️ | | | GlobalEventHandlers.onsubmit | ✖️ | | | GlobalEventHandlers.onsuspend | ✖️ | | | GlobalEventHandlers.ontimeupdate | ✖️ | | | GlobalEventHandlers.ontouchcancel | ✖️ | | | GlobalEventHandlers.ontouchend | ✖️ | | | GlobalEventHandlers.ontouchmove | ✖️ | | | GlobalEventHandlers.ontouchstart | ✖️ | | | GlobalEventHandlers.ontransitioncancel | ✖️ | | | GlobalEventHandlers.ontransitionend | ✖️ | | | GlobalEventHandlers.onvolumechange | ✖️ | | | GlobalEventHandlers.onwheel | ✖️ | | | HTMLAnchorElement.accessKey | ✖️ | | | HTMLAnchorElement.download | ✖️ | | | HTMLAnchorElement.hreflang | ✔️ | | | HTMLAnchorElement.media | ✔️ | | | HTMLAnchorElement.referrerPolicy | ✖️ | | | HTMLAnchorElement.rel | ✔️ | | | HTMLAnchorElement.relList | ✔️ | | | HTMLAnchorElement.tabindex | ✖️ | | | HTMLAnchorElement.target | ✔️ | | | HTMLAnchorElement.text | ✔️ | | | HTMLAnchorElement.type | ✔️ | | | HTMLButtonElement.accessKey | ✖️ | | | HTMLButtonElement.autofocus | ✔️ | | | HTMLButtonElement.disabled | ✔️ | | | HTMLButtonElement.form | ✖️ | | | HTMLButtonElement.formAction | ✔️ | | | HTMLButtonElement.formEnctype | ✔️ | | | HTMLButtonElement.formMethod | ✔️ | | | HTMLButtonElement.formNoValidate | ✖️ | | | HTMLButtonElement.formTarget | ✔️ | | | HTMLButtonElement.labels | ✖️ | | | HTMLButtonElement.menu | ✖️ | | | HTMLButtonElement.name | ✔️ | | | HTMLButtonElement.tabIndex | ✖️ | | | HTMLButtonElement.type | ✔️ | | | HTMLButtonElement.validationMessage | ✖️ | | | HTMLButtonElement.validity | ✖️ | | | HTMLButtonElement.value | ✔️ | | | HTMLButtonElement.willValidate | ✖️ | | | HTMLCollection.item() | ✖️ | | | HTMLCollection.name | ✖️ | | | HTMLCollection.namedItem() | ✖️ | | | HTMLDataElement.value | ✔️ | | | HTMLDataListElement.options | ✔️ | | | HTMLElement.accessKey | ✔️ | | | HTMLElement.accessKeyLabel | ✔️ | | | HTMLElement.async | ✔️ | | | HTMLElement.blur() | ✖️ | | | HTMLElement.charset | ✔️ | | | HTMLElement.checkValidity() | ✖️ | | | HTMLElement.click() | ✔️ | | | HTMLElement.contentEditable | ✔️ | | | HTMLElement.contextMenu | ✖️ | | | HTMLElement.crossOrigin | ✔️ | | | HTMLElement.dataset | ✖️ | | | HTMLElement.defaultSelected | ✔️ | | | HTMLElement.defer | ✔️ | | | HTMLElement.dir | ✔️ | | | HTMLElement.disabled | ✔️ | | | HTMLElement.draggable | ✔️ | | | HTMLElement.dropzone | ✖️ | | | HTMLElement.focus() | ✖️ | | | HTMLElement.form | ✔️ | | | HTMLElement.hidden | ✔️ | | | HTMLElement.index | ✔️ | | | HTMLElement.inert | ✖️ | | | HTMLElement.innerText | ✖️ | | | HTMLElement.isContentEditable | ✖️ | | | HTMLElement.itemId | ✖️ | | | HTMLElement.itemProp | ✖️ | | | HTMLElement.itemRef | ✖️ | | | HTMLElement.itemScope | ✖️ | | | HTMLElement.itemType | ✖️ | | | HTMLElement.itemValue | ✖️ | | | HTMLElement.label | ✔️ | | | HTMLElement.lang | ✔️ | | | HTMLElement.noModule | ✔️ | | | HTMLElement.nonce | ✖️ | | | HTMLElement.offsetHeight | ✖️ | | | HTMLElement.offsetLeft | ✖️ | | | HTMLElement.offsetParent | ✖️ | | | HTMLElement.offsetTop | ✖️ | | | HTMLElement.offsetWidth | ✖️ | | | HTMLElement.properties | ✖️ | | | HTMLElement.referrerPolicy | ✖️ | | | HTMLElement.reportValidity() | ✖️ | | | HTMLElement.selected | ✔️ | | | HTMLElement.setCustomValidity(in DOMString error) | ✖️ | | | HTMLElement.spellcheck | ✔️ | | | HTMLElement.src | ✔️ | | | HTMLElement.style | ✖️ | | | HTMLElement.tabIndex | ✖️ | | | HTMLElement.text | ✔️ | | | HTMLElement.title | ✖️ | | | HTMLElement.translate | ✔️ | | | HTMLElement.type | ✔️ | | | HTMLElement.value | ✔️ | | | HTMLEmbedElement.height | ✔️ | | | HTMLEmbedElement.src | ✔️ | | | HTMLEmbedElement.type | ✔️ | | | HTMLEmbedElement.width | ✔️ | | | HTMLFieldSetElement.checkValidity() | ✖️ | | | HTMLFieldSetElement.disabled | ✔️ | | | HTMLFieldSetElement.elements | ✖️ | | | HTMLFieldSetElement.name | ✔️ | | | HTMLFieldSetElement.reportValidity() | ✖️ | | | HTMLFieldSetElement.setCustomValidity() | ✖️ | | | HTMLFieldSetElement.type | ✖️ | | | HTMLFieldSetElement.validationMessage | ✖️ | | | HTMLFieldSetElement.validity | ✖️ | | | HTMLFieldSetElement.willValidate | ✖️ | | | HTMLFormElement.acceptCharset | ✔️ | | | HTMLFormElement.action | ✔️ | | | HTMLFormElement.autocapitalize | ✔️ | | | HTMLFormElement.autocomplete | ✔️ | | | HTMLFormElement.checkValidity() | ✖️ | | | HTMLFormElement.elements | ✔️ | | | HTMLFormElement.encoding or HTMLFormElement.enctype | ✖️ | | | HTMLFormElement.encoding or HTMLFormElement.enctype | ✔️ | | | HTMLFormElement.length | ✔️ | | | HTMLFormElement.length | ✖️ | | | HTMLFormElement.method | ✔️ | | | HTMLFormElement.name | ✔️ | | | HTMLFormElement.noValidate | ✖️ | | | HTMLFormElement.reportValidity() | ✖️ | | | HTMLFormElement.reset() | ✖️ | | | HTMLFormElement.submit() | ✖️ | | | HTMLFormElement.target | ✔️ | | | HTMLHyperlinkElementUtils.hash | ✖️ | | | HTMLHyperlinkElementUtils.host | ✖️ | | | HTMLHyperlinkElementUtils.hostname | ✖️ | | | HTMLHyperlinkElementUtils.href | ✔️ | | | HTMLHyperlinkElementUtils.origin | ✖️ | | | HTMLHyperlinkElementUtils.password | ✖️ | | | HTMLHyperlinkElementUtils.pathname | ✖️ | | | HTMLHyperlinkElementUtils.port | ✖️ | | | HTMLHyperlinkElementUtils.protocol | ✖️ | | | HTMLHyperlinkElementUtils.search | ✖️ | | | HTMLHyperlinkElementUtils.toString() | ✖️ | | | HTMLHyperlinkElementUtils.username | ✖️ | | | HTMLIFrameElement.allow | ✔️ | | | HTMLIFrameElement.allowfullscreen | ✔️ | | | HTMLIFrameElement.allowPaymentRequest | ✖️ | | | HTMLIFrameElement.contentDocument | ✖️ | | | HTMLIFrameElement.contentWindow | ✖️ | | | HTMLIFrameElement.csp | ✔️ | | | HTMLIFrameElement.height | ✔️ | | | HTMLIFrameElement.name | ✔️ | | | HTMLIFrameElement.policy | ✖️ | | | HTMLIFrameElement.referrerPolicy | ✔️ | | | HTMLIFrameElement.sandbox | ✖️ | | | HTMLIFrameElement.src | ✔️ | | | HTMLIFrameElement.srcdoc | ✔️ | | | HTMLIFrameElement.width | ✔️ | | | HTMLImageElement.alt | ✔️ | | | HTMLImageElement.complete | ✖️ | | | HTMLImageElement.crossOrigin | ✔️ | | | HTMLImageElement.currentSrc | ✖️ | | | HTMLImageElement.decode() | ✖️ | | | HTMLImageElement.decoding | ✖️ | | | HTMLImageElement.height | ✔️ | | | HTMLImageElement.isMap | ✔️ | | | HTMLImageElement.naturalHeight | ✖️ | | | HTMLImageElement.naturalWidth | ✖️ | | | HTMLImageElement.referrerPolicy | ✖️ | | | HTMLImageElement.sizes | ✔️ | | | HTMLImageElement.src | ✔️ | | | HTMLImageElement.srcset | ✔️ | | | HTMLImageElement.useMap | ✔️ | | | HTMLImageElement.width | ✔️ | | | HTMLImageElement.x | ✖️ | | | HTMLImageElement.y | ✖️ | | | HTMLInputElement.accept | ✔️ | | | HTMLInputElement.accessKey | ✔️ | | | HTMLInputElement.allowdirs | ✖️ | | | HTMLInputElement.alt | ✔️ | | | HTMLInputElement.autocapitalize | ✔️ | | | HTMLInputElement.autocomplete | ✔️ | | | HTMLInputElement.autofocus | ✔️ | | | HTMLInputElement.blur() | ✔️ | | | HTMLInputElement.checked | ✖️ | | | HTMLInputElement.checkValidity() | ✖️ | | | HTMLInputElement.defaultChecked | ✔️ | | | HTMLInputElement.defaultValue | ✔️ | | | HTMLInputElement.dirName | ✔️ | | | HTMLInputElement.disabled | ✔️ | | | HTMLInputElement.files | ✖️ | | | HTMLInputElement.focus() | ✔️ | | | HTMLInputElement.form | ✔️ | | | HTMLInputElement.formAction | ✔️ | | | HTMLInputElement.formEncType | ✔️ | | | HTMLInputElement.formMethod | ✔️ | | | HTMLInputElement.formNoValidate | ✖️ | | | HTMLInputElement.formTarget | ✔️ | | | HTMLInputElement.height | ✔️ | | | HTMLInputElement.indeterminate | ✖️ | | | HTMLInputElement.labels | ✔️ | | | HTMLInputElement.list | ✖️ | | | HTMLInputElement.max | ✔️ | | | HTMLInputElement.maxLength | ✔️ | | | HTMLInputElement.min | ✔️ | | | HTMLInputElement.minLength | ✖️ | | | HTMLInputElement.multiple | ✔️ | | | HTMLInputElement.name | ✔️ | | | HTMLInputElement.pattern | ✔️ | | | HTMLInputElement.placeholder | ✔️ | | | HTMLInputElement.readOnly | ✖️ | | | HTMLInputElement.reportValidity() | ✖️ | | | HTMLInputElement.required | ✔️ | | | HTMLInputElement.select() | ✔️ | | | HTMLInputElement.selectionDirection | ✖️ | | | HTMLInputElement.selectionEnd | ✖️ | | | HTMLInputElement.selectionStart | ✖️ | | | HTMLInputElement.setCustomValidity() | ✖️ | | | HTMLInputElement.setRangeText() | ✖️ | | | HTMLInputElement.setSelectionRange() | ✖️ | | | HTMLInputElement.size | ✔️ | | | HTMLInputElement.src | ✔️ | | | HTMLInputElement.step | ✔️ | | | HTMLInputElement.stepDown() | ✖️ | | | HTMLInputElement.stepUp() | ✖️ | | | HTMLInputElement.type | ✔️ | | | HTMLInputElement.validationMessage | ✖️ | | | HTMLInputElement.validity | ✖️ | | | HTMLInputElement.value | ✔️ | | | HTMLInputElement.valueAsDate | ✔️ | | | HTMLInputElement.valueAsNumber | ✔️ | | | HTMLInputElement.webkitdirectory | ✖️ | | | HTMLInputElement.webkitEntries | ✖️ | | | HTMLInputElement.width | ✔️ | | | HTMLInputElement.willValidate | ✖️ | | | HTMLLabelElement.control | ✔️ | | | HTMLLabelElement.form | ✔️ | | | HTMLLabelElement.htmlFor | ✔️ | | | HTMLLinkElement.as | ✔️ | | | HTMLLinkElement.crossOrigin | ✔️ | | | HTMLLinkElement.disabled | ✔️ | | | HTMLLinkElement.href | ✔️ | | | HTMLLinkElement.hreflang | ✔️ | | | HTMLLinkElement.media | ✔️ | | | HTMLLinkElement.referrerPolicy | ✔️ | | | HTMLLinkElement.rel | ✖️ | | | HTMLLinkElement.relList | ✖️ | | | HTMLLinkElement.sizes | ✔️ | | | HTMLLinkElement.type | ✔️ | | | HTMLMapElement.areas | ✔️ | | | HTMLMapElement.name | ✔️ | | | HTMLMeterElement.high | ✔️ | | | HTMLMeterElement.labels | ✔️ | | | HTMLMeterElement.low | ✔️ | | | HTMLMeterElement.max | ✔️ | | | HTMLMeterElement.min | ✔️ | | | HTMLMeterElement.optimum | ✔️ | | | HTMLMeterElement.values | ✔️ | | | HTMLModElement.cite | ✔️ | | | HTMLModElement.datetime | ✔️ | | | HTMLOListElement.reversed | ✔️ | | | HTMLOListElement.start | ✔️ | | | HTMLOListElement.type | ✔️ | | | HTMLProgressElement.max | ✔️ | | | HTMLProgressElement.position | ✔️ | | | HTMLProgressElement.value | ✔️ | | | HTMLQuoteElement.cite | ✔️ | | | HTMLSelectElement.add() | ✖️ | | | HTMLSelectElement.autofocus | ✖️ | | | HTMLSelectElement.blur() | ✖️ | | | HTMLSelectElement.checkValidity() | ✖️ | | | HTMLSelectElement.disabled | ✖️ | | | HTMLSelectElement.focus() | ✖️ | | | HTMLSelectElement.form | ✔️ | | | HTMLSelectElement.item() | ✖️ | | | HTMLSelectElement.labels | ✖️ | | | HTMLSelectElement.length | ✔️ | | | HTMLSelectElement.multiple | ✔️ | | | HTMLSelectElement.name | ✔️ | | | HTMLSelectElement.namedItem() | ✖️ | | | HTMLSelectElement.options | ✔️ | | | HTMLSelectElement.remove() | ✖️ | | | HTMLSelectElement.required | ✔️ | | | HTMLSelectElement.selectedIndex | ✔️ | | | HTMLSelectElement.selectedOptions | ✔️ | | | HTMLSelectElement.setCustomValidity() | ✖️ | | | HTMLSelectElement.size | ✔️ | | | HTMLSelectElement.type | ✔️ | | | HTMLSelectElement.validationMessage | ✖️ | | | HTMLSelectElement.validity | ✖️ | | | HTMLSelectElement.value | ✔️ | | | HTMLSelectElement.willValidate | ✖️ | | | HTMLSourceElement.keySystem | ✖️ | | | HTMLSourceElement.media | ✔️ | | | HTMLSourceElement.sizes | ✔️ | | | HTMLSourceElement.src | ✔️ | | | HTMLSourceElement.srcset | ✔️ | | | HTMLSourceElement.type | ✔️ | | | HTMLStyleElement.disabled | ✖️ | | | HTMLStyleElement.media | ✔️ | | | HTMLStyleElement.type | ✔️ | | | HTMLTableCellElement.abbr | ✔️ | | | HTMLTableCellElement.cellIndex | ✔️ | | | HTMLTableCellElement.colSpan | ✔️ | | | HTMLTableCellElement.headers | ✔️ | | | HTMLTableCellElement.rowSpan | ✔️ | | | HTMLTableCellElement.scope | ✔️ | | | HTMLTableColElement.span | ✔️ | | | HTMLTableElement.align | ✖️ | | | HTMLTableElement.bgColor | ✖️ | | | HTMLTableElement.border | ✖️ | | | HTMLTableElement.caption | ✔️ | | | HTMLTableElement.cellPadding | ✖️ | | | HTMLTableElement.cellSpacing | ✖️ | | | HTMLTableElement.createCaption() | ✖️ | | | HTMLTableElement.createTFoot() | ✖️ | | | HTMLTableElement.createTHead() | ✖️ | | | HTMLTableElement.deleteCaption() | ✖️ | | | HTMLTableElement.deleteRow() | ✖️ | | | HTMLTableElement.deleteTFoot() | ✖️ | | | HTMLTableElement.deleteTHead() | ✖️ | | | HTMLTableElement.frame | ✖️ | | | HTMLTableElement.insertRow() | ✖️ | | | HTMLTableElement.rows | ✔️ | | | HTMLTableElement.rules | ✖️ | | | HTMLTableElement.sortable | ✖️ | | | HTMLTableElement.stopSorting() | ✖️ | | | HTMLTableElement.summary | ✖️ | | | HTMLTableElement.tBodies | ✔️ | | | HTMLTableElement.tFoot | ✔️ | | | HTMLTableElement.tHead | ✔️ | | | HTMLTableElement.width | ✖️ | | | HTMLTableRowElement.cells | ✔️ | | | HTMLTableRowElement.deleteCell() | ✔️ | | | HTMLTableRowElement.insertCell() | ✔️ | | | HTMLTableRowElement.rowIndex | ✔️ | | | HTMLTableRowElement.sectionRowIndex | ✔️ | | | HTMLTableSectionElement.deleteRow() | ✔️ | | | HTMLTableSectionElement.insertRow() | ✔️ | | | HTMLTableSectionElement.rows | ✔️ | | | HTMLTimeElement.dateTime | ✔️ | | | LinkStyle.sheet | ✖️ | | | MutationObserver.disconnect() | ✔️ | | | MutationObserver.observe() | ✔️ | | | MutationObserver.takeRecords() | ✔️ | | | MutationRecord.addedNodes | ✔️ | | | MutationRecord.attributeName | ✔️ | | | MutationRecord.attributeNamespace | ✔️ | | | MutationRecord.nextSibling | ✔️ | | | MutationRecord.oldValue | ✔️ | | | MutationRecord.previousSibling | ✔️ | | | MutationRecord.removedNodes | ✔️ | | | MutationRecord.target | ✔️ | | | MutationRecord.type | ✔️ | | | NamedNodeMap.getNamedItem() | ✖️ | | | NamedNodeMap.getNamedItemNS() | ✖️ | | | NamedNodeMap.item() | ✖️ | | | NamedNodeMap.length | ✖️ | | | NamedNodeMap.removeNamedItem() | ✖️ | | | NamedNodeMap.removeNamedItemNS() | ✖️ | | | NamedNodeMap.setNamedItem() | ✖️ | | | NamedNodeMap.setNamedItemNS() | ✖️ | | | Node.appendChild() | ✔️ | | | Node.baseURI | ✖️ | | | Node.baseURIObject | ✖️ | | | Node.childNodes | ✔️ | | | Node.cloneNode() | ✔️ | ✔️ at Element level | | Node.compareDocumentPosition() | ✖️ | | | Node.contains() | ✔️ | | | Node.firstChild | ✔️ | | | Node.getRootNode() | ✖️ | | | Node.hasChildNodes() | ✔️ | | | Node.insertBefore() | ✔️ | | | Node.isConnected | ✔️ | | | Node.isDefaultNamespace() | ✖️ | | | Node.isEqualNode() | ✖️ | | | Node.isSameNode() | ✖️ | | | Node.lastChild | ✔️ | | | Node.lookupNamespaceURI() | ✖️ | | | Node.lookupPrefix() | ✖️ | | | Node.nextSibling | ✔️ | | | Node.nodeName | ✔️ | | | Node.nodeType | ✔️ | | | Node.nodeValue | ✔️ | ✔️ at Element level | | Node.normalize() | ✖️ | | | Node.ownerDocument | ✔️ | | | Node.parentElement | ✔️ | | | Node.parentNode | ✔️ | | | Node.previousSibling | ✔️ | | | Node.removeChild() | ✔️ | | | Node.replaceChild() | ✔️ | | | Node.textContent | ✔️ | | | NodeFilter.acceptNode() | ✖️ | | | NodeIterator.expandEntityReferences | ✖️ | | | NodeIterator.filter | ✖️ | | | NodeIterator.nextNode() | ✖️ | | | NodeIterator.pointerBeforeReferenceNode | ✖️ | | | NodeIterator.previousNode() | ✖️ | | | NodeIterator.referenceNode | ✖️ | | | NodeIterator.root | ✖️ | | | NodeIterator.whatToShow | ✖️ | | | NodeList.entries() | ✖️ | | | NodeList.forEach() | ✖️ | | | NodeList.item() | ✖️ | | | NodeList.keys() | ✖️ | | | NodeList.length | ✖️ | | | NodeList.values() | ✖️ | | | NonDocumentTypeChildNode.nextElementSibling | ✔️ | | | NonDocumentTypeChildNode.previousElementSibling | ️✔️ | | | ParentNode.append() | ✖️ | | | ParentNode.childElementCount | ✔️ | | | ParentNode.children | ✔️ | | | ParentNode.firstElementChild | ✔️ | | | ParentNode.lastElementChild | ✔️ | | | ParentNode.prepend() | ✖️ | | | ParentNode.querySelector() | ✔️ | Partial support[1](#myfootnote1) | | ParentNode.querySelectorAll() | ✔️ | Partial support[1](#myfootnote1) | | Range.cloneContents() | ✖️ | | | Range.cloneRange() | ✖️ | | | Range.collapse() | ✖️ | | | Range.collapsed | ✖️ | | | Range.commonAncestorContainer | ✖️ | | | Range.compareBoundaryPoints() | ✖️ | | | Range.compareNode() | ✖️ | | | Range.comparePoint() | ✖️ | | | Range.createContextualFragment() | ✖️ | | | Range.deleteContents() | ✖️ | | | Range.detach() | ✖️ | | | Range.endContainer | ✖️ | | | Range.endOffset | ✖️ | | | Range.extractContents() | ✖️ | | | Range.getBoundingClientRect() | ✖️ | | | Range.getClientRects() | ✖️ | | | Range.insertNode() | ✖️ | | | Range.intersectsNode() | ✖️ | | | Range.isPointInRange() | ✖️ | | | Range.selectNode() | ✖️ | | | Range.selectNodeContents() | ✖️ | | | Range.setEnd() | ✖️ | | | Range.setEndAfter() | ✖️ | | | Range.setEndBefore() | ✖️ | | | Range.setStart() | ✖️ | | | Range.setStartAfter() | ✖️ | | | Range.setStartBefore() | ✖️ | | | Range.startContainer | ✖️ | | | Range.startOffset | ✖️ | | | Range.surroundContents() | ✖️ | | | Range.toString() | ✖️ | | | Selection.addRange() | ✖️ | | | Selection.anchorNode | ✖️ | | | Selection.anchorOffset | ✖️ | | | Selection.collapse() | ✖️ | | | Selection.collapseToEnd() | ✖️ | | | Selection.collapseToStart() | ✖️ | | | Selection.containsNode() | ✖️ | | | Selection.deleteFromDocument() | ✖️ | | | Selection.empty() | ✖️ | | | Selection.extend() | ✖️ | | | Selection.focusNode | ✖️ | | | Selection.focusOffset | ✖️ | | | Selection.getRangeAt() | ✖️ | | | Selection.isCollapsed | ✖️ | | | Selection.modify() | ✖️ | | | Selection.rangeCount | ✖️ | | | Selection.removeAllRanges() | ✖️ | | | Selection.removeRange() | ✖️ | | | Selection.selectAllChildren() | ✖️ | | | Selection.setBaseAndExtent() | ✖️ | | | Selection.setPosition() | ✖️ | | | Selection.toString() | ✖️ | | | Selection.type | ✖️ | | | SVGElement.dataset | ✖️ | | | SVGElement.id | ✖️ | | | SVGElement.ownerSVGElement | ✖️ | | | SVGElement.viewportElement | ✖️ | | | SVGElement.xmlbase | ✖️ | | | Text.assignedSlot | ✖️ | | | Text.splitText | ✖️ | | | Text.wholeText | ✖️ | | | TextDecoder.decode() | ✖️ | | | TextDecoder.encoding | ✖️ | | | TextDecoder.fatal | ✖️ | | | TextDecoder.ignoreBOM | ✖️ | | | TextEncoder.encode() | ✖️ | | | TextEncoder.encoding | ✖️ | | | TimeRanges.end() | ✖️ | | | TimeRanges.length | ✖️ | | | TimeRanges.start() | ✖️ | | | TreeWalker.currentNode | ✖️ | | | TreeWalker.expandEntityReferences | ✖️ | | | TreeWalker.filter | ✖️ | | | TreeWalker.firstChild() | ✖️ | | | TreeWalker.lastChild() | ✖️ | | | TreeWalker.nextNode() | ✖️ | | | TreeWalker.nextSibling() | ✖️ | | | TreeWalker.parentNode() | ✖️ | | | TreeWalker.previousNode() | ✖️ | | | TreeWalker.previousSibling() | ✖️ | | | TreeWalker.root | ✖️ | | | TreeWalker.whatToShow | ✖️ | | | URL.createObjectURL() | ✖️ | | | URL.hash | ✖️ | | | URL.host | ✖️ | | | URL.hostname | ✖️ | | | URL.href | ✖️ | | | URL.origin | ✖️ | | | URL.password | ✖️ | | | URL.pathname | ✖️ | | | URL.port | ✖️ | | | URL.protocol | ✖️ | | | URL.revokeObjectURL() | ✖️ | | | URL.search | ✖️ | | | URL.searchParams | ✖️ | | | URL.toJSON() | ✖️ | | | URL.toString() | ✖️ | | | URL.username | ✖️ | | | Window.alert() | ✖️ | | | Window.back() | ✖️ | | | Window.blur() | ✖️ | | | Window.cancelAnimationFrame() | ✖️ | | | Window.cancelIdleCallback() | ✖️ | | | Window.captureEvents() | ✖️ | | | Window.clearImmediate() | ✖️ | | | Window.close() | ✖️ | | | Window.closed | ✖️ | | | Window.confirm() | ✖️ | | | Window.content and Window._content | ✖️ | | | Window.controllers | ✖️ | | | Window.crypto | ✖️ | | | Window.customElements | ✖️ | | | Window.devicePixelRatio | ✖️ | | | Window.directories | ✖️ | | | Window.dispatchEvent() | ✖️ | | | Window.document | ✖️ | | | Window.DOMMatrix | ✖️ | | | Window.DOMMatrixReadOnly | ✖️ | | | Window.DOMPoint | ✖️ | | | Window.DOMPointReadOnly | ✖️ | | | Window.DOMQuad | ✖️ | | | Window.DOMRect | ✖️ | | | Window.DOMRectReadOnly | ✖️ | | | Window.event | ✖️ | | | Window.find() | ✖️ | | | Window.focus() | ✖️ | | | Window.forward() | ✖️ | | | Window.frameElement | ✖️ | | | Window.frames | ✖️ | | | Window.fullScreen | ✖️ | | | Window.getAttention() | ✖️ | | | Window.getAttentionWithCycleCount() | ✖️ | | | Window.getComputedStyle() | ✖️ | | | Window.getDefaultComputedStyle() | ✖️ | | | Window.getSelection() | ✖️ | | | Window.history | ✖️ | | | Window.home() | ✖️ | | | Window.innerHeight | ✖️ | | | Window.innerWidth | ✖️ | | | Window.isSecureContext | ✖️ | | | Window.length | ✖️ | | | Window.localStorage | ✔️ | | | Window.locationbar | ✖️ | | | Window.matchMedia() | ✖️ | | | Window.maximize() | ✖️ | | | Window.menubar | ✖️ | | | Window.messageManager | ✖️ | | | Window.minimize() (top-level XUL windows only) | ✖️ | | | Window.moveBy() | ✖️ | | | Window.moveTo() | ✖️ | | | Window.mozAnimationStartTime | ✖️ | | | Window.mozInnerScreenX | ✖️ | | | Window.mozInnerScreenY | ✖️ | | | Window.mozPaintCount | ✖️ | | | Window.name | ✖️ | | | Window.open() | ✖️ | | | Window.openDialog() | ✖️ | | | Window.opener | ✖️ | | | Window.orientation | ✖️ | | | Window.outerHeight | ✖️ | | | Window.outerWidth | ✖️ | | | Window.pageXOffset | ✖️ | | | Window.pageYOffset | ✖️ | | | Window.parent | ✖️ | | | Window.personalbar | ✖️ | | | Window.postMessage() | ✖️ | | | Window.print() | ✖️ | | | Window.prompt() | ✖️ | | | Window.releaseEvents() | ✖️ | | | Window.requestAnimationFrame() | ✖️ | | | Window.requestIdleCallback() | ✖️ | | | Window.resizeBy() | ✖️ | | | Window.restore() | ✖️ | | | Window.returnValue | ✖️ | | | Window.screen | ✖️ | | | Window.screenX and Window.screenLeft | ✖️ | | | Window.screenY and Window.screenTop | ✖️ | | | Window.scroll() | ✖️ | | | Window.scrollbars | ✖️ | | | Window.scrollBy() | ✖️ | | | Window.scrollByLines() | ✖️ | | | Window.scrollByPages() | ✖️ | | | Window.scrollMaxX | ✖️ | | | Window.scrollMaxY | ✖️ | | | Window.scrollTo() | ✖️ | | | Window.scrollX | ✖️ | | | Window.scrollY | ✖️ | | | Window.sessionStorage | ✔️ | | | Window.setCursor() (top-level XUL windows only) | ✖️ | | | Window.setImmediate() | ✖️ | | | Window.setResizable() | ✖️ | | | Window.sidebar | ✖️ | | | Window.sizeToContent() | ✖️ | | | Window.speechSynthesis | ✖️ | | | Window.status | ✖️ | | | Window.statusbar | ✖️ | | | Window.stop() | ✖️ | | | Window.toolbar | ✖️ | | | Window.top | ✖️ | | | Window.updateCommands() | ✖️ | | | Window.visualViewport | ✖️ | | | Window.window | ✖️ | | | Worker | N/A | Doesn't apply since this is on the Worker thread | [1]: querySelector(All) currently supports simple selectors i.e. ID selectors, Class selectors, Element selectors and Attribute selectors.