A vocabulary and associated APIs for HTML and XHTML
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.
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/*, or image/*
     | 
 accept-charset
      |  form
      | Character encodings to use for form submission | Ordered set of unique space-separated tokens, ASCII case-insensitive, consisting of names 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 | 
 alt
      |  area;
          img;
          input
      | Replacement text for use when images are not available | Text* | 
 async
      |  script
      | Execute script asynchronously | 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 | 
 border
      |  table
      |  Explicit indication that the table element is not being used for layout purposes
      |  The empty string, or "1"
     | 
 challenge
      |  keygen
      | String to package with the generated and signed public key | Text | 
 charset
      |  meta
      | Character encoding declaration | Encoding name* | 
 charset
      |  script
      | Character encoding of the external script resource | Encoding name* | 
 checked
      |  input
      | Whether the 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 | 
 content
      |  meta
      | Value of the element | Text* | 
 contenteditable
      | HTML elements | Whether the element is editable |  "true"; "false"
     | 
 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
      |  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"
     | 
 dirname
      |  input;
          textarea
      | Name of form field to use for sending the element's directionality in form submission | Text* | 
 disabled
      |  button;
          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* | 
 id
      | HTML elements | The element's ID | Text* | 
 ismap
      |  img
      | Whether the image is a server-side image map | Boolean attribute | 
 keytype
      |  keygen
      | The type of cryptographic key to generate | Text* | 
 kind
      |  track
      | The type of text track |  "subtitles";
          "captions";
          "descriptions";
          "chapters";
          "metadata"
     | 
 label
      |  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;
          source;
          style
      | Applicable media | Valid media query | 
 mediagroup
      |  audio;
          video
      |  Groups media elements together with an implicit MediaController
      | Text | 
 method
      |  form
      | HTTP method to use for form submission |  "GET";
          "POST";
     | 
 min
      |  input
      | Minimum value | Varies* | 
 min
      |  meter
      | Lower bound of range | Valid floating-point number* | 
 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 | 
 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"
     | 
 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* | 
 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 | 
 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
      |  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"
     | 
 type
      |  embed;
          object;
          script;
          source;
          style
      | Type of embedded resource | Valid MIME type | 
 type
      |  input
      | Type of form control |  input type keyword
     | 
 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.
This section is non-normative.
This section is non-normative.
This section is non-normative.
| Event | Interface | Description | 
|---|---|---|
 abort
      |  Event
      |  Fired at the Window when the download was aborted by the user
     | 
 afterprint
      |  Event
      |  Fired at the Window after printing
     | 
 beforeprint
      |  Event
      |  Fired at the Window before printing
     | 
 beforeunload
      |  BeforeUnloadEvent
      |  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
      | Fired at nodes losing focus | 
 change
      |  Event
      | Fired at controls when the user commits a value change | 
 click
      |  Event
      | Fired at an element before its activation behavior is run | 
 DOMContentLoaded
      |  Event
      |  Fired at the Document once the parser has finished
     | 
 error
      |  Event
      | Fired at elements when network and script errors occur | 
 focus
      |  Event
      | Fired at nodes gaining focus | 
 hashchange
      |  HashChangeEvent
      |  Fired at the Window when the fragment identifier part of the document's address changes
     | 
 input
      |  Event
      | Fired at controls when the user changes the value | 
 invalid
      |  Event
      | Fired at controls during form validation if they do not satisfy their constraints | 
 load
      |  Event
      |  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
     | 
 message
      |  MessageEvent
      | Fired at an object when the object receives a message | 
 offline
      |  Event
      |  Fired at the Window when the network connections fails
     | 
 online
      |  Event
      |  Fired at the Window when the network connections returns
     | 
 pagehide
      |  PageTransitionEvent
      |  Fired at the Window when the page's entry in the session history stops being the current entry
     | 
 pageshow
      |  PageTransitionEvent
      |  Fired at the Window when the page's entry in the session history becomes the current entry
     | 
 popstate
      |  PopStateEvent
      |  Fired at the Window when the user navigates the session history
     | 
 readystatechange
      |  Event
      |  Fired at the Document when it finishes parsing and again when all its subresources have finished loading
     | 
 reset
      |  Event
      |  Fired at a form element when it is reset
     | 
 submit
      |  Event
      |  Fired at a form element when it is submitted
     | 
 unload
      |  Event
      |  Fired at the Window object when the page is going away
   | 
See also media element events, application cache events, and drag-and-drop events.