# Suported APIs The following APIs are supported , and in some cases only partially. For example, `document.createElement()` can create currently any type of element, however only a subset of available classes is supported (listed below). For any elements that don't yet have a supporting class, an `HTMLUnknownElement` instance will be returned. For example, `document.createElement('video')` will currently return an instance of `HTMLUnknownElement` and you will not be able to use video-specific properties or methods, but you can still set attributes on the element and you can still pass it around to other DOM APIs. Please open an issue or PR for any APIs you may need, and we'll prioritize that way. # Class hierarchy If a method or property is not listed in the outline, it means we haven't added support for it yet (or someone forgot to update this outline). - `Object` - `toString()` - Subclasses: - `History` - `pushState()` - `replaceState()` - `length` - `CustomElementRegistry` - `define()` - `NodeList` - `HTMLCollection` - `Location` - `href` - `protocol` - `host` - `hostname` - `port` - `pathname` - `search` - `hash` - `origin` - `assign()` - `reload()` - `replace()` - `toString()` - `WebGLRenderingContext` - `attachShader` - `bindBuffer` - `bufferData` - `bufferData` - `clear` - `clearColor` - `clearDepth` - `compileShader` - `createBuffer` - `createProgram` - `createShader` - `depthFunc` - `drawArrays` - `enable` - `enableVertexAttribArray` - `getAttribLocation` - `getExtension` - `getUniformLocation` - `linkProgram` - `shaderSource` - `uniformMatrix4fv` - `useProgram` - `vertexAttribPointer` - `EventTarget` - `addEventListener` - `removeEventListener` - Subclasses: - `Window` - `document` - `customElements` - `history` - `location` - `onclick` - `onpopstate` - `Node` - `static ELEMENT_NODE` - `static ATTRIBUTE_NODE` - `static TEXT_NODE` - `static CDATA_SECTION_NODE` - `static PROCESSING_INSTRUCTION_NODE` - `static COMMENT_NODE` - `static DOCUMENT_NODE` - `static DOCUMENT_TYPE_NODE` - `static DOCUMENT_FRAGMENT_NODE` - `nodeType` - `parentNode` - `parentElement` - `childNodes` - `firstChild` - `lastChild` - `nextSibling` - `previousSibling` - `appendChild()` - `removeChild()` - `cloneNode()` - Subclasses: - `DocumentFragment` - `children` - `firstElementChild` - `lastElementChild` - `querySelector()` - `querySelectorAll()` - Subclasses: - `ShadowRoot` - `innerHTML` - `CharacterData` - Subclasses: - `Text` - `Document` - `URL` - `body` - `location` - `createElement()` - `createTextNode()` - `children` - `firstElementChild` - `lastElementChild` - `querySelector()` - `querySelectorAll()` - `Element` - `attachShadow()` - `children` - `click()` - `clientHeight` - `clientWidth` - `firstElementChild` - `getAttribute()` - `innerHTML` - `lastElementChild` - `nextElementSibling` - `onclick` (No `Event` object is passed into the callback yet, but at least you can react to a click) - `previousElementSibling` - `querySelector()` - `querySelectorAll()` - `remove()` - `setAttribute()` - `shadowRoot` - `tagName` - Subclasses: - `HTMLElement` (`
` and various other elements extend from this) - `innerText` - Subclasses: - `HTMLBodyElement` (``) - `HTMLDivElement` (`
`) - `HTMLSpanElement` (``) - `HTMLParagraphElement` (`

`) - `HTMLAnchorElement` (``) - `HTMLScriptElement` (`