#import #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import enum ScrollLogicalPosition { "start", "center", "end", "nearest" }; dictionary ScrollIntoViewOptions : ScrollOptions { ScrollLogicalPosition block = "start"; ScrollLogicalPosition inline = "nearest"; }; // https://dom.spec.whatwg.org/#element [Exposed=Window] interface Element : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; [Reflect, CEReactions] attribute DOMString id; [Reflect=class, CEReactions] attribute DOMString className; [SameObject, PutForwards=value] readonly attribute DOMTokenList classList; [Reflect, CEReactions, Unscopable] attribute DOMString slot; boolean hasAttributes(); [SameObject] readonly attribute NamedNodeMap attributes; sequence getAttributeNames(); DOMString? getAttribute(DOMString qualifiedName); DOMString? getAttributeNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); [CEReactions] undefined setAttribute(DOMString qualifiedName, DOMString value); [CEReactions] undefined setAttributeNS([FlyString] DOMString? namespace , [FlyString] DOMString qualifiedName , DOMString value); [CEReactions] undefined removeAttribute([FlyString] DOMString qualifiedName); [CEReactions] undefined removeAttributeNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); [CEReactions] boolean toggleAttribute(DOMString qualifiedName, optional boolean force); boolean hasAttribute(DOMString qualifiedName); boolean hasAttributeNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); Attr? getAttributeNode([FlyString] DOMString qualifiedName); Attr? getAttributeNodeNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); [CEReactions] Attr? setAttributeNode(Attr attr); [CEReactions] Attr? setAttributeNodeNS(Attr attr); [CEReactions] Attr removeAttributeNode(Attr attr); ShadowRoot attachShadow(ShadowRootInit init); readonly attribute ShadowRoot? shadowRoot; boolean matches(DOMString selectors); Element? closest(DOMString selectors); [ImplementedAs=matches] boolean webkitMatchesSelector(DOMString selectors); // legacy alias of .matches HTMLCollection getElementsByTagName(DOMString tagName); HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString className); [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // legacy undefined insertAdjacentText(DOMString where, DOMString data); // legacy // https://dom.spec.whatwg.org/#interface-nondocumenttypechildnode readonly attribute Element? nextElementSibling; readonly attribute Element? previousElementSibling; // https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface DOMRectList getClientRects(); DOMRect getBoundingClientRect(); // FIXME: boolean checkVisibility(optional CheckVisibilityOptions options = {}); undefined scrollIntoView(optional (boolean or ScrollIntoViewOptions) arg = {}); undefined scroll(optional ScrollToOptions options = {}); undefined scroll(unrestricted double x, unrestricted double y); [ImplementedAs=scroll] undefined scrollTo(optional ScrollToOptions options = {}); [ImplementedAs=scroll] undefined scrollTo(unrestricted double x, unrestricted double y); undefined scrollBy(optional ScrollToOptions options = {}); undefined scrollBy(unrestricted double x, unrestricted double y); attribute unrestricted double scrollTop; attribute unrestricted double scrollLeft; readonly attribute long scrollWidth; readonly attribute long scrollHeight; readonly attribute long clientTop; readonly attribute long clientLeft; readonly attribute long clientWidth; readonly attribute long clientHeight; readonly attribute double currentCSSZoom; // https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface [CEReactions, LegacyNullToEmptyString] attribute DOMString outerHTML; [CEReactions] undefined insertAdjacentHTML(DOMString position, DOMString text); }; dictionary ShadowRootInit { required ShadowRootMode mode; boolean delegatesFocus = false; SlotAssignmentMode slotAssignment = "named"; }; Element includes ParentNode; Element includes ChildNode; Element includes InnerHTML; // https://www.w3.org/TR/wai-aria-1.2/#idl_element Element includes ARIAMixin; Element includes Slottable; // https://www.w3.org/TR/web-animations-1/#extensions-to-the-element-interface Element includes Animatable;