{
  "*": {
    "name": "HTMLElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement",
    "descripton": "The HTMLElement interface represents any HTML element. Some elements directly implement this interface, others implement it via an interface that inherits it.",
    "properties": {
      "accessKey": {
        "name": "HTMLElement.accessKey",
        "description": "Is a DOMString representing the access key assigned to the element.",
        "accepts": "string",
        "returns": "string",
      },
      "accessKeyLabel": {
        "name": "HTMLElement.accessKeyLabel",
        "description": "Returns a DOMString containing the element's assigned access key.",
        "read_only": true
      },
      "contentEditable": {
        "name": "HTMLElement.contentEditable",
        "description": "Is a DOMString, where a value of \"true\" means the element is editable and a value of \"false\" means it isn't."
      },
      "isContentEditable": {
        "name": "HTMLElement.isContentEditable",
        "description": "Returns a Boolean that indicates whether or not the content of the element can be edited.",
        "read_only": true
      },
      "contextMenu": {
        "name": "HTMLElement.contextMenu",
        "description": "Is an HTMLMenuElement representing the contextual menu associated with the element. It may be null"
      },
      "dataset": {
        "name": "HTMLElement.dataset",
        "description": "Returns a DOMStringMap that allows access to read and write the element custom data attributes (data-*) .",
        "read_only": true
      },
      "dir": {
        "name": "HTMLElement.dir",
        "description": "Is a DOMString, reflecting the dir global attribute, representing the directionality of the element. Possible values are \"ltr\", \"rtl\", and \"auto\"."
      },
      "draggable": {
        "name": "HTMLElement.draggable",
        "description": "Is a Boolean indicating if the element can be dragged."
      },
      "dropzone": {
        "name": "HTMLElement.dropzone",
        "description": "Returns a DOMSettableTokenList reflecting the dropzone global attribute and describing the behavior of the element regarding a drop operation.",
        "read_only": true
      },
      "hidden": {
        "name": "HTMLElement.hidden",
        "description": "Is a Boolean indicating if the element is hidden or not."
      },
      "itemScope": {
        "name": "HTMLElement.itemScope",
        "description": "Is a Boolean…",
        "experimental": true
      },
      "itemType": {
        "name": "HTMLElement.itemType",
        "description": "Returns a DOMSettableTokenList…",
        "experimental": true,
        "read_only": true
      },
      "itemId": {
        "name": "HTMLElement.itemId",
        "description": "Is a DOMString…",
        "experimental": true
      },
      "itemRef": {
        "name": "HTMLElement.itemRef",
        "description": "Returns a DOMSettableTokenList…",
        "experimental": true,
        "read_only": true
      },
      "itemProp": {
        "name": "HTMLElement.itemProp",
        "description": "Returns a DOMSettableTokenList…",
        "experimental": true,
        "read_only": true
      },
      "itemValue": {
        "name": "HTMLElement.itemValue",
        "description": "Returns an Object…",
        "experimental": true
      },
      "lang": {
        "name": "HTMLElement.lang",
        "description": "Is a DOMString representing the language of an element's attributes, text, and element contents."
      },
      "offsetHeight": {
        "name": "HTMLElement.offsetHeight",
        "description": "Returns a double containing the height of an element, relative to the layout.",
        "experimental": true,
        "read_only": true
      },
      "offsetLeft": {
        "name": "HTMLElement.offsetLeft",
        "description": "Returns a double, the distance from this element's left border to its offsetParent's left border.",
        "experimental": true,
        "read_only": true
      },
      "offsetParent": {
        "name": "HTMLElement.offsetParent",
        "description": "Returns an Element that is the element from which all offset calculations are currently computed.",
        "experimental": true,
        "read_only": true
      },
      "offsetTop": {
        "name": "HTMLElement.offsetTop",
        "description": "Returns a double, the distance from this element's top border to its offsetParent's top border.",
        "experimental": true,
        "read_only": true
      },
      "offsetWidth": {
        "name": "HTMLElement.offsetWidth",
        "description": "Returns a double containing the width of an element, relative to the layout.",
        "experimental": true,
        "read_only": true
      },
      "properties": {
        "name": "HTMLElement.properties",
        "description": "Returns an HTMLPropertiesCollection…",
        "experimental": true,
        "read_only": true
      },
      "spellcheck": {
        "name": "HTMLElement.spellcheck",
        "description": "Is a Boolean that controls spell-checking. It is present on all HTML elements, though it hasn't an effect on all of them."
      },
      "style": {
        "name": "HTMLElement.style",
        "description": "Is CSSStyleDeclaration, an object representing the declarations of an element's style attributes.",
        "accepts": "string",
        "returns": "object"
      },
      "tabIndex": {
        "name": "HTMLElement.tabIndex",
        "description": "Is a long representing the position of the element in the tabbing order."
      },
      "title": {
        "name": "HTMLElement.title",
        "description": "Is a DOMString containing the text that appears in a popup box when mouse is over the element."
      },
      "translate": {
        "name": "HTMLElement.translate",
        "description": "Is a Boolean",
        "experimental": true
      }
    },
    "methods": {
      "blur": {
        "name": "HTMLElement.blur()",
        "description": "Removes keyboard focus from the currently focused element.",
        "details": "The HTMLElement.blur() method removes keyboard focus from the current element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/blur"
      },
      "click": {
        "name": "HTMLElement.click()",
        "description": "Sends a mouse click event to the element.",
        "details": "The HTMLElement.click() method simulates a mouse click on an element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click"
      },
      "focus": {
        "name": "HTMLElement.focus()",
        "description": "Makes the element the current keyboard focus.",
        "details": "The HTMLElement.focus() method sets focus on the specified element, if it can be focused.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus"
      },
      "forceSpellCheck": {
        "name": "HTMLElement.forceSpellCheck()",
        "description": "Makes the spell checker runs on the element.",
        "experimental": true,
        "details": "Forces a spelling and grammar check on HTML elements, even if the user has not focused on the elements. This method overrides user agent behavior. The user interface of the check, for example whether red underlining appears, is determined by the user agent.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/forceSpellCheck"
      }
    }
  },
  "anchor": {
    "name": "HTMLAnchorElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement",
    "descripton": "The HTMLAnchorElement interface represents hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of such elements.",
    "properties": {
      "accessKey": {
        "name": "HTMLAnchorElement.accessKey",
        "description": "Is a DOMString representing a single character that switches input focus to the hyperlink."
      },
      "charset": {
        "name": "HTMLAnchorElement.charset",
        "description": "Is a DOMString representing the character encoding of the linked resource.",
        "obsolete": true
      },
      "coords": {
        "name": "HTMLAnchorElement.coords",
        "description": "Is a DOMString representing a comma-separated list of coordinates.",
        "obsolete": true
      },
      "download": {
        "name": "HTMLAnchorElement.download",
        "description": "Is a DOMString indicating that the linked resource is intended to be downloaded rather than displayed in the browser. The value represent the proposed name of the file. If the name is not a valid filename of the underlying OS, browser will adapt it. The value is a URL with a scheme like http:, file:, data: or even blob: (created with URL.createObjectURL).",
        "experimental": true
      },
      "URLUtils.hash": {
        "name": "URLUtils.hash",
        "description": "Is a DOMString representing the fragment identifier, including the leading hash mark ('#'), if any, in the referenced URL."
      },
      "URLUtils.host": {
        "name": "URLUtils.host",
        "description": "Is a DOMString representing the hostname and port (if it's not the default port) in the referenced URL."
      },
      "URLUtils.hostname": {
        "name": "URLUtils.hostname",
        "description": "Is a DOMString representing the hostname in the referenced URL."
      },
      "URLUtils.href": {
        "name": "URLUtils.href",
        "description": "Is a DOMString that reflects the href HTML attribute, containing a valid URL of a linked resource."
      },
      "hreflang": {
        "name": "HTMLAnchorElement.hreflang",
        "description": "Is a DOMString that reflects the hreflang HTML attribute, indicating the language of the linked resource."
      },
      "media": {
        "name": "HTMLAnchorElement.media",
        "description": "Is a DOMString that reflects the media HTML attribute, indicating the intended media for the linked resource."
      },
      "name": {
        "name": "HTMLAnchorElement.name",
        "description": "Is a DOMString representing the anchor name.",
        "obsolete": true
      },
      "URLUtils.password": {
        "name": "URLUtils.password",
        "description": "Is a DOMString containing the password specified before the domain name."
      },
      "URLUtils.origin": {
        "name": "URLUtils.origin",
        "description": "Returns a DOMString containing the origin of the URL, that is its scheme, its domain and its port.",
        "read_only": true
      },
      "URLUtils.pathname": {
        "name": "URLUtils.pathname",
        "description": "Is a DOMString representing the path name component, if any, of the referenced URL."
      },
      "URLUtils.port": {
        "name": "URLUtils.port",
        "description": "Is a DOMString representing the port component, if any, of the referenced URL."
      },
      "URLUtils.protocol": {
        "name": "URLUtils.protocol",
        "description": "Is a DOMString representing the protocol component, including trailing colon (':'), of the referenced URL."
      },
      "referrer": {
        "name": "HTMLAnchorElement.referrer",
        "description": "Is a DOMString that reflects the referrer HTML attribute indicating which referrer to use when fetching the image.",
        "experimental": true
      },
      "rel": {
        "name": "HTMLAnchorElement.rel",
        "description": "Is a DOMString that reflects the rel HTML attribute, specifying the relationship of the target object to the linked object."
      },
      "relList": {
        "name": "HTMLAnchorElement.relList",
        "description": "Returns a DOMTokenList that reflects the rel HTML attribute, as a list of tokens.",
        "read_only": true
      },
      "rev": {
        "name": "HTMLAnchorElement.rev",
        "description": "Is a DOMString representing that the rev HTML attribute, specifying the relationship of the link object to the target object.",
        "obsolete": true
      },
      "URLUtils.search": {
        "name": "URLUtils.search",
        "description": "Is a DOMString representing tThe search element, including leading question mark ('?'), if any, of the referenced URL."
      },
      "shape": {
        "name": "HTMLAnchorElement.shape",
        "description": "Is a DOMString representing the shape of the active area.",
        "obsolete": true
      },
      "tabindex": {
        "name": "HTMLAnchorElement.tabindex",
        "description": "Is a long containing the position of the element in the tabbing navigation order for the current document."
      },
      "target": {
        "name": "HTMLAnchorElement.target",
        "description": "Is a DOMString that reflects the target HTML attribute, indicating where to display the linked resource."
      },
      "text": {
        "name": "HTMLAnchorElement.text",
        "description": "Is a DOMString being a synonym for the Node.textContent property."
      },
      "type": {
        "name": "HTMLAnchorElement.type",
        "description": "Is a DOMString that reflects the type HTML attribute, indicating the MIME type of the linked resource."
      },
      "URLUtils.username": {
        "name": "URLUtils.username",
        "description": "Is a DOMString containing the username specified before the domain name."
      }
    },
    "methods": {
      "HTMLElement.blur": {
        "name": "HTMLElement.blur()",
        "description": "Removes the  keyboard focus from the current element.",
        "details": "The HTMLElement.blur() method removes keyboard focus from the current element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/blur"
      },
      "HTMLElement.focus": {
        "name": "HTMLElement.focus()",
        "description": "Gives the keyboard focus to the current element.",
        "details": "The HTMLElement.focus() method sets focus on the specified element, if it can be focused.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus"
      },
      "URLUtils.toString": {
        "name": "URLUtils.toString()",
        "description": "Returns a DOMString containing the whole URL. It is a synonym for URLUtils.href, though it can't be used to modify the value.",
        "details": "The URLUtils.toString() stringifier method returns a DOMString containing the whole URL. It is a read-only version of URLUtilsReadOnly.href.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/URLUtils/toString"
      }
    }
  },
  "area": {
    "name": "HTMLAreaElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement",
    "descripton": "The HTMLAreaElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of area elements.",
    "properties": {
      "accessKey": {
        "name": "HTMLAreaElement.accessKey",
        "description": "Is a DOMString containing a single character that switches input focus to the control."
      },
      "alt": {
        "name": "HTMLAreaElement.alt",
        "description": "Is a DOMString that reflects the alt HTML attribute, containing alternative text for the element."
      },
      "coords": {
        "name": "HTMLAreaElement.coords",
        "description": "Is a DOMString that reflects the coords HTML attribute, containing coordinates to define the hot-spot region."
      },
      "download": {
        "name": "HTMLAreaElement.download",
        "description": "Is a DOMString indicating that the linked resource is intended to be downloaded rather than displayed in the browser. The value represent the proposed name of the file. If the name is not a valid filename of the underlying OS, browser will adapt it.",
        "experimental": true
      },
      "URLUtils.hash": {
        "name": "URLUtils.hash",
        "description": "Is a DOMString containing the fragment identifier (including the leading hash mark (#)), if any, in the referenced URL."
      },
      "URLUtils.host": {
        "name": "URLUtils.host",
        "description": "Is a DOMString containing the hostname and port (if it's not the default port) in the referenced URL."
      },
      "URLUtils.hostname": {
        "name": "URLUtils.hostname",
        "description": "Is a DOMString containing the hostname in the referenced URL."
      },
      "URLUtils.href": {
        "name": "URLUtils.href",
        "description": "Is a DOMString containing that reflects the href HTML attribute, containing a valid URL of a linked resource."
      },
      "hreflang": {
        "name": "HTMLAreaElement.hreflang",
        "description": "Is a DOMString containing that reflects the hreflang HTML attribute, indicating the language of the linked resource."
      },
      "media": {
        "name": "HTMLAreaElement.media",
        "description": "Is a DOMString containing that reflects the media HTML attribute, indicating target media of the linked resource."
      },
      "noHref": {
        "name": "HTMLAreaElement.noHref",
        "description": "Is a Boolean flag indicating if the area is inactive (true) or active (false).",
        "obsolete": true
      },
      "URLUtils.password": {
        "name": "URLUtils.password",
        "description": "Is a DOMString containing the password specified before the domain name."
      },
      "URLUtils.origin": {
        "name": "URLUtils.origin",
        "description": "Returns a DOMString containing the origin of the URL, that is its scheme, its domain and its port.",
        "read_only": true
      },
      "URLUtils.pathname": {
        "name": "URLUtils.pathname",
        "description": "Is a DOMString containing the path name component, if any, of the referenced URL."
      },
      "URLUtils.port": {
        "name": "URLUtils.port",
        "description": "Is a DOMString containing the port component, if any, of the referenced URL."
      },
      "URLUtils.protocol": {
        "name": "URLUtils.protocol",
        "description": "Is a DOMString containing the protocol component (including trailing colon ':'), of the referenced URL."
      },
      "referrer": {
        "name": "HTMLAreaElement.referrer",
        "description": "Is a DOMString that reflects the referrer HTML attribute indicating which referrer to use when fetching the linked resource.",
        "experimental": true
      },
      "rel": {
        "name": "HTMLAreaElement.rel",
        "description": "Is a DOMString that reflects the rel HTML attribute, indicating relationships of the current document to the linked resource."
      },
      "relList": {
        "name": "HTMLAreaElement.relList",
        "description": "Returns a DOMTokenList that reflects the rel HTML attribute, indicating relationships of the current document to the linked resource, as a list of tokens.",
        "read_only": true
      },
      "search": {
        "name": "HTMLAreaElement.search",
        "description": "Is a DOMString containing the search element (including leading question mark '?'), if any, of the referenced URL."
      },
      "shape": {
        "name": "HTMLAreaElement.shape",
        "description": "Is a DOMString that reflects the shape HTML attribute, indicating the shape of the hot-spot, limited to known values."
      },
      "tabIndex": {
        "name": "HTMLAreaElement.tabIndex",
        "description": "Is a long containing the element's position in the tabbing order."
      },
      "target": {
        "name": "HTMLAreaElement.target",
        "description": "Is a DOMString that reflects the target HTML attribute, indicating the browsing context in which to open the linked resource."
      },
      "type": {
        "name": "HTMLAreaElement.type",
        "description": "Is a DOMString that reflects the type HTML attribute, indicating the MIME type of the linked resource."
      },
      "URLUtils.username": {
        "name": "URLUtils.username",
        "description": "Is a DOMString containing the username specified before the domain name."
      }
    },
    "methods": {
      "URLUtils.toString": {
        "name": "URLUtils.toString()",
        "description": "Returns a DOMString containing the whole URL of the script executed in the Worker. It is a synonym for URLUtils.href.",
        "details": "The URLUtils.toString() stringifier method returns a DOMString containing the whole URL. It is a read-only version of URLUtilsReadOnly.href.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/URLUtils/toString"
      }
    }
  },
  "audio": {
    "name": "HTMLAudioElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement",
    "descripton": "The HTMLAudioElement interface provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface.",
    "properties": {},
    "methods": {}
  },
  "base": {
    "name": "HTMLBaseElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement",
    "descripton": "The HTMLBaseElement interface contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface.",
    "properties": {
      "href": {
        "name": "HTMLBaseElement.href",
        "description": "Is a DOMString that reflects the href HTML attribute, containing a base URL for relative URLs in the document."
      },
      "target": {
        "name": "HTMLBaseElement.target",
        "description": "Is a DOMString that reflects the target HTML attribute, containing a default target browsing context or frame for elements that do not have a target reference specified."
      }
    },
    "methods": {}
  },
  "basefont": {
    "name": "HTMLBaseFontElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement",
    "descripton": "The HTMLBaseFontElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <basefont> elements.",
    "obsolete": true,
    "properties": {
      "color": {
        "name": "HTMLBaseFontElement.color",
        "description": "Is a DOMString representing the text color using either a named color or a color specified in the hexadecimal #RRGGBB format."
      },
      "face": {
        "name": "HTMLBaseFontElement.face",
        "description": "Is a DOMString representing a list of one or more font names. The document text in the default style is rendered in the first font face that the client's browser supports. If no font listed is installed on the local system, the browser typically defaults to the proportional or fixed-width font for that system."
      },
      "size": {
        "name": "HTMLBaseFontElement.size",
        "description": "Is a DOMString representing the font size as either a numeric or relative value. Numeric values range from 1 to 7 with 1 being the smallest and 3 the default. Relative value starts with a '+' or a '-'."
      }
    },
    "methods": {}
  },
  "body": {
    "name": "HTMLBodyElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement",
    "descripton": "The HTMLBodyElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating body elements.",
    "properties": {
      "aLink": {
        "name": "HTMLBodyElement.aLink",
        "description": "Is a DOMString that represents the color of active hyperlinks.",
        "obsolete": true
      },
      "background": {
        "name": "HTMLBodyElement.background",
        "description": "Is a DOMString that represents the description of the location of the background image resource. Note that this is not an URI, though some older version of some browsers do expect it.",
        "obsolete": true
      },
      "bgColor": {
        "name": "HTMLBodyElement.bgColor",
        "description": "Is a DOMString that represents the background color for the document.",
        "obsolete": true
      },
      "link": {
        "name": "HTMLBodyElement.link",
        "description": "Is a DOMString that represents the color of unvisited links.",
        "obsolete": true
      },
      "text": {
        "name": "HTMLBodyElement.text",
        "description": "Is a DOMString that represents the foreground color of text.",
        "obsolete": true
      },
      "vLink": {
        "name": "HTMLBodyElement.vLink",
        "description": "Is a DOMString that represents the color of visited links.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "br": {
    "name": "HTMLBRElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement",
    "descripton": "The HTMLBRElement interface represents a HTML line break element (<br>). It inherits from HTMLElement.",
    "properties": {
      "clear": {
        "name": "clear",
        "description": "Indicates flow of text around floating objects.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "button": {
    "name": "HTMLButtonElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement",
    "descripton": "The HTMLButtonElement interface provides properties and methods (beyond the <button> object interface it also has available to them by inheritance) for manipulating the layout and presentation of button elements.",
    "properties": {
      "accessKey": {
        "name": "accessKey",
        "description": "A single-character keyboard key to give access to the button."
      },
      "autofocus": {
        "name": "autofocus",
        "description": "The control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified."
      },
      "disabled": {
        "name": "disabled",
        "description": "The control is disabled, meaning that it does not accept any clicks."
      },
      "form": {
        "name": "form",
        "description": "The form that this button is associated with. If the button is a descendant of a form element, then this attribute is the ID of that form element.\n    If the button is not a descendant of a form element, then the attribute can be the ID of any form element in the same document it is related to, or the null value if none matches.",
        "read_only": true
      },
      "formAction": {
        "name": "formAction",
        "description": "The URI of a resource that processes information submitted by the button. If specified, this attribute overrides the action attribute of the <form> element that owns this element."
      },
      "formEncType": {
        "name": "formEncType",
        "description": "The type of content that is used to submit the form to the server. If specified, this attribute overrides the enctype attribute of the <form> element that owns this element."
      },
      "formMethod": {
        "name": "formMethod",
        "description": "The HTTP method that the browser uses to submit the form. If specified, this attribute overrides the method attribute of the <form> element that owns this element."
      },
      "formNoValidate": {
        "name": "formNoValidate",
        "description": "Indicates that the form is not to be validated when it is submitted. If specified, this attribute overrides the novalidate attribute of the <form> element that owns this element."
      },
      "formTarget": {
        "name": "formTarget",
        "description": "A name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the target attribute of the <form> element that owns this element."
      },
      "labels": {
        "name": "labels",
        "description": "A list of <label> elements that are labels for this button.",
        "read_only": true
      },
      "menu": {
        "name": "menu",
        "description": "The menu element to be displayed if the button is clicked and is of type=\"menu\".",
        "experimental": true
      },
      "name": {
        "name": "name",
        "description": "The name of the object when submitted with a form. HTML5 If specified, it must not be the empty string."
      },
      "tabIndex": {
        "name": "tabIndex",
        "description": "Number that represents this element's position in the tabbing order."
      },
      "type": {
        "name": "type",
        "description": "Indicates the behavior of the button. This is an enumerated attribute with the following possible values:\n    \n     \"submit\": The button submits the form. This is the default value if the attribute is not specified, HTML5 or if it is dynamically changed to an empty or invalid value.\n     \"reset\": The button resets the form.\n     \"button\": The button does nothing.\n     \"menu\": The button displays a menu.",
        "experimental": true
      },
      "validationMessage": {
        "name": "validationMessage",
        "description": "A localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "validity",
        "description": "The validity states that this button is in.",
        "read_only": true
      },
      "value": {
        "name": "value",
        "description": "The current form control value of the button."
      },
      "willValidate": {
        "name": "willValidate",
        "description": "Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation."
      }
    },
    "methods": {
      "checkValidity": {
        "name": "checkValidity()",
        "description": "Not supported for button elements.",
        "details": "The Boolean object is an object wrapper for a boolean value.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Boolean"
      },
      "setCustomValidity": {
        "name": "setCustomValidity(in DOMString error)",
        "description": "Not supported for button elements.",
        "args": [
          "in DOMString error"
        ]
      }
    }
  },
  "canvas": {
    "name": "HTMLCanvasElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement",
    "descripton": "The HTMLCanvasElement interface provides properties and methods for manipulating the layout and presentation of canvas elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface.",
    "properties": {
      "height": {
        "name": "HTMLCanvasElement.height",
        "description": "A positive integer reflecting the height HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used."
      },
      "mozOpaque": {
        "name": "HTMLCanvasElement.mozOpaque",
        "description": "A Boolean reflecting the moz-opaque HTML attribute of the <canvas> element. It lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized.",
        "non_standard": true
      },
      "width": {
        "name": "HTMLCanvasElement.width",
        "description": "A positive integer reflecting the width HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used."
      }
    },
    "methods": {
      "captureStream": {
        "name": "HTMLCanvasElement.captureStream()",
        "description": "Returns a CanvasCaptureMediaStream that is a real-time video capture of the surface of the canvas.",
        "experimental": true,
        "details": "The HTMLCanvasElement.captureStream() method returns a CanvasCaptureMediaStream that is a real-time video capture of the surface of the canvas.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/captureStream"
      },
      "getContext": {
        "name": "HTMLCanvasElement.getContext()",
        "description": "Returns a drawing context on the canvas, or null if the context ID is not supported. A drawing context lets you draw on the canvas. Calling getContext with \"2d\" returns a CanvasRenderingContext2D object, whereas calling it with \"experimental-webgl\" (or \"webgl\") returns a WebGLRenderingContext object. This context is only available on browsers that implement WebGL.",
        "details": "The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext"
      },
      "toDataURL": {
        "name": "HTMLCanvasElement.toDataURL()",
        "description": "Returns a data-URL containing a representation of the image in the format specified by the type parameter (defaults to png). The returned image is in a resolution of 96dpi.",
        "details": "The HTMLCanvasElement.toDataURL() method returns a data URIs containing a representation of the image in the format specified by the type parameter (defaults to PNG). The returned image is in a resolution of 96 dpi.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL"
      },
      "toBlob": {
        "name": "HTMLCanvasElement.toBlob()",
        "description": "Creates a Blob object representing the image contained in the canvas; this file may be cached on the disk or stored in memory at the discretion of the user agent.",
        "details": "The HTMLCanvasElement.toBlob() method creates a Blob object representing the image contained in the canvas; this file may be cached on the disk or stored in memory at the discretion of the user agent. If type is not specified, the image type is image/png. The created image is in a resolution of 96dpi.\n The third argument is used with image/jpeg images to specify the quality of the output.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob"
      },
      "mozGetAsFile": {
        "name": "HTMLCanvasElement.mozGetAsFile()",
        "description": "Returns a File object representing the image contained in the canvas; this file is a memory-based file, with the specified name. If type is not specified, the image type is image/png.",
        "deprecated": true,
        "non_standard": true,
        "details": "The HTMLCanvasElement.mozGetAsFille() method returns a File object representing the image contained in the canvas; this file is a memory-based file, with the specified name. If type is not specified, the image type is image/png.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/mozGetAsFile"
      }
    }
  },
  "content": {
    "name": "HTMLContentElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLContentElement",
    "descripton": "The HTMLContentElement interface represents a <content> HTML Element, which is used in Shadow DOM.",
    "properties": {
      "select": {
        "name": "HTMLContentElement.select",
        "description": "A DOMString that reflects the select HTML attribute. The value is a comma-separated list of CSS selectors that select the content to insert in place of the <content> element."
      }
    },
    "methods": {
      "getDistributedNodes": {
        "name": "HTMLContentElement.getDistributedNodes()",
        "description": "Returns a static NodeList of the distributed nodes associated with this <content> element.",
        "details": "The HTMLContentElement.getDistributedNodes() method returns a static NodeList of the distributed nodes associated with this <content> element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLContentElement/getDistributedNodes"
      }
    }
  },
  "data": {
    "name": "HTMLDataElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataElement",
    "descripton": "The HTMLDataElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements.",
    "properties": {
      "value": {
        "name": "value",
        "description": "Reflects the value HTML attribute, containing a machine-readable form of the element's value."
      }
    },
    "methods": {}
  },
  "datalist": {
    "name": "HTMLDataListElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement",
    "descripton": "The HTMLDataListElement interface provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content.",
    "properties": {
      "options": {
        "name": "options",
        "description": "A collection of the contained option elements.",
        "read_only": true
      }
    },
    "methods": {}
  },
  "dialog": {
    "name": "HTMLDialogElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement",
    "descripton": "The HTMLDialogElement interface provides methods to manipulate <dialog> elements. It inherits properties and methods from the HTMLElement interface.",
    "properties": {
      "open": {
        "name": "open",
        "description": "Reflects the open HTML attribute, indicating that the dialog is available for interaction."
      },
      "returnValue": {
        "name": "returnValue",
        "description": "Gets/sets the return value for the dialog."
      }
    },
    "methods": {
      "close": {
        "name": "close()",
        "description": "Closes the dialog. An optional DOMString may be passed as an argument, updating the returnValue of the the dialog.",
        "details": "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/DOMString"
      },
      "show": {
        "name": "show()",
        "description": "Displays the dialog modelessly, i.e. still allowing interaction with content outside of the dialog. An optional Element or MouseEvent may be passed as an argument, to specify an anchor point to which the dialog is fixed.",
        "details": "The Element interface represents an object of a Document. This interface describes methods and properties common to all kinds of elements. Specific behaviors are described in interfaces which inherit from Element but add additional functionality.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Element"
      },
      "showModal": {
        "name": "showModal()",
        "description": "Displays the dialog for exclusive interaction, over the top of any other dialogs that might be present. An optional Element or MouseEvent may be passed as an argument, to specify an anchor point to which the dialog is fixed.",
        "details": "The Element interface represents an object of a Document. This interface describes methods and properties common to all kinds of elements. Specific behaviors are described in interfaces which inherit from Element but add additional functionality.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Element"
      }
    }
  },
  "div": {
    "name": "HTMLDivElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement",
    "descripton": "The HTMLDivElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating div elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", \"justify\", and \"center\".",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "dlist": {
    "name": "HTMLDListElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement",
    "descripton": "The HTMLDListElement interface provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list elements.",
    "properties": {
      "compact": {
        "name": "compact",
        "description": "Indicates that spacing between list items should be reduced.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "embed": {
    "name": "HTMLEmbedElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement",
    "descripton": "The HTMLEmbedElement interface, which provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", \"center\", and \"justify\".",
        "obsolete": true
      },
      "height": {
        "name": "height",
        "description": "Reflects the height HTML attribute, containing the displayed height of the resource."
      },
      "name": {
        "name": "name",
        "description": "The name of the embedded object.",
        "obsolete": true
      },
      "src": {
        "name": "src",
        "description": "Reflects the src HTML attribute, containing the address of the resource."
      },
      "type": {
        "name": "type",
        "description": "Reflects the type HTML attribute, containing the type of the resource."
      },
      "width": {
        "name": "width",
        "description": "Reflects the width HTML attribute, containing the displayed width of the resource."
      }
    },
    "methods": {}
  },
  "fieldset": {
    "name": "HTMLFieldSetElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement",
    "descripton": "The HTMLFieldSetElement interface has special properties and methods (beyond the regular HTMLelement interface it also has available to it by inheritance) for manipulating the layout and presentation of field-set elements.",
    "properties": {
      "disabled": {
        "name": "disabled",
        "description": "Reflects the disabled HTML attribute, indicating whether the user can interact with the control."
      },
      "elements": {
        "name": "elements",
        "description": "The elements belonging to this field set.",
        "read_only": true
      },
      "form": {
        "name": "form",
        "description": "The containing form element, if this element is in a form.\n    If the button is not a descendant of a form element, then the attribute can be the ID of any form element in the same document it is related to, or the null value if none matches.",
        "read_only": true
      },
      "name": {
        "name": "name",
        "description": "Reflects the name HTML attribute, containing the name of the field set, used for submitting the form."
      },
      "type": {
        "name": "type",
        "description": "Must be the string fieldset.",
        "read_only": true
      },
      "validationMessage": {
        "name": "validationMessage",
        "description": "A localized message that describes the validation constraints that the element does not satisfy (if any). This is the empty string if the element is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "validity",
        "description": "The validity states that this element is in.",
        "read_only": true
      },
      "willValidate": {
        "name": "willValidate",
        "description": "Always false because <fieldset> objects are never candidates for constraint validation."
      }
    },
    "methods": {
      "checkValidity": {
        "name": "checkValidity()",
        "description": "Always returns true because <fieldset> objects are never candidates for constraint validation.",
        "details": "The Boolean object is an object wrapper for a boolean value.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Boolean"
      },
      "setCustomValidity": {
        "name": "setCustomValidity()",
        "description": "Sets a custom validity message for the field set. If this message is not the empty string, then the field set is suffering from a custom validity error, and does not validate."
      }
    }
  },
  "form": {
    "name": "HTMLFormElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement",
    "descripton": "The HTMLFormElement interface provides methods to create and modify <form> elements; it inherits from properties and methods of the HTMLElement interface.",
    "properties": {
      "acceptCharset": {
        "name": "HTMLFormElement.acceptCharset",
        "description": "Is a DOMString that reflects the accept-charset HTML attribute, containing a list of character encodings that the server accepts."
      },
      "action": {
        "name": "HTMLFormElement.action",
        "description": "Is a DOMString that reflects the action HTML attribute, containing the URI of a program that processes the information submitted by the form."
      },
      "autocomplete": {
        "name": "HTMLFormElement.autocomplete",
        "description": "Is a DOMString that reflects the autocomplete HTML attribute, containing a string that indicates whether the controls in this form can have their values automatically populated by the browser."
      },
      "elements": {
        "name": "HTMLFormElement.elements",
        "description": "Returns a live HTMLFormControlsCollection containing all the form controls belonging to this form element.",
        "read_only": true
      },
      "encoding": {
        "name": "HTMLFormElement.encoding",
        "description": "Is a synonym for enctype."
      },
      "enctype": {
        "name": "HTMLFormElement.enctype",
        "description": "Is a DOMString reflects the enctype HTML attribute, indicating the type of content that is used to transmit the form to the server. Only specified values can be set."
      },
      "length": {
        "name": "HTMLFormElement.length",
        "description": "Returns a long that represents the number of controls in the form.",
        "read_only": true
      },
      "method": {
        "name": "HTMLFormElement.method",
        "description": "Is a DOMString that reflects the method HTML attribute, indicating the HTTP method used to submit the form. Only specified values can be set."
      },
      "name": {
        "name": "HTMLFormElement.name",
        "description": "Is a DOMString that reflects the name HTML attribute, containing the name of the form."
      },
      "noValidate": {
        "name": "HTMLFormElement.noValidate",
        "description": "Is a Boolean that reflects the novalidate HTML attribute, indicating that the form should not be validated."
      },
      "target": {
        "name": "HTMLFormElement.target",
        "description": "Is a DOMString that reflects the target HTML attribute, indicating where to display the results received from submitting the form."
      }
    },
    "methods": {
      "operator[index]": {
        "name": "HTMLFormElement.operator[index]",
        "description": "Gets the item in the elements collection at the specified index, or null if there is no item at that index. You can also specify the index in array-style brackets or parentheses after the form object name, without calling this method explicitly. E.g. form[4]",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "operator[string]": {
        "name": "HTMLFormElement.operator[string]",
        "description": "Gets the item or list of items in elements collection whose name or id match the specified string, or null if no items match. You can also specify the name in array-style brackets or parentheses after the form object name, without calling this method explicitly. E.g. form['value']",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "checkValidity": {
        "name": "HTMLFormElement.checkValidity()",
        "description": "Returns a Boolean that is true if the element's child controls are subject to constraint validation and satify those contraints, or false if some controls do not satisfy their constraints. Fires an event named invalid at any control that does not satisfy its constraints; such controls are considered invalid if the event is not canceled. It is up to the programmer to decide how to respond to false.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "submit": {
        "name": "HTMLFormElement.submit()",
        "description": "Submits the form to the server.",
        "details": "The HTMLFormElement.submit() method submits the form. This method does something similar to activating a submit button of the form.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit"
      },
      "reset": {
        "name": "HTMLFormElement.reset()",
        "description": "Resets the forms to its initial state.",
        "details": "The HTMLFormElement.reset() method restores a form element's default values. This method does the same thing as clicking the form's reset button.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reset"
      }
    }
  },
  "frameset": {
    "name": "HTMLFrameSetElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement",
    "descripton": "The HTMLFrameSetElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements.",
    "obsolete": true,
    "properties": {
      "cols": {
        "name": "HTMLFrameSetElement.cols",
        "description": "Is a DOMString that represents the foreground color of text.",
        "obsolete": true
      },
      "rows": {
        "name": "HTMLFrameSetElement.rows",
        "description": "Is a DOMString that represents the color of visited links.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "head": {
    "name": "HTMLHeadElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement",
    "descripton": "The HTMLHeadElement interface contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface.",
    "properties": {
      "profile": {
        "name": "HTMLHeadElement.profile",
        "description": "Is a DOMString representing the URIs of one or more metadata profiles (white space separated).",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "heading": {
    "name": "HTMLHeadingElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement",
    "descripton": "The HTMLHeadingElement interface represents the different heading elements. It inherits methods and properties from the HTMLElement interface.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated attribute indicating alignment of the heading with respect to the surrounding context.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "hr": {
    "name": "HTMLHRElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement",
    "descripton": "The HTMLHRElement interface provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated attribute indicating alignment of the rule with respect to the surrounding context.",
        "obsolete": true
      },
      "color": {
        "name": "color",
        "description": "The name of the color of the rule.",
        "obsolete": true
      },
      "noshade": {
        "name": "noshade",
        "description": "Sets the rule to have no shading.",
        "obsolete": true
      },
      "size": {
        "name": "size",
        "description": "The height of the rule.",
        "obsolete": true
      },
      "width": {
        "name": "width",
        "description": "The width of the rule on the page.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "html": {
    "name": "HTMLHtmlElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement",
    "descripton": "The HTMLHtmlElement interface serves as the root node for a given HTML document.  This object inherits the properties and methods described in the HTMLElement interface.",
    "properties": {
      "version": {
        "name": "HTMLHtmlElement.version",
        "description": "Is a DOMString representing the version of the HTML Document Type Definition (DTD) that governs this document. This property should not be used any more as it is non-conforming. Simply omit it.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "iframe": {
    "name": "HTMLIFrameElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement",
    "descripton": "The HTMLIFrameElement interface provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements.",
    "properties": {
      "align": {
        "name": "HTMLIFrameElement.align",
        "description": "Is a DOMString that specifies the alignment of the frame with respect to the surrounding context.",
        "obsolete": true
      },
      "allowfullscreen": {
        "name": "HTMLIFrameElement.allowfullscreen",
        "description": "Is a Boolean that indicates whether or not the inline frame is willing to be placed into full screen mode. See Using full-screen mode for details.",
        "experimental": true
      },
      "contentDocument": {
        "name": "HTMLIFrameElement.contentDocument",
        "description": "Returns a Document, the active document in the inline frame's nested browsing context.",
        "read_only": true
      },
      "contentWindow": {
        "name": "HTMLIFrameElement.contentWindow",
        "description": "Returns a WindowProxy, the window proxy for the nested browsing context.",
        "read_only": true
      },
      "frameBorder": {
        "name": "HTMLIFrameElement.frameBorder",
        "description": "Is a DOMString that indicates whether to create borders between frames.",
        "obsolete": true
      },
      "height": {
        "name": "HTMLIFrameElement.height",
        "description": "Is a DOMString that reflects the height HTML attribute, indicating the height of the frame."
      },
      "longDesc": {
        "name": "HTMLIFrameElement.longDesc",
        "description": "Is a DOMString that contains the URI of a long description of the frame.",
        "obsolete": true
      },
      "marginHeight": {
        "name": "HTMLIFrameElement.marginHeight",
        "description": "Is a DOMString being the height of the frame margin.",
        "obsolete": true
      },
      "marginWidth": {
        "name": "HTMLIFrameElement.marginWidth",
        "description": "Is a DOMString being the width of the frame margin.",
        "obsolete": true
      },
      "name": {
        "name": "HTMLIFrameElement.name",
        "description": "Is a DOMString that reflects the name HTML attribute, containing a name by which to refer to the frame."
      },
      "referrer": {
        "name": "HTMLIFrameElement.referrer",
        "description": "Is a DOMString that reflects the referrer HTML attribute indicating which referrer to use when fetching the linked resource.",
        "experimental": true
      },
      "sandbox": {
        "name": "HTMLIFrameElement.sandbox",
        "description": "Is a DOMSettableTokenList that reflects the sandbox HTML attribute, indicating extra restrictions on the behavior of the nested content."
      },
      "scrolling": {
        "name": "HTMLIFrameElement.scrolling",
        "description": "Is a DOMString that indicates whether the browser should provide scrollbars for the frame.",
        "obsolete": true
      },
      "seamless": {
        "name": "HTMLIFrameElement.seamless",
        "description": "Is a Boolean that reflects the seamless HTML attribute, indicating that the inline frame should be rendered seamlessly within the parent document.",
        "experimental": true
      },
      "src": {
        "name": "HTMLIFrameElement.src",
        "description": "Is a DOMString that reflects the src HTML attribute, containing the address of the content to be embedded."
      },
      "srcdoc": {
        "name": "HTMLIFrameElement.srcdoc",
        "description": "Is a DOMString that represents the content to display in the frame."
      },
      "width": {
        "name": "HTMLIFrameElement.width",
        "description": "Is a DOMString that reflects the width HTML attribute, indicating the width of the frame."
      }
    },
    "methods": {}
  },
  "image": {
    "name": "HTMLImageElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement",
    "descripton": "The HTMLImageElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <img> elements.",
    "properties": {
      "align": {
        "name": "HTMLImageElement.align",
        "description": "Is a DOMString indicating the alignment of the image with respect to the surrounding context.",
        "obsolete": true
      },
      "alt": {
        "name": "HTMLImageElement.alt",
        "description": "Is a DOMString that reflects the alt HTML attribute, indicating fallback context for the image."
      },
      "border": {
        "name": "HTMLImageElement.border",
        "description": "Is a DOMString that gives the width of the border around the image. This is now deprecated and the CSS border property should be used instead.",
        "obsolete": true
      },
      "complete": {
        "name": "HTMLImageElement.complete",
        "description": "Returns a Boolean that is true if the browser has finished fetching the image, whether successful or not. Also returns true if the image has no src value.",
        "read_only": true
      },
      "crossOrigin": {
        "name": "HTMLImageElement.crossOrigin",
        "description": "Is a DOMString representing the CORS setting for this image element. See CORS settings attributes for details."
      },
      "currentSrc": {
        "name": "HTMLImageElement.currentSrc",
        "description": "Returns a DOMString",
        "experimental": true,
        "read_only": true
      },
      "height": {
        "name": "HTMLImageElement.height",
        "description": "Is a unsigned long that reflects the height HTML attribute, indicating the rendered height of the image in CSS pixels."
      },
      "hspace": {
        "name": "HTMLImageElement.hspace",
        "description": "Is a long representing the space to the left and right of the image.",
        "obsolete": true
      },
      "isMap": {
        "name": "HTMLImageElement.isMap",
        "description": "Is a Boolean that reflects the ismap HTML attribute, indicating that the image is part of a server-side image map."
      },
      "longDesc": {
        "name": "HTMLImageElement.longDesc",
        "description": "Is a DOMString representing the URI of a long description of the image.",
        "obsolete": true
      },
      "lowSrc": {
        "name": "HTMLImageElement.lowSrc",
        "description": "Is a DOMString representing a reference to a low-quality (but faster to load) copy of the image.",
        "obsolete": true
      },
      "name": {
        "name": "HTMLImageElement.name",
        "description": "Is a DOMString.",
        "obsolete": true
      },
      "naturalHeight": {
        "name": "HTMLImageElement.naturalHeight",
        "description": "Returns an unsigned long representing the intrinsic height of the image in CSS pixels, if it is available; otherwise, 0.",
        "read_only": true
      },
      "naturalWidth": {
        "name": "HTMLImageElement.naturalWidth",
        "description": "Returns an unsigned long representing the intrinsic width of the image in CSS pixels, if it is available; otherwise, 0.",
        "read_only": true
      },
      "referrer": {
        "name": "HTMLImageElement.referrer",
        "description": "Is a DOMString that reflects the referrer HTML attribute indicating which referrer to use when fetching the image.",
        "experimental": true
      },
      "src": {
        "name": "HTMLImageElement.src",
        "description": "Is a DOMString that reflects the src HTML attribute, containing the full URL of the image including base URI."
      },
      "sizes": {
        "name": "HTMLImageElement.sizes",
        "description": "Is a DOMString",
        "experimental": true
      },
      "srcset": {
        "name": "HTMLImageElement.srcset",
        "description": "IIs a DOMString reflecting the srcset HTML attribute, containing a list of candidate images, separated by a comma (',', U+002C COMMA). A candidate image is a URL followed by a 'w' with the width of the images, or an 'x' followed by the pixel density.",
        "experimental": true
      },
      "useMap": {
        "name": "HTMLImageElement.useMap",
        "description": "Is a DOMString that reflects the usemap HTML attribute, containing a partial URL of a map element."
      },
      "vspace": {
        "name": "HTMLImageElement.vspace",
        "description": "Is a long representing the space above and below the image.",
        "obsolete": true
      },
      "width": {
        "name": "HTMLImageElement.width",
        "description": "Is an unsigned long that reflects the width HTML attribute, indicating the rendered width of the image in CSS pixels."
      },
      "x": {
        "name": "HTMLImageElement.x",
        "description": "Returns a long representing the horizontal offset from the nearest layer. This property mimics an old Netscape 4 behavior.",
        "experimental": true,
        "read_only": true
      },
      "y": {
        "name": "HTMLImageElement.y",
        "description": "Returns a long representing the vertical offset from the nearest layer. This property mimics an old Netscape 4 behavior.",
        "experimental": true,
        "read_only": true
      }
    },
    "methods": {
      "Image": {
        "name": "Image()",
        "description": "The Image() constructor, taking two optional unsigned long, the width and the height of the resource, creates an instance of HTMLImageElement not inserted in a DOM tree.",
        "details": "Accepts two optional parameters: Image([unsigned long width, unsigned long height])",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image"
      }
    }
  },
  "input": {
    "name": "HTMLInputElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement",
    "descripton": "The HTMLInputElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of input elements.",
    "properties": {
      "accept": {
        "name": "accept",
        "description": "Reflects the accept HTML attribute, containing comma-separated list of file types accepted by the server when type is file."
      },
      "accessKey": {
        "name": "accessKey",
        "description": "A single character that switches input focus to the control."
      },
      "align": {
        "name": "align",
        "description": "Alignment of the element.",
        "obsolete": true
      },
      "alt": {
        "name": "alt",
        "description": "Reflects the alt HTML attribute, containing alternative text to use when type is image."
      },
      "autocapitalize": {
        "name": "autocapitalize",
        "description": "Defines capitalization behavior for user input. Valid values are none, off, characters, words, or sentences.",
        "experimental": true
      },
      "autocomplete": {
        "name": "autocomplete",
        "description": "Reflects the autocomplete HTML attribute, indicating whether the value of the control can be automatically completed by the browser. Ignored if the value of the type attribute is hidden, checkbox, radio, file, or a button type (button, submit, reset, image). Possible values are:\n    \n     off: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\n     on: The browser can automatically complete the value based on values that the user has entered during previous uses."
      },
      "autofocus": {
        "name": "autofocus",
        "description": "Reflects the autofocus HTML attribute, which specifies that a form control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form element in a document can have the autofocus attribute. It cannot be applied if the type attribute is set to hidden (that is, you cannot automatically set focus to a hidden control)."
      },
      "checked": {
        "name": "checked",
        "description": "The current state of the element when type is checkbox or radio."
      },
      "defaultChecked": {
        "name": "defaultChecked",
        "description": "The default state of a radio button or checkbox as originally specified in HTML that created this object."
      },
      "defaultValue": {
        "name": "defaultValue",
        "description": "The default value as originally specified in HTML that created this object."
      },
      "dirName": {
        "name": "dirName",
        "description": ""
      },
      "disabled": {
        "name": "disabled",
        "description": "Reflects the disabled HTML attribute, indicating that the control is not available for interaction. The input values will not be submitted with the form. See also readonly"
      },
      "files": {
        "name": "files",
        "description": "A list of selected files.",
        "read_only": true
      },
      "form": {
        "name": "form",
        "description": "The containing form element, if this element is in a form. If this element is not contained in a form element:\n    \n     HTML5 this can be the id attribute of any <form> element in the same document. Even if the attribute is set on <input>, this property will be null, if it isn't the id of a <form> element.\n     HTML 4 this must be null.",
        "read_only": true
      },
      "formAction": {
        "name": "formAction",
        "description": "Reflects the formaction HTML attribute, containing the URI of a program that processes information submitted by the element. If specified, this attribute overrides the action attribute of the <form> element that owns this element."
      },
      "formEncType": {
        "name": "formEncType",
        "description": "Reflects the formenctype HTML attribute, containing the type of content that is used to submit the form to the server. If specified, this attribute overrides the enctype attribute of the <form> element that owns this element."
      },
      "formMethod": {
        "name": "formMethod",
        "description": "Reflects the formmethod HTML attribute, containing the HTTP method that the browser uses to submit the form. If specified, this attribute overrides the method attribute of the <form> element that owns this element."
      },
      "formNoValidate": {
        "name": "formNoValidate",
        "description": "Reflects the formnovalidate HTML attribute, indicating that the form is not to be validated when it is submitted. If specified, this attribute overrides the novalidate attribute of the <form> element that owns this element."
      },
      "formTarget": {
        "name": "formTarget",
        "description": "Reflects the formtarget HTML attribute, containing a name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the target attribute of the <form> element that owns this element."
      },
      "height": {
        "name": "height",
        "description": "Reflects the height HTML attribute, which defines the height of the image displayed for the button, if the value of type is image."
      },
      "indeterminate": {
        "name": "indeterminate",
        "description": "Indicates that a checkbox is neither on nor off."
      },
      "labels": {
        "name": "labels",
        "description": "A list of <label> elements that are labels for this element.",
        "read_only": true
      },
      "list": {
        "name": "list",
        "description": "Identifies a list of pre-defined options to suggest to the user. The value must be the id of a <datalist> element in the same document. The browser displays only options that are valid values for this input element. This attribute is ignored when the type attribute's value is hidden, checkbox, radio, file, or a button type."
      },
      "max": {
        "name": "max",
        "description": "Reflects the max HTML attribute, containing the maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value."
      },
      "maxLength": {
        "name": "maxLength",
        "description": "Reflects the maxlength HTML attribute, containing the maximum length of text (in Unicode code points) that the value can be changed to. The constraint is evaluated only when the value is changed\n    Note: If you set maxLength to a negative value programmatically, an exception will be thrown."
      },
      "min": {
        "name": "min",
        "description": "Reflects the min HTML attribute, containing the minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value."
      },
      "multiple": {
        "name": "multiple",
        "description": "Reflects the multiple HTML attribute, indicating whether more than one value is possible (e.g., multiple files)."
      },
      "name": {
        "name": "name",
        "description": "Reflects the name HTML attribute, containing a name that identifies the element when submitting the form."
      },
      "pattern": {
        "name": "pattern",
        "description": "Reflects the pattern HTML attribute, containing a regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is text, search, tel, url or email; otherwise it is ignored."
      },
      "placeholder": {
        "name": "placeholder",
        "description": "Reflects the placeholder HTML attribute, containing a hint to the user of what can be entered in the control. The placeholder text must not contain carriage returns or line-feeds. This attribute applies when the value of the type attribute is text, search, tel, url or email; otherwise it is ignored."
      },
      "readOnly": {
        "name": "readOnly",
        "description": "Reflects the readonly HTML attribute, indicating that the user cannot modify the value of the control.\n     HTML5This is ignored if the value of the type attribute is hidden, range, color, checkbox, radio, file, or a button type."
      },
      "required": {
        "name": "required",
        "description": "Reflects the required HTML attribute, indicating that the user must fill in a value before submitting a form."
      },
      "selectionDirection": {
        "name": "selectionDirection",
        "description": "The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\""
      },
      "selectionEnd": {
        "name": "selectionEnd",
        "description": "The index of the end of selected text."
      },
      "selectionStart": {
        "name": "selectionStart",
        "description": "The index of the beginning of selected text. When nothing is selected, this is also the caret position inside of the <input> element."
      },
      "size": {
        "name": "size",
        "description": "Reflects the size HTML attribute, containing size of the control. This value is in pixels unless the value of type is text or password, in which case, it is an integer number of characters. HTML5 Applies only when type is set to text, search, tel, url, email, or password; otherwise it is ignored."
      },
      "src": {
        "name": "src",
        "description": "Reflects the src HTML attribute, which specifies a URI for the location of an image to display on the graphical submit button, if the value of type is image; otherwise it is ignored."
      },
      "step": {
        "name": "step",
        "description": "Reflects the step HTML attribute, which works with min and max to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this is not set to any, the control accepts only values at multiples of the step value greater than the minimum."
      },
      "tabIndex": {
        "name": "tabIndex",
        "description": "The position of the element in the tabbing navigation order for the current document."
      },
      "type": {
        "name": "type",
        "description": "Reflects the type HTML attribute, indicating the type of control to display. See type attribute of <input> for possible values."
      },
      "useMap": {
        "name": "useMap",
        "description": "A client-side image map.",
        "obsolete": true
      },
      "validationMessage": {
        "name": "validationMessage",
        "description": "A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willvalidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "validity",
        "description": "The validity state that this element is in.",
        "read_only": true
      },
      "value": {
        "name": "value",
        "description": "Current value in the control.\n\n    \n    Note: for certain input types the returned value might not match the value the user has entered. For example, if the user enters a non-numeric value into an <input type=\"number\">, the returned value might be an empty string instead."
      },
      "valueAsDate": {
        "name": "valueAsDate",
        "description": "The value of the element, interpreted as a date, or null if conversion is not possible."
      },
      "valueAsNumber": {
        "name": "valueAsNumber",
        "description": "The value of the element, interpreted as one of the following in order:\n    \n     a time value\n     a number\n     NaN if conversion is not possible"
      },
      "width": {
        "name": "width",
        "description": "Reflects the width HTML attribute, which defines the width of the image displayed for the button, if the value of type is image."
      },
      "willValidate": {
        "name": "willValidate",
        "description": "Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation."
      }
    },
    "methods": {
      "blur": {
        "name": "blur()",
        "description": "Removes focus from input; keystrokes will subsequently go nowhere."
      },
      "checkValidity": {
        "name": "checkValidity",
        "description": "Returns false if the element is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an invalid event at the element. It returns true if the element is not a candidate for constraint validation, or if it satisfies its constraints.",
        "details": "The Boolean object is an object wrapper for a boolean value.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Boolean"
      },
      "click": {
        "name": "click()",
        "description": "Simulates a click on the element."
      },
      "focus": {
        "name": "focus()",
        "description": "Focus on input; keystrokes will subsequently go to this element."
      },
      "mozSetFileArray": {
        "name": "mozSetFileArray(files)",
        "description": "Sets the files selected on the input to the given array of File objects.  This is an alternative to mozSetFileNameArray which can be used in frame scripts: a chrome script can open files as File objects and send them via message manager.",
        "non_standard": true,
        "link": "https://developer.mozilla.org/en-US/docs/Extensions/Using_the_DOM_File_API_in_chrome_code",
        "args": [
          "files"
        ]
      },
      "mozGetFileNameArray": {
        "name": "mozGetFileNameArray(length, filenames)",
        "description": "Returns an array of all the file names from the input.",
        "non_standard": true,
        "args": [
          "length",
          "filenames"
        ]
      },
      "mozSetFileNameArray": {
        "name": "mozSetFileNameArray(filenames, length)",
        "description": "Sets the filenames for the files selected on the input.  Not for use in frame scripts, because it accesses the filesystem.",
        "non_standard": true,
        "args": [
          "filenames",
          "length"
        ]
      },
      "select": {
        "name": "select()",
        "description": "Selects the input text in the element, and focuses it so the user can subsequently replace the whole entry."
      },
      "setCustomValidity": {
        "name": "setCustomValidity(error)",
        "description": "Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.",
        "args": [
          "error"
        ]
      },
      "setSelectionRange": {
        "name": "setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection)",
        "description": "Selects a range of text in the element (but does not focus it). The optional selectionDirection parameter may be \"forward\" or \"backward\" to establish the direction in which selection was set, or \"none\" if the direction is unknown or not relevant. The default is \"none\". Specifying a selectionDirection parameter sets the value of the selectionDirection property.",
        "args": [
          "selectionStart",
          "selectionEnd",
          "[optional] selectionDirection"
        ]
      },
      "setRangeText": {
        "name": "setRangeText(replacement, [optional] start, [optional] end, [optional] selectMode)",
        "description": "Replaces a range of text with the new text. Supported input types: text, search, url, tel, password.",
        "args": [
          "replacement",
          "[optional] start",
          "[optional] end",
          "[optional] selectMode"
        ]
      },
      "stepDown": {
        "name": "stepDown(n)",
        "description": "Decrements the value by (step * n), where n defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:\n    \n     if the method is not applicable to for the current type value.\n     if the element has no step value.\n     if the value cannot be converted to a number.\n     if the resulting value is above the max or below the min.",
        "args": [
          "n"
        ]
      },
      "stepUp": {
        "name": "stepUp(n)",
        "description": "Increments the value by (step * n), where n defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:\n    \n     if the method is not applicable to for the current type value.\n     if the element has no step value.\n     if the value cannot be converted to a number.\n     if the resulting value is above the max or below the min.",
        "args": [
          "n"
        ]
      }
    }
  },
  "isindex": {
    "name": "HTMLIsIndexElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLIsIndexElement",
    "descripton": "The HTMLIsIndexElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <isindex> elements.",
    "obsolete": true,
    "properties": {
      "form": {
        "name": "HTMLIsIndexElement.form",
        "description": "Is a HTMLFormElement representing the <form> element it belongs too. It can have the null value, if <isindex> isn't part of any form.",
        "read_only": true
      },
      "prompt": {
        "name": "HTMLIsIndexElement.prompt",
        "description": "Is a DOMString representing a text to be prompted for the field."
      }
    },
    "methods": {}
  },
  "keygen": {
    "name": "HTMLKeygenElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement",
    "descripton": "The <keygen> elements expose the HTMLKeygenElement interface, which provides special properties and methods (beyond the regular element object interface they also have available to them by inheritance) for manipulating the layout and presentation of keygen elements.",
    "properties": {},
    "methods": {}
  },
  "label": {
    "name": "HTMLLabelElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement",
    "descripton": "The HTMLLabelElement interface gives access to properties specific to <label> elements. It inherits from HTMLElement.",
    "properties": {
      "accessKey": {
        "name": "accessKey",
        "description": "Reflects the accesskey HTML attribute."
      },
      "control": {
        "name": "control",
        "description": "The labeled control.",
        "read_only": true
      },
      "form": {
        "name": "form",
        "description": "The form owner of this label.",
        "read_only": true
      },
      "htmlFor": {
        "name": "htmlFor",
        "description": "The ID of the labeled control. Reflects the for attribute."
      }
    },
    "methods": {}
  },
  "legend": {
    "name": "HTMLLegendElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement",
    "descripton": "The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface.",
    "properties": {
      "form": {
        "name": "form",
        "description": "HTMLFormElement",
        "read_only": true
      },
      "accessKey": {
        "name": "accessKey",
        "description": "DOMString"
      },
      "align": {
        "name": "align",
        "description": "DOMString",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "li": {
    "name": "HTMLLIElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement",
    "descripton": "The HTMLLIElement interface expose specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements.",
    "properties": {
      "type": {
        "name": "type",
        "description": "The type of the bullets, \"disc\", \"square\" or \"circle\". As the standard way of defining the list type is via the CSS list-style-type property, use the CSSOM methods to set it via a script.",
        "obsolete": true
      },
      "value": {
        "name": "value",
        "description": "Indicates the ordinal position of the list element inside a given <ol>. It reflects the value attribute of the HTML <li> element, and can be smaller than 0. If the <li> element is not a child of an <ol> element, the property has no meaning."
      }
    },
    "methods": {}
  },
  "link": {
    "name": "HTMLLinkElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement",
    "descripton": "The HTMLLinkElement interface represents reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface.",
    "properties": {
      "charset": {
        "name": "HTMLLinkElement.charset",
        "description": "Gets or sets the character encoding for the target resource.",
        "obsolete": true
      },
      "crossOrigin": {
        "name": "HTMLLinkElement.crossOrigin",
        "description": "A DOMString that corresponds to the CORS setting for this link element. See CORS settings attributes for details.",
        "experimental": true
      },
      "disabled": {
        "name": "HTMLLinkElement.disabled",
        "description": "Gets or sets whether the link is disabled; currently only used with style sheet links."
      },
      "href": {
        "name": "HTMLLinkElement.href",
        "description": "Gets or sets the URI for the target resource."
      },
      "hreflang": {
        "name": "HTMLLinkElement.hreflang",
        "description": "Gets or sets the language code for the linked resource."
      },
      "media": {
        "name": "HTMLLinkElement.media",
        "description": "Gets or sets a list of one or more media formats to which the resource applies."
      },
      "rel": {
        "name": "HTMLLinkElement.rel",
        "description": "Gets or sets the forward relationship of the linked resource from the document to the resource."
      },
      "relList": {
        "name": "HTMLLinkElement.relList",
        "description": "Is a DOMTokenList that reflects the rel HTML attribute, as a list of tokens.",
        "read_only": true
      },
      "rev": {
        "name": "HTMLLinkElement.rev",
        "description": "Gets or sets the reverse relationship of the linked resource from the resource to the document.",
        "obsolete": true
      },
      "sizes": {
        "name": "HTMLLinkElement.sizes",
        "description": "Is a DOMSettableTokenList that reflects the sizes HTML attribute, as a list of tokens.",
        "read_only": true
      },
      "LinkStyle.sheet": {
        "name": "LinkStyle.sheet",
        "description": "Returns the StyleSheet object associated with the given element, or null if there is none.",
        "read_only": true
      },
      "target": {
        "name": "HTMLLinkElement.target",
        "description": "Gets or sets the name of the target frame to which the resource applies.",
        "obsolete": true
      },
      "type": {
        "name": "HTMLLinkElement.type",
        "description": "Gets or sets the MIME type of the linked resource."
      }
    },
    "methods": {}
  },
  "map": {
    "name": "HTMLMapElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement",
    "descripton": "The HTMLMapElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements.",
    "properties": {
      "name": {
        "name": "HTMLMapElement.name",
        "description": "Is a DOMString representing the <map> element for referencing it other context. If the id attribute is set, this must have the same value; and it cannot be null or empty."
      },
      "areas": {
        "name": "HTMLMapElement.areas",
        "description": "Is a live HTMLCollection representing the <area> elements associated to this <map>.",
        "read_only": true
      },
      "images": {
        "name": "HTMLMapElement.images",
        "description": "Is a live HTMLCollection representing the <img> and <object> elements associated to this <map>.",
        "read_only": true
      }
    },
    "methods": {}
  },
  "media": {
    "name": "HTMLMediaElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement",
    "descripton": "The HTMLMediaElement interface adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. The HTMLVideoElement and HTMLAudioElement elements both inherit this interface.",
    "properties": {
      "audioTracks": {
        "name": "HTMLMediaElement.audioTracks",
        "description": "An AudioTrackList that represents the list of AudioTrack objects contained in the element."
      },
      "autoplay": {
        "name": "HTMLMediaElement.autoplay",
        "description": "A Boolean that reflects the autoplay HTML attribute, indicating whether playback should automatically begin as soon as enough media is available to do so without interruption."
      },
      "buffered": {
        "name": "HTMLMediaElement.buffered",
        "description": "Returns a new TimeRanges object that indicates the ranges of the media source that the browser has buffered (if any) at the moment the buffered property is accessed.",
        "read_only": true
      },
      "controller": {
        "name": "HTMLMediaElement.controller",
        "description": "A MediaController object that represents the media controller assigned to the element, or null if none is assigned."
      },
      "controls": {
        "name": "HTMLMediaElement.controls",
        "description": "A Boolean that reflects the controls HTML attribute, indicating whether user interface items for controlling the resource should be displayed."
      },
      "crossOrigin": {
        "name": "HTMLMediaElement.crossOrigin",
        "description": "A DOMString indicating the CORS setting for this media element."
      },
      "currentSrc": {
        "name": "HTMLMediaElement.currentSrc",
        "description": "Returns a DOMString with the absolute URL of the chosen media resource.",
        "read_only": true
      },
      "currentTime": {
        "name": "HTMLMediaElement.currentTime",
        "description": "A double indicating the current playback time in seconds. Setting this value seeks the media to the new time."
      },
      "defaultMuted": {
        "name": "HTMLMediaElement.defaultMuted",
        "description": "A Boolean that reflects the muted HTML attribute, which indicates whether the media element's audio output should be muted by default."
      },
      "defaultPlaybackRate": {
        "name": "HTMLMediaElement.defaultPlaybackRate",
        "description": "A double indicating the default playback rate for the media."
      },
      "duration": {
        "name": "HTMLMediaElement.duration",
        "description": "Returns a double indicating the length of the media in seconds, or 0 if no media data is available.",
        "read_only": true
      },
      "ended": {
        "name": "HTMLMediaElement.ended",
        "description": "Returns a Boolean that indicates whether the media element has finished playing.",
        "read_only": true
      },
      "error": {
        "name": "HTMLMediaElement.error",
        "description": "Returns a MediaError object for the most recent error, or null if there has not been an error.",
        "read_only": true
      },
      "initialTime": {
        "name": "HTMLMediaElement.initialTime",
        "description": "Returns a double that indicates the initial playback position in seconds.",
        "deprecated": true,
        "non_standard": true,
        "read_only": true
      },
      "loop": {
        "name": "HTMLMediaElement.loop",
        "description": "A Boolean that reflects the loop HTML attribute, which indicates whether the media element should start over when it reaches the end."
      },
      "mediaGroup": {
        "name": "HTMLMediaElement.mediaGroup",
        "description": "A DOMString that reflects the mediagroup HTML attribute, which indicates the name of the group of elements it belongs to. A group of media elements shares a common MediaController."
      },
      "mediaKeys": {
        "name": "HTMLMediaElement.mediaKeys",
        "description": "Returns a MediaKeys object or null. MediaKeys is a set of keys that an associated HTMLMediaElement can use for description of media data during playback.",
        "experimental": true,
        "read_only": true
      },
      "mozAudioCaptured": {
        "name": "HTMLMediaElement.mozAudioCaptured",
        "description": "Returns a Boolean. Related to audio stream capture.",
        "non_standard": true,
        "read_only": true
      },
      "mozAudioChannelType": {
        "name": "HTMLMediaElement.mozAudioChannelType",
        "description": "(Firefox OS only) A String that can be used to set the audio channel that the sound coming from an <audio> or <video> element will play in, on a Firefox OS device. See Using the AudioChannels API for more details.",
        "non_standard": true
      },
      "mozChannels": {
        "name": "HTMLMediaElement.mozChannels",
        "description": "Returns the number of channels in the audio resource (e.g., 2 for stereo).",
        "deprecated": true,
        "non_standard": true,
        "read_only": true
      },
      "mozFragmentEnd": {
        "name": "HTMLMediaElement.mozFragmentEnd",
        "description": "A double that provides access to the fragment end time if the media element has a fragment URI for currentSrc, otherwise it is equal to the media duration.",
        "non_standard": true
      },
      "mozFrameBufferLength": {
        "name": "HTMLMediaElement.mozFrameBufferLength",
        "description": "An unsigned long that indicates the number of samples that will be returned in the framebuffer of each MozAudioAvailable event. This number is a total for all channels, and by default is set to be the number of channels * 1024 (e.g., 2 channels * 1024 samples = 2048 total).\n\n The mozFrameBufferLength property can be set to a new value for lower latency, larger amounts of data, etc. The size given must be a number between 512 and 16384. Using any other size results in an exception being thrown. The best time to set a new length is after the loadedmetadata event fires, when the audio info is known, but before the audio has started or MozAudioAvailable events have begun firing.",
        "deprecated": true,
        "non_standard": true
      },
      "mozSampleRate": {
        "name": "HTMLMediaElement.mozSampleRate",
        "description": "Returns the number of samples per second that will be played. For example, 44100 samples per second is the sample rate used by CD audio.",
        "deprecated": true,
        "non_standard": true,
        "read_only": true
      },
      "muted": {
        "name": "HTMLMediaElement.muted",
        "description": "A Boolean that determines whether audio is muted. true if the audio is muted and false otherwise."
      },
      "networkState": {
        "name": "HTMLMediaElement.networkState",
        "description": "Returns an unsigned short (enumeration) indicating the current state of fetching the media over the network.",
        "read_only": true
      },
      "paused": {
        "name": "HTMLMediaElement.paused",
        "description": "Returns a Boolean that indicates whether the media element is paused.",
        "read_only": true
      },
      "playbackRate": {
        "name": "HTMLMediaElement.playbackRate",
        "description": "A double that indicates the rate at which the media is being played back."
      },
      "played": {
        "name": "HTMLMediaElement.played",
        "description": "Returns a TimeRanges object that contains the ranges of the media source that the browser has played, if any.",
        "read_only": true
      },
      "preload": {
        "name": "HTMLMediaElement.preload",
        "description": "A DOMString that reflects the preload HTML attribute, indicating what data should be preloaded, if any. Possible values are: none, metadata, auto."
      },
      "preservesPitch": {
        "name": "HTMLMediaElement.preservesPitch",
        "description": "A Boolean that determines if the pitch of the sound will be preserved. If set to false, the pitch will adjust to the speed of the audio. This is implemented with prefixes in Firefox (mozPreservesPitch) and WebKit (webkitPreservesPitch).",
        "non_standard": true
      },
      "readyState": {
        "name": "HTMLMediaElement.readyState",
        "description": "Returns an unsigned short (enumeration) indicating the readiness state of the media.",
        "read_only": true
      },
      "seekable": {
        "name": "HTMLMediaElement.seekable",
        "description": "Returns a TimeRanges object that contains the time ranges that the user is able to seek to, if any.",
        "read_only": true
      },
      "seeking": {
        "name": "HTMLMediaElement.seeking",
        "description": "Returns a Boolean that indicates whether the media is in the process of seeking to a new position.",
        "read_only": true
      },
      "sinkId": {
        "name": "HTMLMediaElement.sinkId",
        "description": "Returns a DOMString that is the unique ID of the audio device delivering output, or an empty string if it is using the user agent default. This ID should be one of the MediaDeviceInfo.deviceid values returned from MediaDevices.enumeratedDevices(), id-multimedia, or id-communications.",
        "experimental": true,
        "read_only": true
      },
      "src": {
        "name": "HTMLMediaElement.src",
        "description": "A DOMString that reflects the src HTML attribute, which contains the URL of a media resource to use."
      },
      "srcObject": {
        "name": "HTMLMediaElement.srcObject",
        "description": "A MediaStream that lets you set or get the Media Stream to be played or being played."
      },
      "textTracks": {
        "name": "HTMLMediaElement.textTracks",
        "description": "Returns the list of TextTrack objects contained in the element.",
        "read_only": true
      },
      "videoTracks": {
        "name": "HTMLMediaElement.videoTracks",
        "description": "Returns the list of VideoTrack objects contained in the element.\n \n Note: Gecko supports only single track playback, and the parsing of tracks' metadata is only available for media with the Ogg container format.",
        "read_only": true
      },
      "volume": {
        "name": "HTMLMediaElement.volume",
        "description": "A double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest)."
      }
    },
    "methods": {
      "addTextTrack": {
        "name": "HTMLMediaElement.addTextTrack()",
        "description": "Adds a text track (such as a track for subtitles) to a media element.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "canPlayType": {
        "name": "HTMLMediaElement.canPlayType()",
        "description": "Determines whether the specified media type can be played back.",
        "details": "The HTMLMediaElement.canPlayType() method determines whether the specified media type can be played back.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canPlayType"
      },
      "fastSeek": {
        "name": "HTMLMediaElement.fastSeek()",
        "description": "Directly seeks to the given time.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "load": {
        "name": "HTMLMediaElement.load()",
        "description": "Resets the media element and restarts the media resource. Any pending events are discarded. How much media data is fetched is still affected by the preload attribute. This method can be useful for releasing resources after any src attribute and source element descendants have been removed. Otherwise, it is usually unnecessary to use this method, unless required to rescan source element children after dynamic changes.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "mozCaptureStream": {
        "name": "HTMLMediaElement.mozCaptureStream()",
        "description": "[enter description]",
        "non_standard": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "mozCaptureStreamUntilEnded": {
        "name": "HTMLMediaElement.mozCaptureStreamUntilEnded()",
        "description": "[enter description]",
        "non_standard": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "mozGetMetadata": {
        "name": "HTMLMediaElement.mozGetMetadata()",
        "description": "Returns Object, which contains properties that represent metadata from the playing media resource as {key: value} pairs. A separate copy of the data is returned each time the method is called. This method must be called after the loadedmetadata event fires.",
        "non_standard": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "mozLoadFrom": {
        "name": "HTMLMediaElement.mozLoadFrom()",
        "description": "This method, available only in Mozilla's implementation, loads data from another media element. This works similarly to load() except that instead of running the normal resource selection algorithm, the source is simply set to the other element's currentSrc. This is optimized so this element gets access to all of the other element's cached and buffered data; in fact, the two elements share downloaded data, so data downloaded by either element is available to both.",
        "deprecated": true,
        "non_standard": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "pause": {
        "name": "HTMLMediaElement.pause()",
        "description": "Pauses the media playback.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "play": {
        "name": "HTMLMediaElement.play()",
        "description": "Begins playback of the media.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "setMediaKeys": {
        "name": "HTMLMediaElement.setMediaKeys()",
        "description": "Returns Promise. Sets the MediaKeys keys to use when decrypting media during playback.",
        "experimental": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "setSinkId": {
        "name": "HTMLMediaElement.setSinkId()",
        "description": "Returns Promise. Sets the ID of the audio device through which audio output should be rendered if the application is authorized to play out of a given device.",
        "experimental": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      }
    }
  },
  "meta": {
    "name": "HTMLMetaElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement",
    "descripton": "The HTMLMetaElement interface contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface.",
    "properties": {
      "content": {
        "name": "HTMLMetaElement.content",
        "description": "Gets or sets the value of meta-data property."
      },
      "httpEquiv": {
        "name": "HTMLMetaElement.httpEquiv",
        "description": "Gets or sets the name of an HTTP response header to define for a document."
      },
      "name": {
        "name": "HTMLMetaElement.name",
        "description": "Gets or sets the name of a meta-data property to define for a document."
      },
      "scheme": {
        "name": "HTMLMetaElement.scheme",
        "description": "Gets or sets the name of a scheme used to interpret the value of a meta-data property.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "meter": {
    "name": "HTMLMeterElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement",
    "descripton": "The HTML <meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <meter> elements.",
    "properties": {
      "high": {
        "name": "high",
        "description": "It returns the value of the high boundary, reflecting the high <meter> attribute."
      },
      "low": {
        "name": "low",
        "description": "It returns the value of the low boundary, reflecting the low <meter> attribute."
      },
      "max": {
        "name": "max",
        "description": "It return the maximum value, reflecting the max <meter> attribute."
      },
      "min": {
        "name": "min",
        "description": "It returns the minimum value, reflecting the min <meter> attribute."
      },
      "optimum": {
        "name": "optimum",
        "description": "It returns the optimum value, reflecting the optimum <meter> attribute."
      },
      "labels": {
        "name": "labels",
        "description": "A list of <label> elements that are labels for this element."
      }
    },
    "methods": {}
  },
  "mod": {
    "name": "HTMLModElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement",
    "descripton": "The HTMLModElement interface provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>.",
    "properties": {},
    "methods": {}
  },
  "object": {
    "name": "HTMLObjectElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement",
    "descripton": "The HTMLObjectElement interface provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <object> element, representing external resources.",
    "properties": {
      "align": {
        "name": "HTMLObjectElement.align",
        "description": "Is a DOMString representing an enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", \"justify\", and \"center\".",
        "obsolete": true
      },
      "archive": {
        "name": "HTMLObjectElement.archive",
        "description": "Is a DOMString that reflects the archive HTML attribute, containing a list of archives for resources for this object.",
        "obsolete": true
      },
      "border": {
        "name": "HTMLObjectElement.border",
        "description": "Is a DOMString that reflects the border HTML attribute, specifying the width of a border around the object.",
        "obsolete": true
      },
      "code": {
        "name": "HTMLObjectElement.code",
        "description": "Is a DOMString representing the name of an applet class file, containing either the applet's subclass, or the path to get to the class, including the class file itself.",
        "obsolete": true
      },
      "codeBase": {
        "name": "HTMLObjectElement.codeBase",
        "description": "Is a DOMString that reflects the codebase HTML attribute, specifying the base path to use to resolve relative URIs.",
        "obsolete": true
      },
      "codeType": {
        "name": "HTMLObjectElement.codeType",
        "description": "Is a DOMString that reflects the codetype HTML attribute, specifying the content type of the data.",
        "obsolete": true
      },
      "contentDocument": {
        "name": "HTMLObjectElement.contentDocument",
        "description": "Returns a Document representing the active document of the object element's nested browsing context, if any; otherwise null.",
        "read_only": true
      },
      "contentWindow": {
        "name": "HTMLObjectElement.contentWindow",
        "description": "Returns a WindowProxy representing the window proxy of the object element's nested browsing context, if any; otherwise null.",
        "read_only": true
      },
      "data": {
        "name": "HTMLObjectElement.data",
        "description": "Is a DOMString that reflects the data HTML attribute, specifying the address of a resource's data."
      },
      "declare": {
        "name": "HTMLObjectElement.declare",
        "description": "Is a Boolean that reflects the declare HTML attribute, indicating that this is a declaration, not an instantiation, of the object.",
        "obsolete": true
      },
      "form": {
        "name": "HTMLObjectElement.form",
        "description": "Retuns a HTMLFormElement representing the object element's form owner, or null if there isn't one.",
        "read_only": true
      },
      "height": {
        "name": "HTMLObjectElement.height",
        "description": "Is a DOMString that reflects the height HTML attribute, specifying the displayed height of the resource in CSS pixels."
      },
      "hspace": {
        "name": "HTMLObjectElement.hspace",
        "description": "Is a long representing the horizontal space in pixels around the control.",
        "obsolete": true
      },
      "name": {
        "name": "HTMLObjectElement.name",
        "description": "Is a DOMString that reflects the name HTML attribute, specifying the name of the browsing context."
      },
      "standby": {
        "name": "HTMLObjectElement.standby",
        "description": "Is a DOMString that reflects the standby HTML attribute, specifying a message to display while the object loads.",
        "obsolete": true
      },
      "tabindex": {
        "name": "HTMLObjectElement.tabindex",
        "description": "Is a long representing the position of the element in the tabbing navigation order for the current document."
      },
      "type": {
        "name": "HTMLObjectElement.type",
        "description": "Is a DOMString that reflects the type HTML attribute, specifying the MIME type of the resource."
      },
      "typeMustMatch": {
        "name": "HTMLObjectElement.typeMustMatch",
        "description": "Is a Boolean that reflects the typemustmatch HTML attribute, indicating if the resource specified by data must only be played if it matches the type attribute."
      },
      "useMap": {
        "name": "HTMLObjectElement.useMap",
        "description": "Is a DOMString that reflects the usemap HTML attribute, specifying a <map> element to use."
      },
      "validationMessage": {
        "name": "HTMLObjectElement.validationMessage",
        "description": "Returns a DOMString representing a localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "HTMLObjectElement.validity",
        "description": "Returns a ValidityState with the validity states that this element is in.",
        "read_only": true
      },
      "vspace": {
        "name": "HTMLObjectElement.vspace",
        "description": "Is a long representing the horizontal space in pixels around the control.",
        "obsolete": true
      },
      "width": {
        "name": "HTMLObjectElement.width",
        "description": "Is a DOMString that reflects the width HTML attribute, specifying the displayed width of the resource in CSS pixels."
      },
      "willValidate": {
        "name": "HTMLObjectElement.willValidate",
        "description": "Returns a Boolean that indicates whether the element is a candidate for constraint validation. Always false for HTMLObjectElement objects.",
        "read_only": true
      }
    },
    "methods": {
      "checkValidity": {
        "name": "HTMLObjectElement.checkValidity()",
        "description": "Retuns a Boolean that always is true, because object objects are never candidates for constraint validation.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "setCustomValidity": {
        "name": "HTMLObjectElement.setCustomValidity()",
        "description": "Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      }
    }
  },
  "olist": {
    "name": "HTMLOListElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement",
    "descripton": "The HTMLOListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements.",
    "properties": {
      "reversed": {
        "name": "HTMLOListElement.reversed",
        "description": "Is a Boolean value reflecting the reversed and defining if the numbering is descending, that is its value is true, or ascending (false)."
      },
      "start": {
        "name": "HTMLOListElement.start",
        "description": "Is a long value reflecting the start and defining the value of the first number of the first element of the list."
      },
      "type": {
        "name": "HTMLOListElement.type",
        "description": "Is a DOMString value reflecting the type and defining the kind of marker to be used to display. It can have the following values:\n \n  '1' meaning that decimal numbers are used: 1, 2, 3, 4, 5, …\n  'a' meaning that the lowercase latin alphabet is used:  a, b, c, d, e, …\n  'A' meaning that the uppercase latin alphabet is used: A, B, C, D, E, …\n  'i' meaning that the lowercase latin numerals are used: i, ii, iii, iv, v, …\n  'I' meaning that the uppercase latin numerals are used: I, II, III, IV, V, …"
      },
      "compact": {
        "name": "HTMLOListElement.compact",
        "description": "Is a Boolean indicating that spacing between list items should be reduced. This property reflects the compact attribute only, it doesn't consider the line-height CSS property used for that behavior in modern pages.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "optgroup": {
    "name": "HTMLOptGroupElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement",
    "descripton": "The HTMLOptGroupElement interface provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements.",
    "properties": {
      "disabled": {
        "name": "disabled",
        "description": "If true, the whole list of children <option> is disabled"
      },
      "label": {
        "name": "label",
        "description": "Set or get the label for the group."
      }
    },
    "methods": {}
  },
  "option": {
    "name": "HTMLOptionElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement",
    "descripton": "The HTMLOptionElement interface represents <option> elements and inherits all classes and methods of the HTMLElement interface.",
    "properties": {
      "defaultSelected": {
        "name": "defaultSelected",
        "description": "Contains the initial value of the selected HTML attribute, indicating whether the option is selected by default or not."
      },
      "disabled": {
        "name": "disabled",
        "description": "Reflects the value of the disabled HTML attribute, which indicates that the option is unavailable to be selected. An option can also be disabled if it is a child of an <optgroup> element that is disabled."
      },
      "form": {
        "name": "form",
        "description": "If the option is a descendent of a <select> element, then this property has the same value as the form property of the corresponding HTMLSelectElement object; otherwise, it is null.",
        "read_only": true
      },
      "index": {
        "name": "index",
        "description": "The position of the option within the list of options it belongs to, in tree-order. If the option is not part of a list of options, like when it is part of the <datalist> element, the value is 0.",
        "read_only": true
      },
      "label": {
        "name": "label",
        "description": "Reflects the value of the label HTML attribute, which provides a label for the option. If this attribute isn't specifically set, reading it returns the element's text content."
      },
      "selected": {
        "name": "selected",
        "description": "Indicates whether the option is currently selected."
      },
      "text": {
        "name": "text",
        "description": "Contains the text content of the element."
      },
      "value": {
        "name": "value",
        "description": "Reflects the value of the value HTML attribute, if it exists; otherwise reflects value of the Node.textContent property."
      }
    },
    "methods": {
      "Option": {
        "name": "HTMLOptionElement.Option()",
        "description": "Is a constructor creating an HTMLOptionElement object. It has four values: the text to display, text, the value associated, value, the value of defaultSelected, and the value of selected. The last three values are optional.",
        "details": "Constructor for creating an HTMLOptionElement. The Option constructor is from the very early days of DOM scripting and has non–standard syntax, but has ubiquitous support in browsers.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement/Option"
      }
    }
  },
  "output": {
    "name": "HTMLOutputElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement",
    "descripton": "The HTMLOutputElement interface provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements.",
    "properties": {
      "defaultValue": {
        "name": "defaultValue",
        "description": "The default value of the element, initially the empty string."
      },
      "form": {
        "name": "form",
        "description": "Indicates the control's form owner, reflecting the form HTML attribute if it is defined.",
        "read_only": true
      },
      "htmlFor": {
        "name": "htmlFor",
        "description": "Reflects the for HTML attribute, containing a list of IDs of other elements in the same document that contribute to (or otherwise affect) the calculated value.",
        "read_only": true
      },
      "labels": {
        "name": "labels",
        "description": "A list of label elements associated with this output element.",
        "read_only": true
      },
      "name": {
        "name": "name",
        "description": "Reflects the name HTML attribute, containing the name for the control that is submitted with form data."
      },
      "type": {
        "name": "type",
        "description": "Must be the string output."
      },
      "validationMessage": {
        "name": "validationMessage",
        "description": "A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints."
      },
      "validity": {
        "name": "validity",
        "description": "The validity states that this element is in.",
        "read_only": true
      },
      "value": {
        "name": "value",
        "description": "The value of the contents of the elements. Behaves like the Node.textContent property."
      },
      "willValidate": {
        "name": "willValidate",
        "description": "The behavior of this property is subject to an open specification bug, as some browser maker are not happy with what is specified. It is unclear which will be the final the outcome of this.\n    \n    The standard behavior is to always return false because output objects are never candidates for constraint validation.\n    \n    The proposed new behavior, implemented in Firefox since Gecko 2.0 is to use this property to indicate whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation (See bug 604673).",
        "read_only": true
      }
    },
    "methods": {
      "checkValidity": {
        "name": "checkValidity()",
        "description": "The behavior of this property is subject to an open specification bug, as some browser maker are not happy with what is specified. It is unclear which will be the final the outcome of this.\n    \n    The standard behavior is to always return true because output objects are never candidates for constraint validation.\n    \n    The proposed new behavior, implemented in Firefox since Gecko 2.0 is to return false if the element is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an invalid event at the element. It returns true if the element is not a candidate for constraint validation, or if it satisfies its constraints (See bug 604673.).",
        "details": "The Boolean object is an object wrapper for a boolean value.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Boolean"
      },
      "setCustomValidity": {
        "name": "setCustomValidity",
        "description": "Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.",
        "details": "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/DOMString"
      }
    }
  },
  "paragraph": {
    "name": "HTMLParagraphElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement",
    "descripton": "The HTMLParagraphElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated property indicating alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", \"justify\", and \"center\".",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "param": {
    "name": "HTMLParamElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement",
    "descripton": "The HTMLParamElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element.",
    "properties": {
      "name": {
        "name": "HTMLParamElement.name",
        "description": "Is a DOMString representing the name of the parameter. It reflects the name attribute."
      },
      "value": {
        "name": "HTMLParamElement.value",
        "description": "Is a DOMString representing the value associated to the parameter. It reflects the value attribute."
      },
      "type": {
        "name": "HTMLParamElement.type",
        "description": "Is a DOMString containing the type of the parameter when valueType has the \"ref\" value. It reflects the type attribute.",
        "obsolete": true
      },
      "valueType": {
        "name": "HTMLParamElement.valueType",
        "description": "Is a DOMString containing the type of the value. It reflects the valuetype attribute and has one of the values: \"data\", \"ref\", or \"object\".",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "picture": {
    "name": "HTMLPictureElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLPictureElement",
    "descripton": "The HTMLPictureElement interface represents a <picture> HTML element. It doesn't implement specific properties or methods.",
    "experimental": true,
    "properties": {},
    "methods": {}
  },
  "pre": {
    "name": "HTMLPreElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement",
    "descripton": "The HTMLPreElement interface expose specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating block of preformatted text.",
    "properties": {
      "width": {
        "name": "HTMLPreElement.width",
        "description": "Is a long value reflecting the obsolete width attribute, containing a fixed-size length for the <pre> element.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "progress": {
    "name": "HTMLProgressElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement",
    "descripton": "The HTMLProgressElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements.",
    "properties": {
      "max": {
        "name": "HTMLProgressElement.max",
        "description": "Is a double value reflecting the content attribute of the same name, limited to numbers greater than zero. Its default value is 1.0."
      },
      "position": {
        "name": "HTMLProgressElement.position",
        "description": "Returns a double value returning the result of dividing the current value (value) by the maximum value (max); if the progress bar is an indeterminate progress bar, it returns -1.",
        "read_only": true
      },
      "value": {
        "name": "HTMLProgressElement.value",
        "description": "Is a double value returning  the current value; if the progress bar is an indeterminate progress bar, it returns 0."
      },
      "labels": {
        "name": "HTMLProgressElement.labels",
        "description": "Returns NodeList containing the list of <label> elements that are labels for this element.",
        "read_only": true
      }
    },
    "methods": {}
  },
  "quote": {
    "name": "HTMLQuoteElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement",
    "descripton": "The HTMLQuoteElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element.",
    "properties": {
      "cite": {
        "name": "cite",
        "description": "Reflects the cite HTML attribute, containing a URL for the source of the quotation."
      }
    },
    "methods": {}
  },
  "script": {
    "name": "HTMLScriptElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement",
    "descripton": "HTML script elements expose the HTMLScriptElement interface, which provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <script> elements.",
    "properties": {
      "type": {
        "name": "type",
        "description": "Represents the MIME type of the script. It reflects the type attribute. For how to parse exotic programming languages, please read this article."
      },
      "src": {
        "name": "src",
        "description": "Represents gives the address of the external script resource to use. It reflects the src attribute."
      },
      "htmlFor": {
        "name": "htmlFor",
        "description": "The htmlFor property sets or returns the value of the for attribute of a label. The for attribute specifies which form element a label is bound to.",
        "obsolete": true
      },
      "event": {
        "name": "event",
        "description": "HTML DOM events allow JavaScript to register different event handlers on elements in an HTML document.",
        "obsolete": true
      },
      "charset": {
        "name": "charset",
        "description": "Represents the character encoding of the external script resource. It reflects the charset attribute."
      },
      "async": {
        "name": "async",
        "description": "The async and defer attributes are boolean attributes that indicate how the script should be executed. The defer and async attributes must not be specified if the src attribute is not present.\n\n    There are three possible modes that can be selected using these attributes. If the async attribute is present, then the script will be executed asynchronously, as soon as it is available. If the async attribute is not present but the defer attribute is present, then the script is executed when the page has finished parsing. If neither attribute is present, then the script is fetched and executed immediately, before the user agent continues parsing the page.\n\n    Note: The exact processing details for these attributes are, for mostly historical reasons, somewhat non-trivial, involving a number of aspects of HTML. The implementation requirements are therefore by necessity scattered throughout the specification. These algorithms describe the core of this processing, but these algorithms reference and are referenced by the parsing rules for <script> start and end tags in HTML, in foreign content, and in XML, the rules for the document.write() method, the handling of scripting, etc.\n\n    The defer attribute may be specified even if the async attribute is specified, to cause legacy Web browsers that only support defer (and not async) to fall back to the defer behavior instead of the synchronous blocking behavior that is the default."
      },
      "defer": {
        "name": "defer"
      },
      "crossOrigin": {
        "name": "crossOrigin",
        "description": "Is a DOMString that corresponds to the CORS setting for this script element. See CORS settings attributes for details. It controls, for scripts that are obtained from other origins, whether error information will be exposed.",
        "experimental": true
      },
      "text": {
        "name": "text",
        "description": "The IDL attribute text must return a concatenation of the contents of all the Text nodes that are children of the <script> element (ignoring any other nodes such as comments or elements), in tree order. On setting, it must act the same way as the textContent IDL attribute.\n\n    Note: When inserted using the document.write() method, <script> elements execute (typically synchronously), but when inserted using innerHTML and outerHTML attributes, they do not execute at all."
      }
    },
    "methods": {}
  },
  "select": {
    "name": "HTMLSelectElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement",
    "descripton": "The HTMLSelectElement interface represents a <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface.",
    "properties": {
      "autofocus": {
        "name": "HTMLSelectElement.autofocus",
        "description": "Is a Boolean that reflects the autofocus HTML attribute, which indicates whether the control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified."
      },
      "disabled": {
        "name": "HTMLSelectElement.disabled",
        "description": "Is a Boolean that reflects the disabled HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks."
      },
      "form": {
        "name": "HTMLSelectElement.form",
        "description": "Returns a HTMLFormElement representing the form that this element is associated with. If this element is a descendant of a form element, then this attribute is the ID of that form element. If the element is not a descendant of a form element, then the attribute can be the ID of any form element in the same document.",
        "read_only": true
      },
      "labels": {
        "name": "HTMLSelectElement.labels",
        "description": "Returns a NodeList containing the list of label elements associated with this select element.",
        "read_only": true
      },
      "length": {
        "name": "HTMLSelectElement.length",
        "description": "Is an unsigned long representing the number of <option> elements in this select element."
      },
      "multiple": {
        "name": "HTMLSelectElement.multiple",
        "description": "Is a Boolean that reflects the multiple HTML attribute, which indicates whether multiple items can be selected."
      },
      "name": {
        "name": "HTMLSelectElement.name",
        "description": "Is a DOMString that reflects the name HTML attribute, containing the name of this control used by servers and DOM search functions."
      },
      "options": {
        "name": "HTMLSelectElement.options",
        "description": "Returns a HTMLOptionsCollection containing the set of <option> elements contained by this element.",
        "read_only": true
      },
      "required": {
        "name": "HTMLSelectElement.required",
        "description": "Is a Boolean that reflects the required HTML attribute, which indicates whether the user is required to select a value before submitting the form."
      },
      "selectedIndex": {
        "name": "HTMLSelectElement.selectedIndex",
        "description": "Is a long that reflects the index of the first selected <option> element. The value -1 indicates no element is selected."
      },
      "selectedOptions": {
        "name": "HTMLSelectElement.selectedOptions",
        "description": "Returns a live HTMLCollection containing the set of options that are selected.",
        "read_only": true
      },
      "size": {
        "name": "HTMLSelectElement.size",
        "description": "Is a long that reflects the size HTML attribute, which contains the number of visible items in the control. The default is 1, unless multiple is true, in which case it is 4."
      },
      "type": {
        "name": "HTMLSelectElement.type",
        "description": "Returns a DOMString the form control's type. When multiple is true, it returns \"select-multiple\"; otherwise, it returns \"select-one\".",
        "read_only": true
      },
      "validationMessage": {
        "name": "HTMLSelectElement.validationMessage",
        "description": "Returns a DOMString containing a localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "HTMLSelectElement.validity",
        "description": "Returns a ValidityState representing the validity state that this control is in.",
        "read_only": true
      },
      "value": {
        "name": "HTMLSelectElement.value",
        "description": "Is a DOMString with the value of this form control, that is, of the first selected option."
      },
      "willValidate": {
        "name": "HTMLSelectElement.willValidate",
        "description": "Is a Boolean that indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.",
        "read_only": true
      }
    },
    "methods": {
      "add": {
        "name": "HTMLSelectElement.add()",
        "description": "Adds an element to the collection of option elements for this select element.",
        "details": "The HTMLSelectElement.add() method adds an element to the collection of option elements for this select element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/add"
      },
      "blur": {
        "name": "HTMLSelectElement.blur()",
        "description": "Removes input focus from this element. This method is now implemented on HTMLElement.",
        "obsolete": true,
        "details": "The HTMLElement.blur() method removes keyboard focus from the current element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/blur"
      },
      "checkValidity": {
        "name": "HTMLSelectElement.checkValidity()",
        "description": "Checks whether the element has any constraints and whether it satisfies them. If the element fails its constraints, the browser fires a cancelable invalid event at the element (and returns false).",
        "details": "The HTMLSelectElement.checkValidity() method checks whether the element has any constraints and whether it satisfies them. If the element fails its constraints, the browser fires a cancelable invalid event at the element, and then returns false.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/checkValidity"
      },
      "focus": {
        "name": "HTMLSelectElement.focus()",
        "description": "Gives input focus to this element. This method is now implemented on HTMLElement.",
        "obsolete": true,
        "details": "The HTMLElement.focus() method sets focus on the specified element, if it can be focused.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus"
      },
      "item": {
        "name": "HTMLSelectElement.item()",
        "description": "Gets an item from the options collection for this <select> element. You can also access an item by specifying the index in array-style brackets or parentheses, without calling this method explicitly.",
        "details": "The HTMLSelectElement.item() method returns the Element corresponding to the HTMLOptionElement whose position in the options list corresponds to the index given in parameter, or null if there are none.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/item"
      },
      "namedItem": {
        "name": "HTMLSelectElement.namedItem()",
        "description": "Gets the item in the options collection with the specified name. The name string can match either the id or the name attribute of an option node. You can also access an item by specifying the name in array-style brackets or parentheses, without calling this method explicitly.",
        "details": "The HTMLSelectElement.namedItem() method returns the HTMLOptionElement corresponding to the HTMLOptionElement whose name or id match the specified name, or null if no option matches.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/namedItem"
      },
      "remove": {
        "name": "HTMLSelectElement.remove()",
        "description": "Removes the element at the specified index from the options collection for this select element.",
        "details": "The HTMLSelectElement.remove() method removes the element at the specified index from the options collection for this select element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/remove"
      },
      "setCustomValidity": {
        "name": "HTMLSelectElement.setCustomValidity()",
        "description": "Sets the custom validity message for the selection element to the specified message. Use the empty string to indicate that the element does not have a custom validity error.",
        "details": "The HTMLSelectElement.setCustomValidity() method sets the custom validity message for the selection element to the specified message. Use the empty string to indicate that the element does not have a custom validity error.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/setCustomValidity"
      }
    }
  },
  "shadow": {
    "name": "HTMLShadowElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLShadowElement",
    "descripton": "The HTMLShadowElement interface represents a <shadow> HTML Element, which is used in Shadow DOM.",
    "properties": {},
    "methods": {
      "getDistributedNodes": {
        "name": "HTMLShadowElement.getDistributedNodes()",
        "description": "Returns a static NodeList of the distributed nodes associated with this <shadow> element.",
        "details": "The HTMLShadowElement.getDistributedNodes() method returns a static NodeList of the distributed nodes associated with this <shadow> element.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLShadowElement/getDistributedNodes"
      }
    }
  },
  "source": {
    "name": "HTMLSourceElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement",
    "descripton": "The HTMLSourceElement interface provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements.",
    "properties": {
      "keySystem": {
        "name": "HTMLSourceElement.keySystem",
        "description": "Is a DOMString describing the key system encrypting the stream.",
        "experimental": true
      },
      "media": {
        "name": "HTMLSourceElement.media",
        "description": "Is a DOMString reflecting the media HTML attribute, containing the intended type of the media resource."
      },
      "sizes": {
        "name": "HTMLSourceElement.sizes",
        "description": "Is a DOMString",
        "experimental": true
      },
      "src": {
        "name": "HTMLSourceElement.src",
        "description": "Is a DOMString reflecting the src HTML attribute, containing the URL for the media resource. The HTMLSourceElement.src property has a meaning only when the associated <source> element is nested in a media element that is a <video> or an <audio> element. It has no meaning and is ignored when it is nested in a <picture> element."
      },
      "srcset": {
        "name": "HTMLSourceElement.srcset",
        "description": "Is a DOMString reflecting the srcset HTML attribute, containing a list of candidate images, separated by a comma (',', U+002C COMMA). A candidate image is a URL followed by a 'w' with the width of the images, or an 'x' followed by the pixel density.",
        "experimental": true
      },
      "type": {
        "name": "HTMLSourceElement.type",
        "description": "Is a DOMString reflecting the type HTML attribute, containing the type of the media resource."
      }
    },
    "methods": {}
  },
  "span": {
    "name": "HTMLSpanElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement",
    "descripton": "The HTMLSpanElement interface represents a <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods.",
    "properties": {},
    "methods": {}
  },
  "style": {
    "name": "HTMLStyleElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement",
    "descripton": "The HTMLStyleElement interface represents a <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle.",
    "properties": {
      "media": {
        "name": "HTMLStyleElement.media",
        "description": "Is a DOMString representing the intended destination medium for style information."
      },
      "type": {
        "name": "HTMLStyleElement.type",
        "description": "Is a DOMString representing the type of style being applied by this statement."
      },
      "disabled": {
        "name": "HTMLStyleElement.disabled",
        "description": "Is a Boolean value, with true if the stylesheet is disabled, and false if not."
      },
      "LinkStyle.sheet": {
        "name": "LinkStyle.sheet",
        "description": "Returns the StyleSheet object associated with the given element, or null if there is none",
        "read_only": true
      },
      "scoped": {
        "name": "HTMLStyleElement.scoped",
        "description": "Is a Boolean value indicating if the element applies to the whole document (false) or only to the parent's sub-tree (true)."
      }
    },
    "methods": {}
  },
  "table": {
    "name": "HTMLTableElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement",
    "descripton": "The HTMLTableElement interface provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document.",
    "properties": {
      "caption": {
        "name": "HTMLTableElement.caption",
        "description": "Is an HTMLTableCaptionElement representing the first <caption> that is a child of the element, or null if none is found. When set, if the object doesn't represent a <caption>, a DOMException with the HierarchyRequestError name is thrown. If a correct object is given, it is inserted in the tree as the first child of this element and the first <caption> that is a child of this element is removed from the tree, if any."
      },
      "tHead": {
        "name": "HTMLTableElement.tHead",
        "description": "Is an HTMLTableSectionElement representing the first <thead> that is a child of the element, or null if none is found. When set, if the object doesn't represent a <thead>, a DOMException with the HierarchyRequestError name is thrown. If a correct object is given, it is inserted in the tree immediately before the first element that is neither a <caption>, nor a <colgroup>, or as the last child if there is no such element, and the first <thead> that is a child of this element is removed from the tree, if any."
      },
      "tFoot": {
        "name": "HTMLTableElement.tFoot",
        "description": "Is an HTMLTableSectionElement representing the first <tfoot> that is a child of the element, or null if none is found. When set, if the object doesn't represent a <tfoot>, a DOMException with the HierarchyRequestError name is thrown. If a correct object is given, it is inserted in the tree immediately before the first element that is neither a <caption>, a <colgroup>, nor a <thead>, or as the last child if there is no such element, and the first <tfoot> that is a child of this element is removed from the tree, if any."
      },
      "rows": {
        "name": "HTMLTableElement.rows",
        "description": "Returns a live HTMLCollection containing all the rows of the element, that is all <tr> that are a child of the element, or a child or one of its <thead>, <tbody> and <tfoot> children. The rows members of a <thead> appear first, in tree order, and those members of a <tbody> last, also in tree order. The HTMLCollection is live and is automatically updated when the HTMLTableElement changes.",
        "read_only": true
      },
      "tBodies": {
        "name": "HTMLTableElement.tBodies",
        "description": "Returns a live HTMLCollection containing all the <tbody> of the element. The HTMLCollection is live and is automatically updated when the HTMLTableElement changes.",
        "read_only": true
      },
      "sortable": {
        "name": "HTMLTableElement.sortable",
        "description": "Is a Boolean value indicating if the user agent is allowed to provide sorting mechanism for the table, if it supports such a feature. This property reflects the sortable attribute.",
        "experimental": true
      },
      "align": {
        "name": "HTMLTableElement.align",
        "description": "Is a DOMString containing an enumerated value reflecting the align attribute. It indicates the alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", and \"center\".",
        "obsolete": true
      },
      "bgColor": {
        "name": "HTMLTableElement.bgColor",
        "description": "Is a DOMString containing the background color of the cells. It reflects the obsolete bgcolor attribute.",
        "obsolete": true
      },
      "border": {
        "name": "HTMLTableElement.border",
        "description": "Is a DOMString containing the width in pixels of the border of the table. It reflects the obsolete border attribute.",
        "obsolete": true
      },
      "cellPadding": {
        "name": "HTMLTableElement.cellPadding",
        "description": "Is a DOMString containing the width in pixels of the horizontal and vertical sapce between cell content and cell borders. It reflects the obsolete cellpadding attribute.",
        "obsolete": true
      },
      "cellSpacing": {
        "name": "HTMLTableElement.cellSpacing",
        "description": "Is a DOMString containing the width in pixels of the horizontal and vertical separation between cells. It reflects the obsolete cellspacing attribute.",
        "obsolete": true
      },
      "frame": {
        "name": "HTMLTableElement.frame",
        "description": "Is a DOMString containing the type of the external borders of the table. It reflects the obsolete frame attribute and can take one of the following values: \"void\", \"above\", \"below\", \"hsides\", \"vsides\", \"lhs\", \"rhs\", \"box\", or \"border\".",
        "obsolete": true
      },
      "rules": {
        "name": "HTMLTableElement.rules",
        "description": "Is a DOMString containing the type of the internal borders of the table. It reflects the obsolete rules attribute and can take one of the following values: \"none\", \"groups\", \"rows\", \"cols\", or \"all\".",
        "obsolete": true
      },
      "summary": {
        "name": "HTMLTableElement.summary",
        "description": "Is a DOMString containing a description of the purpose or the structure of the table. It reflects the obsolete summary attribute.",
        "obsolete": true
      },
      "width": {
        "name": "HTMLTableElement.width",
        "description": "Is a DOMString containing the length in pixels or in percentage of the desired width fo the entire table. It reflects the obsolete width attribute.",
        "obsolete": true
      }
    },
    "methods": {
      "createTHead": {
        "name": "HTMLTableElement.createTHead()",
        "description": "Returns an HTMLElement representing the first <thead> that is a child of the element. If none is found, a new one is created and inserted in the tree immediately before the first element that is neither a <caption>, nor a <colgroup>, or as the last child if there is no such element.",
        "details": "The HTMLTableElement.createTHead()method returns the <thead> element association with the table, of type HTMLTableSectionElement. If there is no such element associated to the thable, this method creates it, then returns it.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/createTHead"
      },
      "deleteTHead": {
        "name": "HTMLTableElement.deleteTHead()",
        "description": "Removes the first <thead> that is a child of the element.",
        "details": "The HTMLTableElement.deleteTHead() removes a <thead> element from the table.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/deleteTHead"
      },
      "createTFoot": {
        "name": "HTMLTableElement.createTFoot()",
        "description": "Returns an HTMLElement representing the first <tfoot> that is a child of the element. If none is found, a new one is created and inserted in the tree immediately before the first element that is neither a <caption>, a <colgroup>, nor a <thead>, or as the last child if there is no such element.",
        "details": "The HTMLTableElement.createTFoot() method returns the <tfoot> element associated with the table, of type HTMLTableSectionElement. If there is no footer for this table, this methods creates it, then returns it.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/createTFoot"
      },
      "deleteTFoot": {
        "name": "HTMLTableElement.deleteTFoot()",
        "description": "Removes the first <tfoot> that is a child of the element.",
        "details": "The HTMLTableElement.deleteTFoot() method removes a <tfoot> element from the table.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/deleteTFoot"
      },
      "createCaption": {
        "name": "HTMLTableElement.createCaption()",
        "description": "Returns an HTMLElement representing the first <caption> that is a child of the element. If none is found, a new one is created and inserted in the tree as the first child of the <table> element.",
        "details": "The HTMLTableElement.createCaption() method returns the caption for the table. If no caption element exists on the table, this method creates it, then returns it.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/createCaption"
      },
      "deleteCaption": {
        "name": "HTMLTableElement.deleteCaption()",
        "description": "Removes the first <caption> that is a child of the element.",
        "details": "The HTMLTableElement.deleteCaption() method removes the caption from the table. If there is no caption associated with the table, this method does nothing.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/deleteCaption"
      },
      "insertRow": {
        "name": "HTMLTableElement.insertRow()",
        "description": "Returns an HTMLElement representing a new row of the table. It inserts it in the rows collection immediately before the <tr> element at the given index position. If necessary a <tbody> is created. If the index is -1, the new row is appended to the collection. If the index is smaller than -1 or greater than the number of rows in the collection, a DOMException with the value IndexSizeError is raised.",
        "details": "The HTMLTableElement.insertRow() method inserts a new row in the table.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/insertRow"
      },
      "deleteRow": {
        "name": "HTMLTableElement.deleteRow()",
        "description": "Removes the row corresponding to the index given in parameter. If the index value is -1 the last row is removed; if it smaller than -1 or greater than the amount of rows in the collection, a DOMException with the value IndexSizeError is raised.",
        "details": "The HTMLTableElement.deleteRow() method removes a row from the table. If the amount of rows to delete, specified by the parameter, is greater or equal to the number of available rows, or if it is negative and not equal to the special index -1, representing the last row of the table, the exception INDEX_SIZE_ERR is thrown.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement/deleteRow"
      },
      "stopSorting": {
        "name": "HTMLTableElement.stopSorting()",
        "description": "Removes the sortable attribute to all <th> elements of the table.",
        "experimental": true,
        "details": "The documentation about this has not yet been written; please consider contributing!"
      }
    }
  },
  "tablecaption": {
    "name": "HTMLTableCaptionElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement",
    "descripton": "The HTMLTableCaptionElement interface special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Enumerated attribute indicating alignment of the caption with respect to the table.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "tablecell": {
    "name": "HTMLTableCellElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement",
    "descripton": "The HTMLTableCellElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document.",
    "properties": {
      "colSpan": {
        "name": "HTMLTableCellElement.colSpan",
        "description": "Is an unsigned long that represents the number of columns this cell must span. It reflects the colspan attribute."
      },
      "rowSpan": {
        "name": "HTMLTableCellElement.rowSpan",
        "description": "Is an unsigned long that represents the number of rows this cell must span. It reflects the rowspan attribute."
      },
      "headers": {
        "name": "HTMLTableCellElement.headers",
        "description": "Is a DOMSettableTokenList describing a list of id of <th> elements that represents headers associated with the cell. It reflects the headers attribute.",
        "read_only": true
      },
      "cellIndex": {
        "name": "HTMLTableCellElement.cellIndex",
        "description": "Is a long representing the cell position in the cells collection of the <tr> it belongs to. If the cell doesn't belong to a <tr>, it returns -1.",
        "read_only": true
      },
      "align": {
        "name": "HTMLTableCellElement.align",
        "description": "Is a DOMString containing an enumerated value reflecting the align attribute. It indicates the alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", and \"center\".",
        "obsolete": true
      },
      "bgColor": {
        "name": "HTMLTableCellElement.bgColor",
        "description": "Is a DOMString containing the background color of the cells. It reflects the obsolete bgcolor attribute.",
        "obsolete": true
      },
      "axis": {
        "name": "HTMLTableCellElement.axis",
        "description": "Is a DOMString containing a name grouping cells in virtual. It reflects the obsolete axis attribute.",
        "obsolete": true
      },
      "height": {
        "name": "HTMLTableCellElement.height",
        "description": "Is a DOMString containing a length of pixel of the hinted height of the cell. It reflects the obsolete height attribute.",
        "obsolete": true
      },
      "width": {
        "name": "HTMLTableCellElement.width",
        "description": "Is a DOMString containing a length of pixel of the hinted width of the cell. It reflects the obsolete width attribute.",
        "obsolete": true
      },
      "ch": {
        "name": "HTMLTableCellElement.ch",
        "description": "Is a DOMString containing one single chararcter. This character is the one to align all the cell of a column on. It reflects the char and default to the decimal points associated with the language, e.g. '.' for English, or ',' for French. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "chOff": {
        "name": "HTMLTableCellElement.chOff",
        "description": "Is a DOMString containing a integer indicating how many characters must be left at the right (for left-to-right scripts; or at the left for right-to-left scripts) of the character defined by HTMLTableCellElement.ch. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "noWrap": {
        "name": "HTMLTableCellElement.noWrap",
        "description": "Is a Boolean value reflecting the nowrap attribute and indicating if cell content can be broken in several lines.",
        "obsolete": true
      },
      "vAlign": {
        "name": "HTMLTableCellElement.vAlign",
        "description": "Is a DOMString representing an enumerated value indicating how the content of the cell must be vertically aligned. It reflects the valign attribute and can have one of the following values: \"top\", \"middle\", \"bottom\", or \"baseline\".",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "tablecol": {
    "name": "HTMLTableColElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement",
    "descripton": "The HTMLTableColElement interface provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements.",
    "properties": {
      "align": {
        "name": "align",
        "description": "Indicates the horizontal alignment of the cell data in the column.",
        "obsolete": true
      },
      "ch": {
        "name": "ch",
        "description": "Alignment character for cell data.",
        "obsolete": true
      },
      "chOff": {
        "name": "chOff",
        "description": "Offset for the alignment character.",
        "obsolete": true
      },
      "span": {
        "name": "span",
        "description": "Reflects the span HTML attribute, indicating the number of columns to apply this object's attributes to. Must be a positive integer."
      },
      "vAlign": {
        "name": "vAlign",
        "description": "Indicates the vertical alignment of the cell data in the column.",
        "obsolete": true
      },
      "width": {
        "name": "width",
        "description": "Default column width.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "tabledatacell": {
    "name": "HTMLTableDataCellElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableDataCellElement",
    "descripton": "The HTMLTableDataCellElement interface provides special properties and methods (beyond the regular HTMLTableCellElement and HTMLElement interfaces it also has available to it by inheritance) for manipulating the layout and presentation of table data cells in an HTML document.",
    "properties": {
      "abbr": {
        "name": "HTMLTableDataCellElement.abbr",
        "description": "Is a DOMString containing a name used to refer to this cell in other context. It reflects the abbr attribute.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "tableheadercell": {
    "name": "HTMLTableHeaderCellElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableHeaderCellElement",
    "descripton": "The HTMLTableHeaderCellElement interface provides special properties and methods (beyond the regular HTMLTableCellElement and HTMLElement interfaces it also has available to it by inheritance) for manipulating the layout and presentation of table header cells in an HTML document.",
    "properties": {
      "abbr": {
        "name": "HTMLTableHeaderCellElement.abbr",
        "description": "Is a DOMString containing a name used to refer to this cell in other context. It reflects the abbr attribute."
      },
      "scope": {
        "name": "HTMLTableHeaderCellElement.scope",
        "description": "Is a DOMString representing an enumerated value indicating which cells the header cell applies to. It reflects the scope attribute and has one of the following values: \"row\", \"col\", \"colgroup\", or \"rowgroup\". If the attribute is in the auto state, or if an invalid value is set for the attribute, scope will be returns the empty string, \"\"."
      },
      "sorted": {
        "name": "HTMLTableHeaderCellElement.sorted",
        "description": "Is a Boolean value indicating if the table is sorted by the scope associated with this header cell. It reflects the sorted attribute.",
        "experimental": true
      }
    },
    "methods": {}
  },
  "tablerow": {
    "name": "HTMLTableRowElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement",
    "descripton": "The HTMLTableRowElement interface provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table.",
    "properties": {
      "align": {
        "name": "HTMLTableRowElement.align",
        "description": "Is a DOMString containing an enumerated value reflecting the align attribute. It indicates the alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", and \"center\".",
        "obsolete": true
      },
      "bgColor": {
        "name": "HTMLTableRowElement.bgColor",
        "description": "Is a DOMString containing the background color of the cells. It reflects the obsolete bgcolor attribute.",
        "obsolete": true
      },
      "cells": {
        "name": "HTMLTableRowElement.cells",
        "description": "Returns a live HTMLCollection containing the cells in the row. The HTMLCollection is live and is automatically updated when cells are added or removed.",
        "read_only": true
      },
      "ch": {
        "name": "HTMLTableRowElement.ch",
        "description": "Is a DOMString containing one single character. This character is the one to align all the cell of a column on. It reflects the char and default to the decimal points associated with the language, e.g. '.' for English, or ',' for French. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "chOff": {
        "name": "HTMLTableRowElement.chOff",
        "description": "Is a DOMString containing a integer indicating how many characters must be left at the right (for left-to-right scripts; or at the left for right-to-left scripts) of the character defined by HTMLTableRowElement.ch. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "rowIndex": {
        "name": "HTMLTableRowElement.rowIndex",
        "description": "Returns a long value which gives the logical position of the row within the entire table. If the row is not part of a table, returns -1.",
        "read_only": true
      },
      "sectionRowIndex": {
        "name": "HTMLTableRowElement.sectionRowIndex",
        "description": "Returns a long value which gives the logical position of the row within the table section it belongs to. If the row is not part of a section, returns -1.",
        "read_only": true
      },
      "vAlign": {
        "name": "HTMLTableRowElement.vAlign",
        "description": "Is a DOMString representing an enumerated value indicating how the content of the cell must be vertically aligned. It reflects the valign attribute and can have one of the following values: \"top\", \"middle\", \"bottom\", or \"baseline\".",
        "obsolete": true
      }
    },
    "methods": {
      "deleteCell": {
        "name": "HTMLTableRowElement.deleteCell()",
        "description": "Removes the cell at the given position in the row. If the given position is greater (or equal as it starts at zero) than the amount of cells in the row, or is smaller than 0, it raises a DOMException with the IndexSizeError value.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "insertCell": {
        "name": "HTMLTableRowElement.insertCell()",
        "description": "Inserts a new cell just before the given position in the row. If the given position is not given or is -1, it appends the cell to the row. If the given position is greater (or equal as it starts at zero) than the amount of cells in the row, or is smaller than -1, it raises a DOMException with the IndexSizeError value. Returns a reference to a HTMLTableCellElement [en-US].",
        "details": "The HTMLTableRowElement.insertCell() method inserts a new cell into a table row and returns a reference to the cell.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement/insertCell"
      }
    }
  },
  "tablesection": {
    "name": "HTMLTableSectionElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement",
    "descripton": "Technical review completed.",
    "properties": {
      "align": {
        "name": "HTMLTableSectionElement.align",
        "description": "Is a DOMString containing an enumerated value reflecting the align attribute. It indicates the alignment of the element's contents with respect to the surrounding context. The possible values are \"left\", \"right\", and \"center\".",
        "obsolete": true
      },
      "rows": {
        "name": "HTMLTableSectionElement.rows",
        "description": "Returns a live HTMLCollection containing the rows in the section. The HTMLCollection is live and is automatically updated when rows are added or removed.",
        "read_only": true
      },
      "ch": {
        "name": "HTMLTableSectionElement.ch",
        "description": "Is a DOMString containing one single chararcter. This character is the one to align all the cell of a column on. It reflects the char and default to the decimal points associated with the language, e.g. '.' for English, or ',' for French. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "chOff": {
        "name": "HTMLTableSectionElement.chOff",
        "description": "Is a DOMString containing a integer indicating how many characters must be left at the right (for left-to-right scripts; or at the left for right-to-left scripts) of the character defined by HTMLTableRowElement.ch. This property was optional and was not very well supported.",
        "obsolete": true
      },
      "vAlign": {
        "name": "HTMLTableSectionElement.vAlign",
        "description": "Is a DOMString representing an enumerated value indicating how the content of the cell must be vertically aligned. It reflects the valign attribute and can have one of the following values: \"top\", \"middle\", \"bottom\", or \"baseline\".",
        "obsolete": true
      }
    },
    "methods": {
      "deleteRow": {
        "name": "HTMLTableSectionElement.deleteRow()",
        "description": "Removes the cell at the given position in the section. If the given position is greater (or equal as it starts at zero) than the amount of rows in the section, or is smaller than 0, it raises a DOMException with the IndexSizeError value.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      },
      "insertRow": {
        "name": "HTMLTableSectionElement.insertRow()",
        "description": "Inserts a new row just before the given position in the section. If the given position is not given or is -1, it appends the row to the end of section. If the given position is greater (or equal as it starts at zero) than the amount of rows in the section, or is smaller than -1, it raises a DOMException with the IndexSizeError value.",
        "details": "The documentation about this has not yet been written; please consider contributing!"
      }
    }
  },
  "textarea": {
    "name": "HTMLTextAreaElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement",
    "descripton": "The HTMLTextAreaElement interface, which provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <textarea> elements.",
    "properties": {
      "accessKey": {
        "name": "accessKey",
        "description": "Reflects the accesskey HTML attribute."
      },
      "autocapitalize": {
        "name": "autocapitalize",
        "description": "Defines capitalization behavior for user input. Valid values are none, off, characters, words, or sentences.",
        "experimental": true
      },
      "autocomplete": {
        "name": "autocomplete",
        "description": "",
        "experimental": true
      },
      "autofocus": {
        "name": "autofocus",
        "description": "Reflects the autofocus HTML attribute, indicating that the control should have input focus when the page loads"
      },
      "cols": {
        "name": "cols",
        "description": "Reflects the cols HTML attribute, indicating the visible width of the text area."
      },
      "defaultValue": {
        "name": "defaultValue",
        "description": "The control's default value, which behaves like the Node.textContent property."
      },
      "dirName": {
        "name": "dirName",
        "description": ""
      },
      "disabled": {
        "name": "disabled",
        "description": "Reflects the disabled HTML attribute, indicating that the control is not available for interaction."
      },
      "form": {
        "name": "form",
        "description": "The containing form element, if this element is in a form. If this element is not contained in a form element, it can be the id attribute of any <form> element in the same document or the value null.",
        "read_only": true
      },
      "inputMode": {
        "name": "inputMode",
        "description": "",
        "experimental": true
      },
      "labels": {
        "name": "labels",
        "description": "A list of <label> elements that are labels for this element.",
        "read_only": true
      },
      "maxLength": {
        "name": "maxLength",
        "description": "Reflects the maxlength HTML attribute, indicating the maximum number of characters the user can enter. This constraint is evaluated only when the value changes."
      },
      "name": {
        "name": "name",
        "description": "Reflects name HTML attribute, containing the name of the control."
      },
      "placeholder": {
        "name": "placeholder",
        "description": "Reflects the placeholder HTML attribute, containing a hint to the user about what to enter in the control."
      },
      "readOnly": {
        "name": "readOnly",
        "description": "Reflects the readonly HTML attribute, indicating that the user cannot modify the value of the control."
      },
      "required": {
        "name": "required",
        "description": "Reflects the required HTML attribute, indicating that the user must specify a value before submitting the form."
      },
      "rows": {
        "name": "rows",
        "description": "Reflects the rows HTML attribute, indicating the number of visible text lines for the control."
      },
      "selectionDirection": {
        "name": "selectionDirection",
        "description": "The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\""
      },
      "selectionEnd": {
        "name": "selectionEnd",
        "description": "The index of the end of selected text. If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if setSelectionRange() had been called with this as the second argument, and selectionStart as the first argument."
      },
      "selectionStart": {
        "name": "selectionStart",
        "description": "The index of the beginning of selected text. If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if setSelectionRange() had been called with this as the first argument, and selectionEnd as the second argument."
      },
      "tabIndex": {
        "name": "tabIndex",
        "description": "The position of the element in the tabbing navigation order for the current document."
      },
      "textLength": {
        "name": "textLength",
        "description": "The codepoint length of the control's value. Same as the control's value.length (when using JavaScript).",
        "read_only": true
      },
      "type": {
        "name": "type",
        "description": "The string textarea.",
        "read_only": true
      },
      "validationMessage": {
        "name": "validationMessage",
        "description": "A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.",
        "read_only": true
      },
      "validity": {
        "name": "validity",
        "description": "The validity states that this element is in.",
        "read_only": true
      },
      "value": {
        "name": "value",
        "description": "The raw value contained in the control."
      },
      "willValidate": {
        "name": "willValidate",
        "description": "Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation."
      },
      "wrap": {
        "name": "wrap",
        "description": "Reflects the wrap HTML attribute, indicating how the control wraps text."
      }
    },
    "methods": {
      "blur": {
        "name": "blur()",
        "description": "Removes input focus from this control."
      },
      "checkValidity": {
        "name": "checkValidity()",
        "description": "Returns false if the button is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an invalid event at the control. It returns true if the control is not a candidate for constraint validation, or if it satisfies its constraints.",
        "details": "The Boolean object is an object wrapper for a boolean value.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/Boolean"
      },
      "focus": {
        "name": "focus()",
        "description": "Gives input focus to this control."
      },
      "select": {
        "name": "select()",
        "description": "Selects the contents of the control."
      },
      "setCustomValidity": {
        "name": "setCustomValidity(in DOMString error)",
        "description": "Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.",
        "args": [
          "in DOMString error"
        ]
      },
      "setRangeText": {
        "name": "setRangeText()",
        "description": "",
        "experimental": true
      },
      "setSelectionRange": {
        "name": "setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection)",
        "description": "Selects a range of text, and sets selectionStart and selectionEnd. If either argument is greater than the length of the value, it is treated as pointing to the end of the value. If end is less than start, then both are treated as the value of end.",
        "args": [
          "selectionStart",
          "selectionEnd",
          "[optional] selectionDirection"
        ]
      }
    }
  },
  "time": {
    "name": "HTMLTimeElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement",
    "descripton": "The HTMLTimeElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements.",
    "properties": {
      "dateTime": {
        "name": "HTMLTimeElement.dateTime",
        "description": "Is a DOMString that reflects the datetime HTML attribute, containing a machine-readable form of the element's date and time value."
      }
    },
    "methods": {}
  },
  "title": {
    "name": "HTMLTitleElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement",
    "descripton": "The HTMLTitleElement interface contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface.",
    "properties": {
      "text": {
        "name": "HTMLTitleElement.text",
        "description": "Is a DOMString representing the text of the document's title."
      }
    },
    "methods": {}
  },
  "track": {
    "name": "HTMLTrackElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement",
    "descripton": "The HTMLTrackElement interface provides access to the properties of <track> elements, as well as methods to manipulate them.",
    "properties": {
      "DOMString": {
        "name": "DOMString",
        "description": "Reflects the label HTML attribute, indicating a user-readable title for the track."
      },
      "Boolean": {
        "name": "Boolean",
        "description": "Reflects the default HTML attribute, indicating that the track is to be enabled if the user's preferences do not indicate that another track would be more appropriate."
      },
      "unsigned short": {
        "name": "unsigned short",
        "description": "The readiness state of the track.\n\n    \n     \n      \n       Constant\n       Value\n       Description\n      \n      \n       NONE\n       0\n       Indicates that the text track's cues have not been obtained.\n      \n      \n       LOADING\n       1\n       Indicates that the text track is loading and there have been no fatal errors encountered so far. Further cues might still be added to the track by the parser.\n      \n      \n       LOADED\n       2\n       Indicates that the text track has been loaded with no fatal errors.\n      \n      \n       ERROR\n       3\n       Indicates that the text track was enabled, but when the user agent attempted to obtain it, this failed in some way. Some or all of the cues are likely missing and will not be obtained.",
        "read_only": true
      },
      "TextTrack": {
        "name": "TextTrack",
        "description": "The track element's text track data.",
        "read_only": true
      }
    },
    "methods": {}
  },
  "ulist": {
    "name": "HTMLUListElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement",
    "descripton": "The HTMLUListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements.",
    "properties": {
      "type": {
        "name": "HTMLUListElement.type",
        "description": "Is a DOMString value reflecting the type and defining the kind of marker to be used to display. The values are browser dependent and have never been standardized.",
        "obsolete": true
      },
      "compact": {
        "name": "HTMLUListElement.compact",
        "description": "Is a Boolean indicating that spacing between list items should be reduced. This property reflects the compact attribute only, it doesn't consider the line-height CSS property used for that behavior in modern pages.",
        "obsolete": true
      }
    },
    "methods": {}
  },
  "unknown": {
    "name": "HTMLUnknownElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement",
    "descripton": "The HTMLUnknownElement interface represents an invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods.",
    "properties": {},
    "methods": {}
  },
  "video": {
    "name": "HTMLVideoElement",
    "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement",
    "descripton": "The HTMLVideoElement interface provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement.",
    "properties": {
      "height": {
        "name": "HTMLVideoElement.height",
        "description": "Is a DOMString that reflects the height HTML attribute, which specifies the height of the display area, in CSS pixels."
      },
      "poster": {
        "name": "HTMLVideoElement.poster",
        "description": "Is a DOMString that reflects the poster HTML attribute, which specifies an image to show while no video data is available."
      },
      "videoHeight": {
        "name": "HTMLVideoElement.videoHeight",
        "description": "Returns an unsigned long containing the intrinsic height of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state is HAVE_NOTHING, the value is 0.",
        "read_only": true
      },
      "videoWidth": {
        "name": "HTMLVideoElement.videoWidth",
        "description": "Returns an unsigned long containing the intrinsic width of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state is HAVE_NOTHING, the value is 0.",
        "read_only": true
      },
      "width": {
        "name": "HTMLVideoElement.width",
        "description": "Is a DOMString that reflects the width HTML attribute, which specifies the width of the display area, in CSS pixels."
      }
    },
    "methods": {
      "getVideoPlaybackQuality": {
        "name": "HTMLVideoElement.getVideoPlaybackQuality()",
        "description": "Returns a VideoPlaybackQuality objects that contains the current playback metrics.",
        "experimental": true,
        "details": "The HTMLVideoElement.getVideoPlaybackQuality() creates and returns a VideoPlaybackQuality object containing metrics about the current quality of the video restitution.",
        "link": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality"
      }
    }
  }
}
