This page references cross-classifications for HTML elements
from the specification, notable but not relevant for grouping them
(for instances, Categories are overlapping,
and Kinds are unbalanced in count despite partitioning elements).
A main
is (and must always be) Hierarchically Correct
when its parent is either
html,
body,
div,
form without an accessible name,
and autonomous custom elements.
Body-OK
A rel
is Body-OK
iff one of dns-prefetch,
modulepreload, pingback, preconnect,
prefetch, preload, stylesheet
Sets up the presentation or behavior of the rest of the content,
or relationships with other documents,
or conveying other out-of-band information.
There are height elements in this category,
described in the Document and Scripting groups:
base,
link,
meta,
noscript,
script,
style,
template,
title.
Most elements are flow content.
To define by substraction:
body, html,
head, style.
link and meta without itemprop,
Dependent elements:
li, option, optgroup,
dl,dt and all table
descendants.
The area outside map.
Defines the scope of header and footer elements.
There are four elements fitting this role,
described in the Sections group:
article,
aside,
nav,
section.
Defines the heading of a section
(whether explicitly marked up
using sectioning content elements,
or implied by the heading content itself).
All from Sections:
h1,
h2,
h3,
h4,
h5,
h6 and
hgroup if parent to h1-6.
Text of the document, as well as elements
that mark up that text at the
intra-paragraph level.
Runs of phrasing content form paragraphs.
Most categorized phrasing can only
contain phrasing, and not flow content.
Imports or inserts another resource into the document.
Contains the core of eponymous group:
audio,
video,
img,
picture,
embed,
iframe,
object,
Also includes
svg,
math,
and the JS canvas.
Text-Level: a with href
Embedded:
embed,
iframe,
audio/video
having controls,
img having usemap.
Forms:
button,
details,
label,
select,
textarea and
input having type.
Makes an non-empty via descendant non-empty text, medias that can be sensed,
or interactive controls. In general elements allowing
flow or phrasing content should have minimum one palpable descendant
not hidden, with some exceptions like placeholders.
Listed in the
form.elements and fieldset.elements APIs.
These elements also have a form content
attribute, and a matching form IDL attribute,
that allow authors to specify an explicit form owner.
Can be associated with a
label.
This is mostly a subset of Form-associated,
but not perfectly.
input when not hidden,
output,
button,
select,
textarea,
meter,
progress,
and form-associated custom elements.
Can be used for constructing the entry list
when a form element is submitted.
Some submittable elements can be,
depending on their attributes, buttons.
Contains two elements:
script and
style.
May contain any characters, with one exception:
a valid end tag.
Unlike Escapable Raw Text, character references (&CODE;)
will not be dereferenced, but literally interpreted.
Contains two elements:
textarea and
title.
Identical to Raw Text save for one difference:
they may also contain character references (&CODE;),
which can be expected to be de-referenced as in regular non-raw text.
Contains elements math,
svg, and all elements they
may contain defined in their namespaces.
The hierarchical DOM placement is not relevant:
svg can nest
foreignObject
containing any xmlns='.../xhtml',
then considered Normal and not Foreign.