The following sections only cover conforming elements and features.
This section is non-normative.
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.
This section is non-normative.
* The tabindex attribute can also
  make any element into interactive content.
This section is non-normative.
| 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/*, orimage/* | 
| 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 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 userequestFullscreen() | 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 formelement | 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 | 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.elementsAPI | Text* | 
| name | form | Name of form to use in the document.formsAPI | 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 usemapattribute | Text* | 
| name | meta | Metadata name | Text* | 
| name | param | Name of parameter | Text | 
| nonce | script;style | Cryptographic nonce used in Content Security Policy checks [CSP] | 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 | 
| 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-modals",
          "allow-pointer-lock",
          "allow-popups",
          "allow-popups-to-escape-sandbox",
          "allow-same-origin",
          "allow-scriptsand
          "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 iframesrcdocdocument* | 
| 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 patternattribute) | 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 | inputtype 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 typeattribute 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.
This section is non-normative.
This section is non-normative.
AbstractWorker
   ApplicationCache
   AudioTrack
   AudioTrackList
   AutocompleteErrorEvent
   BarProp
   BeforeUnloadEvent
   BroadcastChannel
   CanvasDrawingStyles
   CanvasGradient
   CanvasPathMethods
   CanvasPattern
   CanvasProxy
   CanvasRenderingContext2D
   CloseEvent
   DOMElementMap
   DOMStringMap
   DataTransfer
   DataTransferItem
   DataTransferItemList
   DedicatedWorkerGlobalScope
   Document, partial
   DragEvent
   DrawingStyle
   ElementContentEditable
   ErrorEvent
   EventSource
   External
   GlobalEventHandlers
   HTMLAllCollection
   HTMLAnchorElement, partial
   HTMLAppletElement
   HTMLAreaElement, partial
   HTMLAudioElement
   HTMLBRElement, partial
   HTMLBaseElement
   HTMLBodyElement, partial
   HTMLButtonElement
   HTMLCanvasElement
   HTMLDListElement, partial
   HTMLDataElement
   HTMLDataListElement
   HTMLDetailsElement
   HTMLDialogElement
   HTMLDirectoryElement
   HTMLDivElement, partial
   HTMLElement
   HTMLEmbedElement, partial
   HTMLFieldSetElement
   HTMLFontElement
   HTMLFormControlsCollection
   HTMLFormElement
   HTMLFrameElement
   HTMLFrameSetElement
   HTMLHRElement, partial
   HTMLHeadElement
   HTMLHeadingElement, partial
   HTMLHtmlElement, partial
   HTMLIFrameElement, partial
   HTMLImageElement, partial
   HTMLInputElement, partial
   HTMLKeygenElement
   HTMLLIElement, partial
   HTMLLabelElement
   HTMLLegendElement, partial
   HTMLLinkElement, partial
   HTMLMapElement
   HTMLMarqueeElement
   HTMLMediaElement
   HTMLMenuElement, partial
   HTMLMenuItemElement
   HTMLMetaElement, partial
   HTMLMeterElement
   HTMLModElement
   HTMLOListElement, partial
   HTMLObjectElement, partial
   HTMLOptGroupElement
   HTMLOptionElement
   HTMLOptionsCollection
   HTMLOutputElement
   HTMLParagraphElement, partial
   HTMLParamElement, partial
   HTMLPictureElement
   HTMLPreElement, partial
   HTMLProgressElement
   HTMLPropertiesCollection
   HTMLQuoteElement
   HTMLScriptElement, partial
   HTMLSelectElement
   HTMLSourceElement, partial
   HTMLSpanElement
   HTMLStyleElement
   HTMLTableCaptionElement, partial
   HTMLTableCellElement, partial
   HTMLTableColElement, partial
   HTMLTableDataCellElement, partial
   HTMLTableElement, partial
   HTMLTableHeaderCellElement
   HTMLTableRowElement, partial
   HTMLTableSectionElement, partial
   HTMLTemplateElement
   HTMLTextAreaElement
   HTMLTimeElement
   HTMLTitleElement
   HTMLTrackElement
   HTMLUListElement, partial
   HTMLUnknownElement
   HTMLVideoElement
   HashChangeEvent
   History
   ImageBitmap
   ImageBitmapFactories
   ImageData
   Location
   MediaController
   MediaError
   MessageChannel
   MessageEvent
   MessagePort
   MimeType
   MimeTypeArray
   MouseEvent, partial
   Navigator
   NavigatorContentUtils
   NavigatorID
   NavigatorLanguage
   NavigatorOnLine
   NavigatorPlugins
   NavigatorStorageUtils
   PageTransitionEvent
   Path2D
   Plugin
   PluginArray
   PopStateEvent
   PropertyNodeList
   RadioNodeList
   RelatedEvent
   SharedWorker
   SharedWorkerGlobalScope
   Storage
   StorageEvent
   TextMetrics
   TextTrack
   TextTrackCue
   TextTrackCueList
   TextTrackList
   TimeRanges
   Touch, partial
   TrackEvent
   ValidityState
   VideoTrack
   VideoTrackList
   WebSocket
   Window, partial
   WindowBase64
   WindowEventHandlers
   WindowLocalStorage
   WindowModal
   WindowSessionStorage
   WindowTimers
   Worker
   WorkerGlobalScope
   WorkerLocation
   WorkerNavigator
   XMLDocument, partial
  This section is non-normative.
| Event | Interface | Interesting targets | Description | 
|---|---|---|---|
| abort | Event | Window | Fired at the Windowwhen the download was aborted by the user | 
| autocomplete | Event | formelements | Fired at a formelement when it is autofilled | 
| autocompleteerror | Event | formelements | Fired at a formelement when a bulk autofill fails | 
| DOMContentLoaded | Event | Document | Fired at the Documentonce the parser has finished | 
| afterprint | Event | Window | Fired at the Windowafter printing | 
| afterscriptexecute | Event | scriptelements | Fired at scriptelements after the script runs (just before the correspondingloadevent) | 
| beforeprint | Event | Window | Fired at the Windowbefore printing | 
| beforescriptexecute | Event | scriptelements | Fired at scriptelements just before the script runs; canceling the event cancels the running of the script | 
| beforeunload | BeforeUnloadEvent | Window | Fired at the Windowwhen 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 | dialogelements | Fired at dialogelements 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 changeevent ofinputelements) | 
| 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 | dialogelements,WebSocket | Fired at dialogelements when they are closed, and atWebSocketelements 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, Workerobjects, 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 Windowwhen 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 changeevent ofinputelements) | 
| 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 Windowwhen the document has finished loading; fired at an element containing a resource (e.g.img,embed) when its resource has finished loading | 
| loadend | EventorProgressEvent | imgelements | Fired at imgelements after a successful load | 
| loadstart | ProgressEvent | imgelements | Fired at imgelements 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 Windowwhen the page's entry in the session history stops being the current entry | 
| pageshow | PageTransitionEvent | Window | Fired at the Windowwhen the page's entry in the session history becomes the current entry | 
| popstate | PopStateEvent | Window | Fired at the Windowwhen the user navigates the session history | 
| progress | ProgressEvent | imgelements | Fired at imgelements during a CORS-same-origin image load (see also media element events) | 
| readystatechange | Event | Document | Fired at the Documentwhen it finishes parsing and again when all its subresources have finished loading | 
| reset | Event | formelements | Fired at a formelement 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 | menuelements | Fired at a menuelement when it is shown as a context menu | 
| sort | Event | tableelements | Fired at tableelements before it is sorted; canceling the event cancels the sorting of the table | 
| storage | StorageEvent | Window | Fired at Windowevent when the correspondinglocalStorageorsessionStoragestorage areas change | 
| submit | Event | formelements | Fired at a formelement when it is submitted | 
| toggle | Event | detailselement | Fired at detailselements when they open or close | 
| unload | Event | Window | Fired at the Windowobject when the page is going away | 
See also media element events, application cache events, and drag-and-drop events.
This section is non-normative.
The following MIME types are mentioned in this specification:
application/atom+xmlapplication/ecmascriptapplication/javascriptapplication/jsonapplication/x-ecmascriptapplication/x-javascriptapplication/octet-streamapplication/microdata+jsonapplication/rss+xmlapplication/x-www-form-urlencodedapplication/xhtml+xmlapplication/xmlimage/gifimage/jpegimage/pngimage/svg+xmlmultipart/form-datamultipart/mixedmultipart/x-mixed-replacetext/cache-manifesttext/csstext/ecmascripttext/event-streamtext/javascripttext/javascript1.0text/javascript1.1text/javascript1.2text/javascript1.3text/javascript1.4text/javascript1.5text/jscripttext/jsontext/livescripttext/plaintext/htmltext/uri-listtext/vcardtext/vtttext/x-ecmascripttext/x-javascripttext/xmlvideo/mp4video/mpeg