## Index

The following sections only cover conforming elements and features.

### Elements

This section is non-normative.

List of elements
Element | Description | Categories | Parents† | Children | Attributes | Interface
--- | --- | --- | --- | --- | --- | ---
`a` | Hyperlink | flow; phrasing*; interactive | phrasing | transparent* | globals; `href`; `target`; `download`; `ping`; `rel`; `hreflang`; `type` | `HTMLAnchorElement`
`abbr` | Abbreviation | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`address` | Contact information for a page or `article` element | flow | flow | flow* | globals | `HTMLElement`
`area` | Hyperlink or dead area on an image map | flow; phrasing | phrasing* | empty | globals; `alt`; `coords`; `shape`; `href`; `target`; `download`; `ping`; `rel`; `hreflang`; `type` | `HTMLAreaElement`
`article` | Self-contained syndicatable or reusable composition | flow; sectioning | flow | flow | globals | `HTMLElement`
`aside` | Sidebar for tangentially related content | flow; sectioning | flow | flow | globals | `HTMLElement`
`audio` | Audio player | flow; phrasing; embedded; interactive | phrasing | `source`*; `track`*; transparent* | globals; `src`; `crossorigin`; `preload`; `autoplay`; `mediagroup`; `loop`; `muted`; `controls` | `HTMLAudioElement`
`b` | Keywords | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`base` | Base URL and default target browsing context for hyperlinks and forms | metadata | `head`; `template` | empty | globals; `href`; `target` | `HTMLBaseElement`
`bdi` | Text directionality isolation | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`bdo` | Text directionality formatting | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`blockquote` | A section quoted from another source | flow; sectioning root | flow | flow | globals; `cite` | `HTMLQuoteElement`
`body` | Document body | sectioning root | `html` | flow | globals; `onafterprint`; `onbeforeprint`; `onbeforeunload`; `onhashchange`; `onlanguagechange`; `onmessage`; `onoffline`; `ononline`; `onpagehide`; `onpageshow`; `onpopstate`; `onstorage`; `onunload` | `HTMLBodyElement`
`br` | Line break, e.g. in poem or postal address | flow; phrasing | phrasing | empty | globals | `HTMLBRElement`
`button` | Button control | flow; phrasing; interactive; listed; labelable; submittable; reassociateable; form-associated | phrasing | phrasing* | globals; `autofocus`; `disabled`; `form`; `formaction`; `formenctype`; `formmethod`; `formnovalidate`; `formtarget`; `menu`; `name`; `type`; `value` | `HTMLButtonElement`
`canvas` | Scriptable bitmap canvas | flow; phrasing; embedded | phrasing | transparent | globals; `width`; `height` | `HTMLCanvasElement`
`caption` | Table caption | none | `table`; `template` | flow* | globals | `HTMLTableCaptionElement`
`cite` | Title of a work | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`code` | Computer code | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`col` | Table column | none | `colgroup`; `template` | empty | globals; `span` | `HTMLTableColElement`
`colgroup` | Group of columns in a table | none | `table`; `template` | `col`*; `template`* | globals; `span` | `HTMLTableColElement`
`data` | Machine-readable equivalent | flow; phrasing | phrasing | phrasing | globals; `value` | `HTMLDataElement`
`datalist` | Container for options for combo box control | flow; phrasing | phrasing | phrasing*; `option`*; script-supporting elements* | globals | `HTMLDataListElement`
`dd` | Content for corresponding `dt` element(s) | none | `dl`; `template` | flow | globals | `HTMLElement`
`del` | A removal from the document | flow; phrasing* | phrasing | transparent | globals; `cite`; `datetime` | `HTMLModElement`
`details` | Disclosure control for hiding details | flow; sectioning root; interactive | flow | `summary`*; flow | globals; `open` | `HTMLDetailsElement`
`dfn` | Defining instance | flow; phrasing | phrasing | phrasing* | globals | `HTMLElement`
`dialog` | Dialog box or window | flow; sectioning root | flow | flow | globals; `open` | `HTMLDialogElement`
`div` | Generic flow container | flow | flow | flow | globals | `HTMLDivElement`
`dl` | Association list consisting of zero or more name-value groups | flow | flow | `dt`*; `dd`*; script-supporting elements | globals | `HTMLDListElement`
`dt` | Legend for corresponding `dd` element(s) | none | `dl`; `template` | flow* | globals | `HTMLElement`
`em` | Stress emphasis | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`embed` | Plugin | flow; phrasing; embedded; interactive | phrasing | empty | globals; `src`; `type`; `width`; `height`; any* | `HTMLEmbedElement`
`fieldset` | Group of form controls | flow; sectioning root; listed; reassociateable; form-associated | flow | `legend`*; flow | globals; `disabled`; `form`; `name` | `HTMLFieldSetElement`
`figcaption` | Caption for `figure` | none | `figure`; `template` | flow | globals | `HTMLElement`
`figure` | Figure with optional caption | flow; sectioning root | flow | `figcaption`*; flow | globals | `HTMLElement`
`footer` | Footer for a page or section | flow | flow | flow* | globals | `HTMLElement`
`form` | User-submittable form | flow | flow | flow* | globals; `accept-charset`; `action`; `autocomplete`; `enctype`; `method`; `name`; `novalidate`; `target` | `HTMLFormElement`
`h1`, `h2`, `h3`, `h4`, `h5`, `h6` | Section heading | flow; heading | `hgroup`; flow | phrasing | globals | `HTMLHeadingElement`
`head` | Container for document metadata | none | `html` | metadata content* | globals | `HTMLHeadElement`
`header` | Introductory or navigational aids for a page or section | flow | flow | flow* | globals | `HTMLElement`
`hgroup` | heading group | flow; heading | flow | One or more `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, and `template` | globals | `HTMLElement`
`hr` | Thematic break | flow | flow | empty | globals | `HTMLHRElement`
`html` | Root element | none | none* | `head`*; `body`* | globals; `manifest` | `HTMLHtmlElement`
`i` | Alternate voice | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`iframe` | Nested browsing context | flow; phrasing; embedded; interactive | phrasing | text* | globals; `src`; `srcdoc`; `name`; `sandbox`; `seamless`; `allowfullscreen`; `width`; `height` | `HTMLIFrameElement`
`img` | Image | flow; phrasing; embedded; interactive*; form-associated | phrasing | empty | globals; `alt`; `src`; `srcset`; `crossorigin`; `usemap`; `ismap`; `width`; `height` | `HTMLImageElement`
`input` | Form control | flow; phrasing; interactive*; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | empty | globals; `accept`; `alt`; `autocomplete`; `autofocus`; `checked`; `dirname`; `disabled`; `form`; `formaction`; `formenctype`; `formmethod`; `formnovalidate`; `formtarget`; `height`; `inputmode`; `list`; `max`; `maxlength`; `min`; `minlength`; `multiple`; `name`; `pattern`; `placeholder`; `readonly`; `required`; `size`; `src`; `step`; `type`; `value`; `width` | `HTMLInputElement`
`ins` | An addition to the document | flow; phrasing* | phrasing | transparent | globals; `cite`; `datetime` | `HTMLModElement`
`kbd` | User input | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`keygen` | Cryptographic key-pair generator form control | flow; phrasing; interactive; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | empty | globals; `autofocus`; `challenge`; `disabled`; `form`; `keytype`; `name` | `HTMLKeygenElement`
`label` | Caption for a form control | flow; phrasing; interactive; reassociateable; form-associated | phrasing | phrasing* | globals; `form`; `for` | `HTMLLabelElement`
`legend` | Caption for `fieldset` | none | `fieldset`; `template` | phrasing | globals | `HTMLLegendElement`
`li` | List item | none | `ol`; `ul`; `menu`*; `template` | flow | globals; `value`* | `HTMLLIElement`
`link` | Link metadata | metadata; flow*; phrasing* | `head`; `template`; `noscript`*; phrasing* | empty | globals; `href`; `crossorigin`; `rel`; `media`; `hreflang`; `type`; `sizes` | `HTMLLinkElement`
`main` | Container for the dominant contents of another element | flow | flow | flow | globals | `HTMLElement`
`map` | Image map | flow; phrasing* | phrasing | transparent; `area`* | globals; `name` | `HTMLMapElement`
`mark` | Highlight | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`menu` | Menu of commands | flow | flow; `menu`* | `li`*; flow*; `menuitem`*; `hr`*; `menu`*; script-supporting elements* | globals; `type`; `label` | `HTMLMenuElement`
`menuitem` | Menu command | none | `menu`; `template` | empty | globals; `type`; `label`; `icon`; `disabled`; `checked`; `radiogroup`; `default`; `command` | `HTMLMenuItemElement`
`meta` | Text metadata | metadata; flow*; phrasing* | `head`; `template`; `noscript`*; phrasing* | empty | globals; `name`; `http-equiv`; `content`; `charset` | `HTMLMetaElement`
`meter` | Gauge | flow; phrasing; labelable | phrasing | phrasing* | globals; `value`; `min`; `max`; `low`; `high`; `optimum` | `HTMLMeterElement`
`nav` | Section with navigational links | flow; sectioning | flow | flow | globals | `HTMLElement`
`noscript` | Fallback content for script | metadata; flow; phrasing | `head`*; `template`*; phrasing* | varies* | globals | `HTMLElement`
`object` | Image, nested browsing context, or plugin | flow; phrasing; embedded; interactive*; listed; submittable; reassociateable; form-associated | phrasing | `param`*; transparent | globals; `data`; `type`; `typemustmatch`; `name`; `usemap`; `form`; `width`; `height` | `HTMLObjectElement`
`ol` | Ordered list | flow | flow | `li`; script-supporting elements | globals; `reversed`; `start`; `type` | `HTMLOListElement`
`optgroup` | Group of options in a list box | none | `select`; `template` | `option`; script-supporting elements | globals; `disabled`; `label` | `HTMLOptGroupElement`
`option` | Option in a list box or combo box control | none | `select`; `datalist`; `optgroup`; `template` | text* | globals; `disabled`; `label`; `selected`; `value` | `HTMLOptionElement`
`output` | Calculated output value | flow; phrasing; listed; labelable; resettable; reassociateable; form-associated | phrasing | phrasing | globals; `for`; `form`; `name` | `HTMLOutputElement`
`p` | Paragraph | flow | flow | phrasing | globals | `HTMLParagraphElement`
`param` | Parameter for `object` | none | `object`; `template` | empty | globals; `name`; `value` | `HTMLParamElement`
`pre` | Block of preformatted text | flow | flow | phrasing | globals | `HTMLPreElement`
`progress` | Progress bar | flow; phrasing; labelable | phrasing | phrasing* | globals; `value`; `max` | `HTMLProgressElement`
`q` | Quotation | flow; phrasing | phrasing | phrasing | globals; `cite` | `HTMLQuoteElement`
`rp` | Parenthesis for ruby annotation text | none | `ruby`; `template` | phrasing | globals | `HTMLElement`
`rt` | Ruby annotation text | none | `ruby`; `template` | phrasing | globals | `HTMLElement`
`ruby` | Ruby annotation(s) | flow; phrasing | phrasing | phrasing; `rt`; `rp`* | globals | `HTMLElement`
`s` | Inaccurate text | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`samp` | Computer output | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`script` | Embedded script | metadata; flow; phrasing; script-supporting | `head`; phrasing; script-supporting | script, data, or script documentation* | globals; `src`; `type`; `charset`; `async`; `defer`; `crossorigin` | `HTMLScriptElement`
`section` | Generic document or application section | flow; sectioning | flow | flow | globals | `HTMLElement`
`select` | List box control | flow; phrasing; interactive; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | `option`; `optgroup`; script-supporting elements | globals; `autocomplete`; `autofocus`; `disabled`; `form`; `multiple`; `name`; `required`; `size` | `HTMLSelectElement`
`small` | Side comment | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`source` | Media source for `video` or `audio` | none | `video`; `audio`; `template` | empty | globals; `src`; `type` | `HTMLSourceElement`
`span` | Generic phrasing container | flow; phrasing | phrasing | phrasing | globals | `HTMLSpanElement`
`strong` | Importance | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`style` | Embedded styling information | metadata; flow* | `head`; `noscript`*; flow* | varies* | globals; `media`; `type`; `scoped` | `HTMLStyleElement`
`sub` | Subscript | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`summary` | Caption for `details` | none | `details` | phrasing | globals | `HTMLElement`
`sup` | Superscript | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`table` | Table | flow | flow | `caption`*; `colgroup`*; `thead`*; `tbody`*; `tfoot`*; `tr`*; script-supporting elements | globals; `sortable` | `HTMLTableElement`
`tbody` | Group of rows in a table | none | `table`; `template` | `tr`; script-supporting elements | globals | `HTMLTableSectionElement`
`td` | Table cell | sectioning root | `tr`; `template` | flow | globals; `colspan`; `rowspan`; `headers` | `HTMLTableDataCellElement`
`template` | Template | metadata; flow; phrasing; script-supporting | metadata; phrasing; script-supporting; `colgroup`* | it's complicated* | globals | `HTMLTemplateElement`
`textarea` | Multiline text field | flow; phrasing; interactive; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | text | globals; `autofocus`; `cols`; `dirname`; `disabled`; `form`; `inputmode`; `maxlength`; `minlength`; `name`; `placeholder`; `readonly`; `required`; `rows`; `wrap` | `HTMLTextAreaElement`
`tfoot` | Group of footer rows in a table | none | `table`; `template` | `tr`; script-supporting elements | globals | `HTMLTableSectionElement`
`th` | Table header cell | interactive* | `tr`; `template` | flow* | globals; `colspan`; `rowspan`; `headers`; `scope`; `sorted`; `abbr` | `HTMLTableHeaderCellElement`
`thead` | Group of heading rows in a table | none | `table`; `template` | `tr`; script-supporting elements | globals | `HTMLTableSectionElement`
`time` | Machine-readable equivalent of date- or time-related data | flow; phrasing | phrasing | phrasing | globals; `datetime` | `HTMLTimeElement`
`title` | Document title | metadata | `head`; `template` | text* | globals | `HTMLTitleElement`
`tr` | Table row | none | `table`; `thead`; `tbody`; `tfoot`; `template` | `th`*; `td`; script-supporting elements | globals | `HTMLTableRowElement`
`track` | Timed text track | none | `audio`; `video`; `template` | empty | globals; `default`; `kind`; `label`; `src`; `srclang` | `HTMLTrackElement`
`u` | Keywords | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`ul` | List | flow | flow | `li`; script-supporting elements | globals | `HTMLUListElement`
`var` | Variable | flow; phrasing | phrasing | phrasing | globals | `HTMLElement`
`video` | Video player | flow; phrasing; embedded; interactive | phrasing | `source`*; `track`*; transparent* | globals; `src`; `crossorigin`; `poster`; `preload`; `autoplay`; `mediagroup`; `loop`; `muted`; `controls`; `width`; `height` | `HTMLVideoElement`
`wbr` | Line breaking opportunity | flow; phrasing | phrasing | empty | globals | `HTMLElement`

An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.

† Categories in the "Parents" column refer to parents that list the given categories in their content model, not to elements that themselves are in those categories. For example, the `a` element's "Parents" column says "phrasing", so any element whose content model contains the "phrasing" category could be a parent of an `a` element. Since the "flow" category includes all the "phrasing" elements, that means the `th` element could be a parent to an `a` element.

### Element content categories

This section is non-normative.

List of element content categories
Category | Elements | Elements with exceptions
--- | --- | ---
Metadata content | `base`; `link`; `meta`; `noscript`; `script`; `style`; `template`; `title` | —
Flow content | `a`; `abbr`; `address`; `article`; `aside`; `audio`; `b`; `bdi`; `bdo`; `blockquote`; `br`; `button`; `canvas`; `cite`; `code`; `data`; `datalist`; `del`; `details`; `dfn`; `dialog`; `div`; `dl`; `em`; `embed`; `fieldset`; `figure`; `footer`; `form`; `h1`; `h2`; `h3`; `h4`; `h5`; `h6`; `header`; `hgroup`; `hr`; `i`; `iframe`; `img`; `input`; `ins`; `kbd`; `keygen`; `label`; `main`; `map`; `mark`; `math`; `menu`; `meter`; `nav`; `noscript`; `object`; `ol`; `output`; `p`; `pre`; `progress`; `q`; `ruby`; `s`; `samp`; `script`; `section`; `select`; `small`; `span`; `strong`; `sub`; `sup`; `svg`; `table`; `template`; `textarea`; `time`; `u`; `ul`; `var`; `video`; `wbr`; Text | `area` (if it is a descendant of a `map` element); `link` (if the `itemprop` attribute is present); `meta` (if the `itemprop` attribute is present); `style` (if the `scoped` attribute is present)
Sectioning content | `article`; `aside`; `nav`; `section` | —
Heading content | `h1`; `h2`; `h3`; `h4`; `h5`; `h6`; `hgroup` | —
Phrasing content | `a`; `abbr`; `audio`; `b`; `bdi`; `bdo`; `br`; `button`; `canvas`; `cite`; `code`; `data`; `datalist`; `del`; `dfn`; `em`; `embed`; `i`; `iframe`; `img`; `input`; `ins`; `kbd`; `keygen`; `label`; `map`; `mark`; `math`; `meter`; `noscript`; `object`; `output`; `progress`; `q`; `ruby`; `s`; `samp`; `script`; `select`; `small`; `span`; `strong`; `sub`; `sup`; `svg`; `template`; `textarea`; `time`; `u`; `var`; `video`; `wbr`; Text | `area` (if it is a descendant of a `map` element); `link` (if the `itemprop` attribute is present); `meta` (if the `itemprop` attribute is present)
Embedded content | `audio`; `canvas`; `embed`; `iframe`; `img`; `math`; `object`; `svg`; `video` | —
Interactive content* | `a`; `button`; `details`; `embed`; `iframe`; `keygen`; `label`; `select`; `textarea` | `audio` (if the `controls` attribute is present); `img` (if the `usemap` attribute is present); `input` (if the `type` attribute is not in the Hidden state); `object` (if the `usemap` attribute is present); `th` (for sorting interface `th` elements) `video` (if the `controls` attribute is present)
Sectioning roots | `blockquote`; `body`; `details`; `dialog`; `fieldset`; `figure`; `td` | —
Form-associated elements | `button`; `fieldset`; `input`; `keygen`; `label`; `object`; `output`; `select`; `textarea`; `img` | —
Listed elements | `button`; `fieldset`; `input`; `keygen`; `object`; `output`; `select`; `textarea` | —
Submittable elements | `button`; `input`; `keygen`; `object`; `select`; `textarea` | —
Resettable elements | `input`; `keygen`; `output`; `select`; `textarea` | —
Labelable elements | `button`; `input`; `keygen`; `meter`; `output`; `progress`; `select`; `textarea` | —
Reassociateable elements | `button`; `fieldset`; `input`; `keygen`; `label`; `object`; `output`; `select`; `textarea` | —
Palpable content | `a`; `abbr`; `address`; `article`; `aside`; `b`; `bdi`; `bdo`; `blockquote`; `button`; `canvas`; `cite`; `code`; `data`; `details`; `dfn`; `div`; `em`; `embed`; `fieldset`; `figure`; `footer`; `form`; `h1`; `h2`; `h3`; `h4`; `h5`; `h6`; `header`; `hgroup`; `i`; `iframe`; `img`; `ins`; `kbd`; `keygen`; `label`; `main`; `map`; `mark`; `math`; `meter`; `nav`; `object`; `output`; `p`; `pre`; `progress`; `q`; `ruby`; `s`; `samp`; `section`; `select`; `small`; `span`; `strong`; `sub`; `sup`; `svg`; `table`; `textarea`; `time`; `u`; `var`; `video` | `audio` (if the `controls` attribute is present); `dl` (if the element's children include at least one name-value group); `input` (if the `type` attribute is not in the Hidden state); `menu` (if the `type` attribute is in the toolbar state); `ol` (if the element's children include at least one `li` element); `ul` (if the element's children include at least one `li` element); Text that is not inter-element whitespace
Script-supporting elements | `script`; `template` | —

* The `tabindex` attribute can also make any element into interactive content.

### Attributes

This section is non-normative.

List of attributes (excluding event handler content attributes)
Attribute | Element(s) | Description | Value
--- | --- | --- | ---
`abbr` | `th` | Alternative label to use for the header cell when referencing the cell in other contexts | Text*
`accept` | `input` | Hint for expected file type in file upload controls | Set of comma-separated tokens* consisting of valid MIME types with no parameters or `audio/*`, `video/*`, or `image/*`
`accept-charset` | `form` | Character encodings to use for form submission | Ordered set of unique space-separated tokens, ASCII case-insensitive, consisting of labels of ASCII-compatible character encodings*
`accesskey` | HTML elements | Keyboard shortcut to activate or focus element | Ordered set of unique space-separated tokens, case-sensitive, consisting of one Unicode code point in length
`action` | `form` | URL to use for form submission | Valid non-empty URL potentially surrounded by spaces
`allowfullscreen` | `iframe` | Whether to allow the `iframe`'s contents to use `requestFullscreen()` | Boolean attribute
`alt` | `area`; `img`; `input` | Replacement text for use when images are not available | Text*
`async` | `script` | Execute script when available, without blocking | Boolean attribute
`autocomplete` | `form` | Default setting for autofill feature for controls in the form | "`on`"; "`off`"
`autocomplete` | `input`; `select`; `textarea` | Hint for form autofill feature | Autofill field name and related tokens*
`autofocus` | `button`; `input`; `keygen`; `select`; `textarea` | Automatically focus the form control when the page is loaded | Boolean attribute
`autoplay` | `audio`; `video` | Hint that the media resource can be started automatically when the page is loaded | Boolean attribute
`challenge` | `keygen` | String to package with the generated and signed public key | Text
`charset` | `meta` | Character encoding declaration | Encoding label*
`charset` | `script` | Character encoding of the external script resource | Encoding label*
`checked` | `menuitem`; `input` | Whether the command or control is checked | Boolean attribute
`cite` | `blockquote`; `del`; `ins`; `q` | Link to the source of the quotation or more information about the edit | Valid URL potentially surrounded by spaces
`class` | HTML elements | Classes to which the element belongs | Set of space-separated tokens
`cols` | `textarea` | Maximum number of characters per line | Valid non-negative integer greater than zero
`colspan` | `td`; `th` | Number of columns that the cell is to span | Valid non-negative integer greater than zero
`command` | `menuitem` | Command definition | ID*
`content` | `meta` | Value of the element | Text*
`contenteditable` | HTML elements | Whether the element is editable | "`true`"; "`false`"
`contextmenu` | HTML elements | The element's context menu | ID*
`controls` | `audio`; `video` | Show user agent controls | Boolean attribute
`coords` | `area` | Coordinates for the shape to be created in an image map | Valid list of integers*
`crossorigin` | `audio`; `img`; `link`; `script`; `video` | How the element handles crossorigin requests | "`anonymous`"; "`use-credentials`"
`data` | `object` | Address of the resource | Valid non-empty URL potentially surrounded by spaces
`datetime` | `del`; `ins` | Date and (optionally) time of the change | Valid date string with optional time
`datetime` | `time` | Machine-readable value | Valid month string, valid date string, valid yearless date string, valid time string, valid local date and time string, valid time-zone offset string, valid global date and time string, valid week string, valid non-negative integer, or valid duration string
`default` | `menuitem` | Mark the command as being a default command | Boolean attribute
`default` | `track` | Enable the track if no other text track is more suitable | Boolean attribute
`defer` | `script` | Defer script execution | Boolean attribute
`dir` | HTML elements | The text directionality of the element | "`ltr`"; "`rtl`"; "`auto`"
`dir` | `bdo` | The text directionality of the element | "`ltr`"; "`rtl`"
`dirname` | `input`; `textarea` | Name of form field to use for sending the element's directionality in form submission | Text*
`disabled` | `button`; `menuitem`; `fieldset`; `input`; `keygen`; `optgroup`; `option`; `select`; `textarea` | Whether the form control is disabled | Boolean attribute
`download` | `a`; `area` | Whether to download the resource instead of navigating to it, and its file name if so | Text
`draggable` | HTML elements | Whether the element is draggable | "`true`"; "`false`"
`dropzone` | HTML elements | Accepted item types for drag-and-drop | Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of accepted types and drag feedback*
`enctype` | `form` | Form data set encoding type to use for form submission | "`application/x-www-form-urlencoded`"; "`multipart/form-data`"; "`text/plain`"
`for` | `label` | Associate the label with form control | ID*
`for` | `output` | Specifies controls from which the output was calculated | Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs*
`form` | `button`; `fieldset`; `input`; `keygen`; `label`; `object`; `output`; `select`; `textarea` | Associates the control with a `form` element | ID*
`formaction` | `button`; `input` | URL to use for form submission | Valid non-empty URL potentially surrounded by spaces
`formenctype` | `button`; `input` | Form data set encoding type to use for form submission | "`application/x-www-form-urlencoded`"; "`multipart/form-data`"; "`text/plain`"
`formmethod` | `button`; `input` | HTTP method to use for form submission | "`GET`"; "`POST`"
`formnovalidate` | `button`; `input` | Bypass form control validation for form submission | Boolean attribute
`formtarget` | `button`; `input` | Browsing context for form submission | Valid browsing context name or keyword
`headers` | `td`; `th` | The header cells for this cell | Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs*
`height` | `canvas`; `embed`; `iframe`; `img`; `input`; `object`; `video` | Vertical dimension | Valid non-negative integer
`hidden` | HTML elements | Whether the element is relevant | Boolean attribute
`high` | `meter` | Low limit of high range | Valid floating-point number*
`href` | `a`; `area` | Address of the hyperlink | Valid URL potentially surrounded by spaces
`href` | `link` | Address of the hyperlink | Valid non-empty URL potentially surrounded by spaces
`href` | `base` | Document base URL | Valid URL potentially surrounded by spaces
`hreflang` | `a`; `area`; `link` | Language of the linked resource | Valid BCP 47 language tag
`http-equiv` | `meta` | Pragma directive | Text*
`icon` | `menuitem` | Icon for the command | Valid non-empty URL potentially surrounded by spaces
`id` | HTML elements | The element's ID | Text*
`inputmode` | `input`; `textarea` | Hint for selecting an input modality | "`verbatim`"; "`latin`"; "`latin-name`"; "`latin-prose`"; "`full-width-latin`"; "`kana`"; "`kana-name`"; "`katakana`"; "`numeric`"; "`tel`"; "`email`"; "`url`"
`ismap` | `img` | Whether the image is a server-side image map | Boolean attribute
`itemid` | HTML elements | Global identifier for a microdata item | Valid URL potentially surrounded by spaces
`itemprop` | HTML elements | Property names of a microdata item | Unordered set of unique space-separated tokens, case-sensitive, consisting of valid absolute URLs, defined property names, or text*
`itemref` | HTML elements | Referenced elements | Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs*
`itemscope` | HTML elements | Introduces a microdata item | Boolean attribute
`itemtype` | HTML elements | Item types of a microdata item | Unordered set of unique space-separated tokens, case-sensitive, consisting of valid absolute URL*
`keytype` | `keygen` | The type of cryptographic key to generate | Text*
`kind` | `track` | The type of text track | "`subtitles`"; "`captions`"; "`descriptions`"; "`chapters`"; "`metadata`"
`label` | `menuitem`; `menu`; `optgroup`; `option`; `track` | User-visible label | Text
`lang` | HTML elements | Language of the element | Valid BCP 47 language tag or the empty string
`list` | `input` | List of autocomplete options | ID*
`loop` | `audio`; `video` | Whether to loop the media resource | Boolean attribute
`low` | `meter` | High limit of low range | Valid floating-point number*
`manifest` | `html` | Application cache manifest | Valid non-empty URL potentially surrounded by spaces
`max` | `input` | Maximum value | Varies*
`max` | `meter`; `progress` | Upper bound of range | Valid floating-point number*
`maxlength` | `input`; `textarea` | Maximum length of value | Valid non-negative integer
`media` | `link`; `style` | Applicable media | Valid media query list
`mediagroup` | `audio`; `video` | Groups media elements together with an implicit `MediaController` | Text
`menu` | `button` | Specifies the element's designated pop-up menu | ID*
`method` | `form` | HTTP method to use for form submission | "`GET`"; "`POST`"; "`dialog`"
`min` | `input` | Minimum value | Varies*
`min` | `meter` | Lower bound of range | Valid floating-point number*
`minlength` | `input`; `textarea` | Minimum length of value | Valid non-negative integer
`multiple` | `input`; `select` | Whether to allow multiple values | Boolean attribute
`muted` | `audio`; `video` | Whether to mute the media resource by default | Boolean attribute
`name` | `button`; `fieldset`; `input`; `keygen`; `output`; `select`; `textarea` | Name of form control to use for form submission and in the `form.elements` API | Text*
`name` | `form` | Name of form to use in the `document.forms` API | Text*
`name` | `iframe`; `object` | Name of nested browsing context | Valid browsing context name or keyword
`name` | `map` | Name of image map to reference from the `usemap` attribute | Text*
`name` | `meta` | Metadata name | Text*
`name` | `param` | Name of parameter | Text
`novalidate` | `form` | Bypass form control validation for form submission | Boolean attribute
`open` | `details` | Whether the details are visible | Boolean attribute
`open` | `dialog` | Whether the dialog box is showing | Boolean attribute
`optimum` | `meter` | Optimum value in gauge | Valid floating-point number*
`pattern` | `input` | Pattern to be matched by the form control's value | Regular expression matching the JavaScript Pattern production
`ping` | `a`; `area` | URLs to ping | Set of space-separated tokens consisting of valid non-empty URLs
`placeholder` | `input`; `textarea` | User-visible label to be placed within the form control | Text*
`poster` | `video` | Poster frame to show prior to video playback | Valid non-empty URL potentially surrounded by spaces
`preload` | `audio`; `video` | Hints how much buffering the media resource will likely need | "`none`"; "`metadata`"; "`auto`"
`radiogroup` | `menuitem` | Name of group of commands to treat as a radio button group | Text
`readonly` | `input`; `textarea` | Whether to allow the value to be edited by the user | Boolean attribute
`rel` | `a`; `area`; `link` | Relationship between the document containing the hyperlink and the destination resource | Set of space-separated tokens*
`required` | `input`; `select`; `textarea` | Whether the control is required for form submission | Boolean attribute
`reversed` | `ol` | Number the list backwards | Boolean attribute
`rows` | `textarea` | Number of lines to show | Valid non-negative integer greater than zero
`rowspan` | `td`; `th` | Number of rows that the cell is to span | Valid non-negative integer
`sandbox` | `iframe` | Security rules for nested content | Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of "`allow-forms`", "`allow-pointer-lock`", "`allow-popups`", "`allow-same-origin`", "`allow-scripts` and "`allow-top-navigation`"
`spellcheck` | HTML elements | Whether the element is to have its spelling and grammar checked | "`true`"; "`false`"
`scope` | `th` | Specifies which cells the header cell applies to | "`row`"; "`col`"; "`rowgroup`"; "`colgroup`"
`scoped` | `style` | Whether the styles apply to the entire document or just the parent subtree | Boolean attribute
`seamless` | `iframe` | Whether to apply the document's styles to the nested content | Boolean attribute
`selected` | `option` | Whether the option is selected by default | Boolean attribute
`shape` | `area` | The kind of shape to be created in an image map | "`circle`"; "`default`"; "`poly`"; "`rect`"
`size` | `input`; `select` | Size of the control | Valid non-negative integer greater than zero
`sizes` | `link` | Sizes of the icons (for `rel`="`icon`") | Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of sizes*
`sortable` | `table` | Enables a sorting interface for the table | Boolean attribute
`sorted` | `th` | Column sort direction and ordinality | Set of space-separated tokens, ASCII case-insensitive, consisting of neither, one, or both of "`reversed`" and a valid non-negative integer greater than zero
`span` | `col`; `colgroup` | Number of columns spanned by the element | Valid non-negative integer greater than zero
`src` | `audio`; `embed`; `iframe`; `img`; `input`; `script`; `source`; `track`; `video` | Address of the resource | Valid non-empty URL potentially surrounded by spaces
`srcdoc` | `iframe` | A document to render in the `iframe` | The source of an `iframe` `srcdoc` document*
`srclang` | `track` | Language of the text track | Valid BCP 47 language tag
`srcset` | `img` | Images to use in different situations (e.g. high-resolution displays, small monitors, etc) | Comma-separated list of image candidate strings
`start` | `ol` | Ordinal value of the first item | Valid integer
`step` | `input` | Granularity to be matched by the form control's value | Valid floating-point number greater than zero, or "`any`"
`style` | HTML elements | Presentational and formatting instructions | CSS declarations*
`tabindex` | HTML elements | Whether the element is focusable, and the relative order of the element for the purposes of sequential focus navigation | Valid integer
`target` | `a`; `area` | Browsing context for hyperlink navigation | Valid browsing context name or keyword
`target` | `base` | Default browsing context for hyperlink navigation and form submission | Valid browsing context name or keyword
`target` | `form` | Browsing context for form submission | Valid browsing context name or keyword
`title` | HTML elements | Advisory information for the element | Text
`title` | `abbr`; `dfn` | Full term or expansion of abbreviation | Text
`title` | `input` | Description of pattern (when used with `pattern` attribute) | Text
`title` | `menuitem` | Hint describing the command | Text
`title` | `link` | Title of the link | Text
`title` | `link`; `style` | Alternative style sheet set name | Text
`translate` | HTML elements | Whether the element is to be translated when the page is localized | "`yes`"; "`no`"
`type` | `a`; `area`; `link` | Hint for the type of the referenced resource | Valid MIME type
`type` | `button` | Type of button | "`submit`"; "`reset`"; "`button`"; "`menu`"
`type` | `embed`; `object`; `script`; `source`; `style` | Type of embedded resource | Valid MIME type
`type` | `input` | Type of form control | `input` type keyword
`type` | `menu` | Type of menu | "`popup`"; "`toolbar`"
`type` | `menuitem` | Type of command | "`command`"; "`checkbox`"; "`radio`"
`type` | `ol` | Kind of list marker | "`1`"; "`a`"; "`A`"; "`i`"; "`I`"
`typemustmatch` | `object` | Whether the `type` attribute and the Content-Type value need to match for the resource to be used | Boolean attribute
`usemap` | `img`; `object` | Name of image map to use | Valid hash-name reference*
`value` | `button`; `option` | Value to be used for form submission | Text
`value` | `data` | Machine-readable value | Text*
`value` | `input` | Value of the form control | Varies*
`value` | `li` | Ordinal value of the list item | Valid integer
`value` | `meter`; `progress` | Current value of the element | Valid floating-point number
`value` | `param` | Value of parameter | Text
`width` | `canvas`; `embed`; `iframe`; `img`; `input`; `object`; `video` | Horizontal dimension | Valid non-negative integer
`wrap` | `textarea` | How the value of the form control is to be wrapped for form submission | "`soft`"; "`hard`"

An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.

List of event handler content attributes
Attribute | Element(s) | Description | Value
--- | --- | --- | ---
`onabort` | HTML elements | `abort` event handler | Event handler content attribute
`onautocomplete` | HTML elements | `autocomplete` event handler | Event handler content attribute
`onautocompleteerror` | HTML elements | `autocompleteerror` event handler | Event handler content attribute
`onafterprint` | `body` | `afterprint` event handler for `Window` object | Event handler content attribute
`onbeforeprint` | `body` | `beforeprint` event handler for `Window` object | Event handler content attribute
`onbeforeunload` | `body` | `beforeunload` event handler for `Window` object | Event handler content attribute
`onblur` | HTML elements | `blur` event handler | Event handler content attribute
`oncancel` | HTML elements | `cancel` event handler | Event handler content attribute
`oncanplay` | HTML elements | `canplay` event handler | Event handler content attribute
`oncanplaythrough` | HTML elements | `canplaythrough` event handler | Event handler content attribute
`onchange` | HTML elements | `change` event handler | Event handler content attribute
`onclick` | HTML elements | `click` event handler | Event handler content attribute
`onclose` | HTML elements | `close` event handler | Event handler content attribute
`oncontextmenu` | HTML elements | `contextmenu` event handler | Event handler content attribute
`oncuechange` | HTML elements | `cuechange` event handler | Event handler content attribute
`ondblclick` | HTML elements | `dblclick` event handler | Event handler content attribute
`ondrag` | HTML elements | `drag` event handler | Event handler content attribute
`ondragend` | HTML elements | `dragend` event handler | Event handler content attribute
`ondragenter` | HTML elements | `dragenter` event handler | Event handler content attribute
`ondragexit` | HTML elements | `dragexit` event handler | Event handler content attribute
`ondragleave` | HTML elements | `dragleave` event handler | Event handler content attribute
`ondragover` | HTML elements | `dragover` event handler | Event handler content attribute
`ondragstart` | HTML elements | `dragstart` event handler | Event handler content attribute
`ondrop` | HTML elements | `drop` event handler | Event handler content attribute
`ondurationchange` | HTML elements | `durationchange` event handler | Event handler content attribute
`onemptied` | HTML elements | `emptied` event handler | Event handler content attribute
`onended` | HTML elements | `ended` event handler | Event handler content attribute
`onerror` | HTML elements | `error` event handler | Event handler content attribute
`onfocus` | HTML elements | `focus` event handler | Event handler content attribute
`onhashchange` | `body` | `hashchange` event handler for `Window` object | Event handler content attribute
`oninput` | HTML elements | `input` event handler | Event handler content attribute
`oninvalid` | HTML elements | `invalid` event handler | Event handler content attribute
`onkeydown` | HTML elements | `keydown` event handler | Event handler content attribute
`onkeypress` | HTML elements | `keypress` event handler | Event handler content attribute
`onkeyup` | HTML elements | `keyup` event handler | Event handler content attribute
`onlanguagechange` | `body` | `languagechange` event handler for `Window` object | Event handler content attribute
`onload` | HTML elements | `load` event handler | Event handler content attribute
`onloadeddata` | HTML elements | `loadeddata` event handler | Event handler content attribute
`onloadedmetadata` | HTML elements | `loadedmetadata` event handler | Event handler content attribute
`onloadstart` | HTML elements | `loadstart` event handler | Event handler content attribute
`onmessage` | `body` | `message` event handler for `Window` object | Event handler content attribute
`onmousedown` | HTML elements | `mousedown` event handler | Event handler content attribute
`onmouseenter` | HTML elements | `mouseenter` event handler | Event handler content attribute
`onmouseleave` | HTML elements | `mouseleave` event handler | Event handler content attribute
`onmousemove` | HTML elements | `mousemove` event handler | Event handler content attribute
`onmouseout` | HTML elements | `mouseout` event handler | Event handler content attribute
`onmouseover` | HTML elements | `mouseover` event handler | Event handler content attribute
`onmouseup` | HTML elements | `mouseup` event handler | Event handler content attribute
`onmousewheel` | HTML elements | `mousewheel` event handler | Event handler content attribute
`onoffline` | `body` | `offline` event handler for `Window` object | Event handler content attribute
`ononline` | `body` | `online` event handler for `Window` object | Event handler content attribute
`onpagehide` | `body` | `pagehide` event handler for `Window` object | Event handler content attribute
`onpageshow` | `body` | `pageshow` event handler for `Window` object | Event handler content attribute
`onpause` | HTML elements | `pause` event handler | Event handler content attribute
`onplay` | HTML elements | `play` event handler | Event handler content attribute
`onplaying` | HTML elements | `playing` event handler | Event handler content attribute
`onpopstate` | `body` | `popstate` event handler for `Window` object | Event handler content attribute
`onprogress` | HTML elements | `progress` event handler | Event handler content attribute
`onratechange` | HTML elements | `ratechange` event handler | Event handler content attribute
`onreset` | HTML elements | `reset` event handler | Event handler content attribute
`onresize` | HTML elements | `resize` event handler | Event handler content attribute
`onscroll` | HTML elements | `scroll` event handler | Event handler content attribute
`onseeked` | HTML elements | `seeked` event handler | Event handler content attribute
`onseeking` | HTML elements | `seeking` event handler | Event handler content attribute
`onselect` | HTML elements | `select` event handler | Event handler content attribute
`onshow` | HTML elements | `show` event handler | Event handler content attribute
`onsort` | HTML elements | `sort` event handler | Event handler content attribute
`onstalled` | HTML elements | `stalled` event handler | Event handler content attribute
`onstorage` | `body` | `storage` event handler for `Window` object | Event handler content attribute
`onsubmit` | HTML elements | `submit` event handler | Event handler content attribute
`onsuspend` | HTML elements | `suspend` event handler | Event handler content attribute
`ontimeupdate` | HTML elements | `timeupdate` event handler | Event handler content attribute
`ontoggle` | HTML elements | `toggle` event handler | Event handler content attribute
`onunload` | `body` | `unload` event handler for `Window` object | Event handler content attribute
`onvolumechange` | HTML elements | `volumechange` event handler | Event handler content attribute
`onwaiting` | HTML elements | `waiting` event handler | Event handler content attribute

### Element Interfaces

This section is non-normative.

List of interfaces for elements
Element(s) | Interface(s)
--- | ---
`a` | `HTMLAnchorElement` : `HTMLElement`
`abbr` | `HTMLElement`
`address` | `HTMLElement`
`area` | `HTMLAreaElement` : `HTMLElement`
`article` | `HTMLElement`
`aside` | `HTMLElement`
`audio` | `HTMLAudioElement` : `HTMLMediaElement` : `HTMLElement`
`b` | `HTMLElement`
`base` | `HTMLBaseElement` : `HTMLElement`
`bdi` | `HTMLElement`
`bdo` | `HTMLElement`
`blockquote` | `HTMLQuoteElement` : `HTMLElement`
`body` | `HTMLBodyElement` : `HTMLElement`
`br` | `HTMLBRElement` : `HTMLElement`
`button` | `HTMLButtonElement` : `HTMLElement`
`canvas` | `HTMLCanvasElement` : `HTMLElement`
`caption` | `HTMLTableCaptionElement` : `HTMLElement`
`cite` | `HTMLElement`
`code` | `HTMLElement`
`col` | `HTMLTableColElement` : `HTMLElement`
`colgroup` | `HTMLTableColElement` : `HTMLElement`
`menuitem` | `HTMLMenuItemElement` : `HTMLElement`
`data` | `HTMLDataElement` : `HTMLElement`
`datalist` | `HTMLDataListElement` : `HTMLElement`
`dd` | `HTMLElement`
`del` | `HTMLModElement` : `HTMLElement`
`details` | `HTMLDetailsElement` : `HTMLElement`
`dfn` | `HTMLElement`
`dialog` | `HTMLDialogElement` : `HTMLElement`
`div` | `HTMLDivElement` : `HTMLElement`
`dl` | `HTMLDListElement` : `HTMLElement`
`dt` | `HTMLElement`
`em` | `HTMLElement`
`embed` | `HTMLEmbedElement` : `HTMLElement`
`fieldset` | `HTMLFieldSetElement` : `HTMLElement`
`figcaption` | `HTMLElement`
`figure` | `HTMLElement`
`footer` | `HTMLElement`
`form` | `HTMLFormElement` : `HTMLElement`
`h1` | `HTMLHeadingElement` : `HTMLElement`
`h2` | `HTMLHeadingElement` : `HTMLElement`
`h3` | `HTMLHeadingElement` : `HTMLElement`
`h4` | `HTMLHeadingElement` : `HTMLElement`
`h5` | `HTMLHeadingElement` : `HTMLElement`
`h6` | `HTMLHeadingElement` : `HTMLElement`
`head` | `HTMLHeadElement` : `HTMLElement`
`header` | `HTMLElement`
`hgroup` | `HTMLElement`
`hr` | `HTMLHRElement` : `HTMLElement`
`html` | `HTMLHtmlElement` : `HTMLElement`
`i` | `HTMLElement`
`iframe` | `HTMLIFrameElement` : `HTMLElement`
`img` | `HTMLImageElement` : `HTMLElement`
`input` | `HTMLInputElement` : `HTMLElement`
`ins` | `HTMLModElement` : `HTMLElement`
`kbd` | `HTMLElement`
`keygen` | `HTMLKeygenElement` : `HTMLElement`
`label` | `HTMLLabelElement` : `HTMLElement`
`legend` | `HTMLLegendElement` : `HTMLElement`
`li` | `HTMLLIElement` : `HTMLElement`
`link` | `HTMLLinkElement` : `HTMLElement`
`main` | `HTMLElement`
`map` | `HTMLMapElement` : `HTMLElement`
`mark` | `HTMLElement`
`menu` | `HTMLMenuElement` : `HTMLElement`
`meta` | `HTMLMetaElement` : `HTMLElement`
`meter` | `HTMLMeterElement` : `HTMLElement`
`nav` | `HTMLElement`
`noscript` | `HTMLElement`
`object` | `HTMLObjectElement` : `HTMLElement`
`ol` | `HTMLOListElement` : `HTMLElement`
`optgroup` | `HTMLOptGroupElement` : `HTMLElement`
`option` | `HTMLOptionElement` : `HTMLElement`
`output` | `HTMLOutputElement` : `HTMLElement`
`p` | `HTMLParagraphElement` : `HTMLElement`
`param` | `HTMLParamElement` : `HTMLElement`
`pre` | `HTMLPreElement` : `HTMLElement`
`progress` | `HTMLProgressElement` : `HTMLElement`
`q` | `HTMLQuoteElement` : `HTMLElement`
`rp` | `HTMLElement`
`rt` | `HTMLElement`
`ruby` | `HTMLElement`
`s` | `HTMLElement`
`samp` | `HTMLElement`
`script` | `HTMLScriptElement` : `HTMLElement`
`section` | `HTMLElement`
`select` | `HTMLSelectElement` : `HTMLElement`
`small` | `HTMLElement`
`source` | `HTMLSourceElement` : `HTMLElement`
`span` | `HTMLSpanElement` : `HTMLElement`
`strong` | `HTMLElement`
`style` | `HTMLStyleElement` : `HTMLElement`
`sub` | `HTMLElement`
`summary` | `HTMLElement`
`sup` | `HTMLElement`
`table` | `HTMLTableElement` : `HTMLElement`
`tbody` | `HTMLTableSectionElement` : `HTMLElement`
`td` | `HTMLTableDataCellElement` : `HTMLTableCellElement` : `HTMLElement`
`template` | `HTMLTemplateElement` : `HTMLElement`
`textarea` | `HTMLTextAreaElement` : `HTMLElement`
`tfoot` | `HTMLTableSectionElement` : `HTMLElement`
`th` | `HTMLTableHeaderCellElement` : `HTMLTableCellElement` : `HTMLElement`
`thead` | `HTMLTableSectionElement` : `HTMLElement`
`time` | `HTMLTimeElement` : `HTMLElement`
`title` | `HTMLTitleElement` : `HTMLElement`
`tr` | `HTMLTableRowElement` : `HTMLElement`
`track` | `HTMLTrackElement` : `HTMLElement`
`u` | `HTMLElement`
`ul` | `HTMLUListElement` : `HTMLElement`
`var` | `HTMLElement`
`video` | `HTMLVideoElement` : `HTMLMediaElement` : `HTMLElement`
`wbr` | `HTMLElement`

### All Interfaces

This section is non-normative.

INSERT INTERFACES HERE

### Events

This section is non-normative.

List of events
Event | Interface | Interesting targets | Description
--- | --- | --- | ---
`abort` | `Event` | `Window` | Fired at the `Window` when the download was aborted by the user
`autocomplete` | `Event` | `form` elements | Fired at a `form` element when it is autofilled
`autocompleteerror` | `Event` | `form` elements | Fired at a `form` element when a bulk autofill fails
`DOMContentLoaded` | `Event` | `Document` | Fired at the `Document` once the parser has finished
`afterprint` | `Event` | `Window` | Fired at the `Window` after printing
`afterscriptexecute` | `Event` | `script` elements | Fired at `script` elements after the script runs (just before the corresponding `load` event)
`beforeprint` | `Event` | `Window` | Fired at the `Window` before printing
`beforescriptexecute` | `Event` | `script` elements | Fired at `script` elements just before the script runs; canceling the event cancels the running of the script
`beforeunload` | `BeforeUnloadEvent` | `Window` | Fired at the `Window` when the page is about to be unloaded, in case the page would like to show a warning prompt
`blur` | `Event` | `Window`, elements | Fired at nodes when they stop being focused
`cancel` | `Event` | `dialog` elements | Fired at `dialog` elements when they are canceled by the user (e.g. by pressing the Escape key)
`change` | `Event` | Form controls | Fired at controls when the user commits a value change (see also the `change` event of `input` elements)
`click` | `MouseEvent` | Elements | Normally a mouse event; also synthetically fired at an element before its activation behaviour is run, when an element is activated from a non-pointer input device (e.g. a keyboard)
`close` | `Event` | `dialog` elements, `WebSocket` | Fired at `dialog` elements when they are closed, and at `WebSocket` elements when the connection is terminated
`connect` | `MessageEvent` | `SharedWorkerGlobalScope` | Fired at a shared worker's global scope when a new client connects
`contextmenu` | `Event` | Elements | Fired at elements when the user requests their context menu
`error` | `Event` | Global scope objects, `Worker` objects, elements, networking-related objects | Fired when unexpected errors occur (e.g. networking errors, script errors, decoding errors)
`focus` | `Event` | `Window`, elements | Fired at nodes gaining focus
`hashchange` | `HashChangeEvent` | `Window` | Fired at the `Window` when the fragment identifier part of the document's address changes
`input` | `Event` | Form controls | Fired at controls when the user changes the value (see also the `change` event of `input` elements)
`invalid` | `Event` | Form controls | Fired at controls during form validation if they do not satisfy their constraints
`languagechange` | `Event` | Global scope objects | Fired at the global scope object when the user's preferred languages change
`load` | `Event` | `Window`, elements | Fired at the `Window` when the document has finished loading; fired at an element containing a resource (e.g. `img`, `embed`) when its resource has finished loading
`loadend` | `Event` or `ProgressEvent` | `img` elements | Fired at `img` elements after a successful load
`loadstart` | `ProgressEvent` | `img` elements | Fired at `img` elements when a load begins (see also media element events)
`message` | `MessageEvent` | `Window`, `EventSource`, `WebSocket`, `MessagePort`, `BroadcastChannel`, `DedicatedWorkerGlobalScope`, `Worker` | Fired at an object when it receives a message
`offline` | `Event` | Global scope objects | Fired at the global scope object when the network connections fails
`online` | `Event` | Global scope objects | Fired at the global scope object when the network connections returns
`open` | `Event` | `EventSource`, `WebSocket` | Fired at networking-related objects when a connection is established
`pagehide` | `PageTransitionEvent` | `Window` | Fired at the `Window` when the page's entry in the session history stops being the current entry
`pageshow` | `PageTransitionEvent` | `Window` | Fired at the `Window` when the page's entry in the session history becomes the current entry
`popstate` | `PopStateEvent` | `Window` | Fired at the `Window` when the user navigates the session history
`progress` | `ProgressEvent` | `img` elements | Fired at `img` elements during a CORS-same-origin image load (see also media element events)
`readystatechange` | `Event` | `Document` | Fired at the `Document` when it finishes parsing and again when all its subresources have finished loading
`reset` | `Event` | `form` elements | Fired at a `form` element when it is reset
`select` | `Event` | Form controls | Fired at form controls when their text selection is adjusted (whether by an API or by the user)
`show` | `RelatedEvent` | `menu` elements | Fired at a `menu` element when it is shown as a context menu
`sort` | `Event` | `table` elements | Fired at `table` elements before it is sorted; canceling the event cancels the sorting of the table
`storage` | `StorageEvent` | `Window` | Fired at `Window` event when the corresponding `localStorage` or `sessionStorage` storage areas change
`submit` | `Event` | `form` elements | Fired at a `form` element when it is submitted
`toggle` | `Event` | `details` element | Fired at `details` elements when they open or close
`unload` | `Event` | `Window` | Fired at the `Window` object when the page is going away

See also media element events, application cache events, and drag-and-drop events.

### MIME Types

This section is non-normative.

The following MIME types are mentioned in this specification:

`application/atom+xml`
  Atom [ATOM]
`application/ecmascript`
  JavaScript (legacy type) [ECMA262]
`application/javascript`
  JavaScript (legacy type) [ECMA262]
`application/json`
  JSON [JSON]
`application/x-ecmascript`
  JavaScript (legacy type) [ECMA262]
`application/x-javascript`
  JavaScript (legacy type) [ECMA262]
`application/octet-stream`
  Generic binary data [RFC2046]
`application/microdata+json`
  Microdata as JSON
`application/rss+xml`
  RSS
`application/x-www-form-urlencoded`
  Form submission
`application/xhtml+xml`
  HTML
`application/xml`
  XML [XML] [RFC7303]
`image/gif`
  GIF images [GIF]
`image/jpeg`
  JPEG images [JPEG]
`image/png`
  PNG images [JPEG]
`image/svg+xml`
  SVG images [JPEG]
`multipart/form-data`
  Form submission [RFC2388]
`multipart/mixed`
  Generic mixed content [RFC2046]
`multipart/x-mixed-replace`
  Streaming server push
`text/cache-manifest`
  Offline application cache manifests
`text/css`
  CSS [CSS]
`text/ecmascript`
  JavaScript (legacy type) [ECMA262]
`text/event-stream`
  Server-sent event streams
`text/javascript`
  JavaScript [ECMA262]
`text/javascript1.0`
  JavaScript (legacy type) [ECMA262]
`text/javascript1.1`
  JavaScript (legacy type) [ECMA262]
`text/javascript1.2`
  JavaScript (legacy type) [ECMA262]
`text/javascript1.3`
  JavaScript (legacy type) [ECMA262]
`text/javascript1.4`
  JavaScript (legacy type) [ECMA262]
`text/javascript1.5`
  JavaScript (legacy type) [ECMA262]
`text/jscript`
  JavaScript (legacy type) [ECMA262]
`text/livescript`
  JavaScript (legacy type) [ECMA262]
`text/plain`
  Generic plain text [RFC2046]
`text/html`
  HTML
`text/ping`
  Hyperlink auditing
`text/uri-list`
  List of URLs [RFC2483]
`text/vcard`
  vCard [RFC6350]
`text/x-ecmascript`
  JavaScript (legacy type) [ECMA262]
`text/x-javascript`
  JavaScript (legacy type) [ECMA262]
`text/xml`
  XML [XML] [RFC7303]
`video/mp4`
  MPEG-4 video [RFC4337]
`video/mpeg`
  MPEG video [RFC2046]