| Element | Description | Categories | Parents†| Children | Attributes | Interface |
|---|---|---|---|---|---|---|
| <{a}> | Hyperlink | flow; phrasing*; interactive | phrasing | transparent* | globals; <{links/href}>; <{links/target}>; <{links/download}>; <{links/ping}>; <{links/rel}>; <{links/hreflang}>; <{links/type}>; <{link/referrerpolicy}> | {{HTMLAnchorElement}} |
| <{abbr}> | Abbreviation | flow; phrasing | phrasing | phrasing | globals | {{HTMLElement}} |
| <{address}> | Contact information | flow | flow | flow* | globals | {{HTMLElement}} |
| <{area}> | Hyperlink or dead area on an image map | flow; phrasing | phrasing* | empty | globals; <{area/alt}>; <{area/coords}>; <{area/shape}>; <{links/href}>; <{links/target}>; <{links/download}>; <{links/ping}>; <{links/rel}>; <{links/hreflang}>; <{links/type}>; <{link/referrerpolicy}> | {{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}>*; transparent* | globals; <{media/src}>; <{media/crossorigin}>; <{media/disableRemotePlayback}>; <{media/preload}>; <{media/autoplay}>; <{media/loop}>; <{media/muted}>; <{audio/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; <{base/href}>; <{base/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; <{blockquote/cite}> | {{HTMLQuoteElement}} |
| <{body}> | Document body | sectioning root | <{html}> | flow | globals; {{WindowEventHandlers/onafterprint}}; {{WindowEventHandlers/onbeforeprint}}; {{WindowEventHandlers/onbeforeunload}}; {{WindowEventHandlers/onhashchange}}; {{WindowEventHandlers/onlanguagechange}}; {{WindowEventHandlers/onmessage}}; {{WindowEventHandlers/onoffline}}; {{WindowEventHandlers/ononline}}; {{WindowEventHandlers/onpagehide}}; {{WindowEventHandlers/onpageshow}}; {{WindowEventHandlers/onpopstate}}; {{WindowEventHandlers/onstorage}}; {{WindowEventHandlers/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; <{button/autofocus}>; <{button/disabled}>; <{button/form}>; <{button/formaction}>; <{button/formenctype}>; <{button/formmethod}>; <{button/formnovalidate}>; <{button/formtarget}>; <{button/name}>; <{button/type}>; <{button/value}> | {{HTMLButtonElement}} |
| <{canvas}> | Scriptable bitmap canvas | flow; phrasing; embedded | phrasing | transparent | globals; <{canvas/width}>; <{canvas/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; <{col/span}> | {{HTMLTableColElement}} |
| <{colgroup}> | Group of columns in a table | none | <{table}>; <{template}> | <{col}>*; <{template}>* | globals; <{colgroup/span}> | {{HTMLTableColElement}} |
| <{data}> | Machine-readable equivalent | flow; phrasing | phrasing | phrasing | globals; <{data/value}> | {{HTMLDataElement}} |
| <{datalist}> | Container for options for combo box control | flow; phrasing | phrasing | phrasing; <{option}> | 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; <{edits/cite}>; <{edits/datetime}> | {{HTMLModElement}} |
| <{details}> | Disclosure control for hiding details | flow; sectioning root; interactive | flow | <{summary}>*; flow | globals; <{details/open}> | {{HTMLDetailsElement}} |
| <{dfn}> | Defining instance | flow; phrasing | phrasing | phrasing* | globals | {{HTMLElement}} |
| <{dialog}> | Dialog box or window | flow; sectioning root | flow | flow | globals; <{dialog/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; <{embed/src}>; <{embed/type}>; <{media/width}>; <{media/height}>; any* | {{HTMLEmbedElement}} |
| <{fieldset}> | Group of form controls | flow; sectioning root; listed; reassociateable; form-associated | flow | <{legend}>*; flow | globals; <{fieldset/disabled}>; <{fieldset/form}>; <{fieldset/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; <{form/accept-charset}>; <{form/action}>; <{form/autocomplete}>; <{form/enctype}>; <{form/method}>; <{form/name}>; <{form/novalidate}>; <{form/target}> | {{HTMLFormElement}} |
| <{h1}>, <{h2}>, <{h3}>, <{h4}>, <{h5}>, <{h6}> | Section heading | flow; headings | flow | phrasing | globals | {{HTMLHeadingElement}} |
| <{head}> | Container for document metadata | none | <{html}> | metadata* | globals | {{HTMLHeadElement}} |
| <{header}> | Introductory or navigational aids for a page or section | flow | flow | flow* | globals | {{HTMLElement}} |
| <{hr}> | Thematic break | flow | flow | empty | globals | {{HTMLHRElement}} |
| <{html}> | Root element | none | none* | <{head}>*; <{body}>* | globals; <{html/manifest}> | {{HTMLHtmlElement}} |
| <{i}> | Alternate voice | flow; phrasing | phrasing | phrasing | globals | {{HTMLElement}} |
| <{iframe}> | Nested browsing context | flow; phrasing; embedded; interactive | phrasing | text* | globals; <{iframe/src}>; <{iframe/srcdoc}>; <{iframe/name}>; <{iframe/sandbox}>; <{iframe/allowfullscreen}>; <{media/width}>; <{media/height}>; <{iframe/referrerpolicy}> | {{HTMLIFrameElement}} |
| <{img}> | Image | flow; phrasing; embedded; interactive*; form-associated | phrasing | empty | globals; <{img/alt}>; <{img/src}>; <{img/srcset}>; <{img/crossorigin}>; <{common/usemap}>; <{img/ismap}>; <{img/longdesc}>; <{media/width}>; <{media/height}>; <{img/referrerpolicy}> | {{HTMLImageElement}} |
| <{input}> | Form control | flow; phrasing; interactive*; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | empty | globals; <{input/accept}>; <{input/alt}>; <{input/autocapitalize}>; <{input/autocomplete}>; <{input/autofocus}>; <{input/checked}>; <{input/dirname}>; <{input/disabled}>; <{input/form}>; <{input/formaction}>; <{input/formenctype}>; <{input/formmethod}>; <{input/formnovalidate}>; <{input/formtarget}>; <{input/height}>; <{input/list}>; <{input/max}>; <{input/maxlength}>; <{input/min}>; <{input/minlength}>; <{input/multiple}>; <{input/name}>; <{input/pattern}>; <{input/placeholder}>; <{input/readonly}>; <{input/required}>; <{input/size}>; <{input/src}>; <{input/step}>; <{input/type}>; <{input/value}>; <{input/width}> | {{HTMLInputElement}} |
| <{ins}> | An addition to the document | flow; phrasing* | phrasing | transparent | globals; <{edits/cite}>; <{edits/datetime}> | {{HTMLModElement}} |
| <{kbd}> | User input | flow; phrasing | phrasing | phrasing | globals | {{HTMLElement}} |
| <{label}> | Caption for a form control | flow; phrasing; interactive; reassociateable; form-associated | phrasing | phrasing* | globals; <{label/for}> | {{HTMLLabelElement}} |
| <{legend}> | Caption for <{fieldset}> | none | <{fieldset}>; <{template}> | phrasing | globals | {{HTMLLegendElement}} |
| <{li}> | List item | none | <{ol}>; <{ul}>; <{template}> | flow | globals; <{li/value}>* | {{HTMLLIElement}} |
| <{link}> | Link metadata | metadata; flow*; phrasing* | <{head}>; <{template}>; <{noscript}>*; phrasing* | empty | globals; <{link/href}>; <{link/crossorigin}>; <{link/integrity}>; <{link/rel}>; <{link/media}>; <{link/referrerpolicy}>; <{link/hreflang}>; <{link/type}>; <{link/sizes}> | {{HTMLLinkElement}} |
| <{main}> | Main content of a document | flow | flow | flow* | globals | {{HTMLElement}} |
| <{map}> | Image map | flow; phrasing* | phrasing | transparent; <{area}>* | globals; <{map/name}> | {{HTMLMapElement}} |
| <{mark}> | Highlight | flow; phrasing | phrasing | phrasing | globals | {{HTMLElement}} |
| <{meta}> | Text metadata | metadata; flow*; phrasing* | <{head}>; <{template}>; <{noscript}>*; phrasing* | empty | globals; <{meta/name}>; <{meta/http-equiv}>; <{meta/content}>; <{meta/charset}> | {{HTMLMetaElement}} |
| <{meter}> | Gauge | flow; phrasing; labelable | phrasing | phrasing* | globals; <{meter/value}>; <{meter/min}>; <{meter/max}>; <{meter/low}>; <{meter/high}>; <{meter/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; <{object/data}>; <{object/type}>; <{object/typemustmatch}>; <{object/name}>; <{media/width}>; <{media/height}> | {{HTMLObjectElement}} |
| <{ol}> | Ordered list | flow | flow | <{li}>; script-supporting elements | globals; <{ol/reversed}>; <{ol/start}>; <{ol/type}> | {{HTMLOListElement}} |
| <{optgroup}> | Group of options in a list box | none | <{select}>; <{template}> | <{option}>; script-supporting elements | globals; <{optgroup/disabled}>; <{optgroup/label}> | {{HTMLOptGroupElement}} |
| <{option}> | Option in a list box or combo box control | none | <{select}>; <{datalist}>; <{optgroup}>; <{template}> | text* | globals; <{option/disabled}>; <{option/label}>; <{option/selected}>; <{option/value}> | {{HTMLOptionElement}} |
| <{output}> | Calculated output value | flow; phrasing; listed; labelable; resettable; reassociateable; form-associated | phrasing | phrasing | globals; <{output/for}>; <{output/form}>; <{output/name}> | {{HTMLOutputElement}} |
| <{p}> | Paragraph | flow | flow | phrasing | globals | {{HTMLParagraphElement}} |
| <{param}> | Parameter for <{object}> | none | <{object}>; <{template}> | empty | globals; <{param/name}>; <{param/value}> | {{HTMLParamElement}} |
| <{picture}> | Image | flow; phrasing; embedded | phrasing | <{source}>*; one <{img}>; script-supporting elements | globals | {{HTMLPictureElement}} |
| <{pre}> | Block of preformatted text | flow | flow | phrasing | globals | {{HTMLPreElement}} |
| <{progress}> | Progress bar | flow; phrasing; labelable | phrasing | phrasing* | globals; <{progress/value}>; <{progress/max}> | {{HTMLProgressElement}} |
| <{q}> | Quotation | flow; phrasing | phrasing | phrasing | globals; <{q/cite}> | {{HTMLQuoteElement}} |
| <{rb}> | Ruby base | none | <{ruby}>; <{template}> | phrasing | globals | {{HTMLElement}} |
| <{rp}> | Parenthesis for ruby annotation text | none | <{ruby}>; <{rtc}>; <{template}> | phrasing | globals | {{HTMLElement}} |
| <{rt}> | Ruby annotation text | none | <{ruby}>; <{rtc}>; <{template}> | phrasing | globals | {{HTMLElement}} |
| <{rtc}> | Ruby annotation text container | none | <{ruby}>; <{template}> | phrasing | globals | {{HTMLElement}} |
| <{ruby}> | Ruby annotation(s) | flow; phrasing | phrasing | phrasing; <{rp}>; <{rt}>; <{rb}>; <{rtc}>* | 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 elements | <{head}>; phrasing; script-supporting elements | script, data, or script documentation* | globals; <{script/src}>; <{script/type}>; <{script/charset}>; <{script/async}>; <{script/defer}>; <{script/crossorigin}> <{script/integrity}> | {{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; <{select/autocomplete}>; <{select/autofocus}>; <{select/disabled}>; <{select/form}>; <{select/multiple}>; <{select/name}>; <{select/required}>; <{select/size}> | {{HTMLSelectElement}} |
| <{small}> | Side comment | flow; phrasing | phrasing | phrasing | globals | {{HTMLElement}} |
| <{slot}> | Shadow root slot | flow; phrasing | phrasing | transparent | globals; <{slot/name}> | {{HTMLElement}} |
| <{source}> | Media source for <{video}> or <{audio}> or as image source for <{picture}> | none | <{video}>; <{audio}>; <{template}>; <{picture}> | empty | globals; <{source/src}>; <{source/type}>; <{source/srcset}>; <{source/sizes}>; <{source/media}> | {{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; <{style/media}>; <{style/type}> | {{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; <{table/border}> | {{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; <{tablecells/colspan}>; <{tablecells/rowspan}>; <{tablecells/headers}> | {{HTMLTableDataCellElement}} |
| <{template}> | Template | metadata; flow; phrasing; script-supporting elements | metadata; phrasing; script-supporting elements; <{colgroup}>* | it's complicated* | globals | {{HTMLTemplateElement}} |
| <{textarea}> | Multiline text field | flow; phrasing; interactive; listed; labelable; submittable; resettable; reassociateable; form-associated | phrasing | text | globals; <{textarea/autocapitalize}>; <{textarea/autofocus}>; <{textarea/cols}>; <{textarea/dirname}>; <{textarea/disabled}>; <{textarea/form}>; <{textarea/maxlength}>; <{textarea/minlength}>; <{textarea/name}>; <{textarea/placeholder}>; <{textarea/readonly}>; <{textarea/required}>; <{textarea/rows}>; <{textarea/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; <{tablecells/colspan}>; <{tablecells/rowspan}>; <{tablecells/headers}>; <{th/scope}>; <{th/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; <{time/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; <{track/default}>; <{track/kind}>; <{track/label}>; <{track/src}>; <{track/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}>*; transparent* | globals; <{media/src}>; <{media/crossorigin}>; <{media/disableRemotePlayback}>; <{video/poster}>; <{media/preload}>; <{media/autoplay}>; <{media/loop}>; <{media/muted}>; <{video/controls}>; <{media/width}>; <{media/height}> | {{HTMLVideoElement}} |
| <{wbr}> | Line breaking opportunity | flow; phrasing | phrasing | empty | globals | {{HTMLElement}} |
| autonomous custom elements | Author-defined elements | flow; phrasing; palpable | flow; phrasing | transparent | globals; any, as decided by the element's author | Supplied by the element's author. Inherits from {{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.