HTML Content Model Categories

Github Page

In HTML 4.01, there was a distinction between block-level and inline elements. In HTML 5, this distinction between block and inline has been replaced with a more complex set of content categories.

Each element in HTML falls into zero or more categories that group elements with similar characteristics.

Content model categories

Diagram showing content model categories overlapping Flow Heading Sectioning Metadata Interactive Phrasing Embedded

The following broad categories are used in this specification:

There are also two other less-relevant categories:

Reference chart

Elements Metadata Flow Phrasing Sectioning Heading Embedded Interactive
a N/A a a N/A N/A N/A a (if the href attribute is present)
abbr N/A abbr abbr N/A N/A N/A N/A
address N/A address N/A N/A N/A N/A N/A
area N/A area (if it is a descendant of a map element) area (if it is a descendant of a map element) N/A N/A N/A N/A
article N/A article N/A article N/A N/A N/A
aside N/A aside N/A aside N/A N/A N/A
audio N/A audio audio N/A N/A audio audio (if the controls attribute is present)
b N/A b b N/A N/A N/A N/A
base base N/A N/A N/A N/A N/A N/A
bdi N/A bdi bdi N/A N/A N/A N/A
bdo N/A bdo bdo N/A N/A N/A N/A
blockquote N/A blockquote N/A N/A N/A N/A N/A
body N/A N/A N/A N/A N/A N/A N/A
br N/A br br N/A N/A N/A N/A
button N/A button button N/A N/A N/A button
canvas N/A canvas canvas N/A N/A canvas N/A
caption N/A N/A N/A N/A N/A N/A N/A
cite N/A cite cite N/A N/A N/A N/A
code N/A code code N/A N/A N/A N/A
col N/A N/A N/A N/A N/A N/A N/A
colgroup N/A N/A N/A N/A N/A N/A N/A
data N/A data data N/A N/A N/A N/A
datalist N/A datalist datalist N/A N/A N/A N/A
dd N/A N/A N/A N/A N/A N/A N/A
del N/A del del N/A N/A N/A N/A
details N/A details N/A N/A N/A N/A details
dfn N/A dfn dfn N/A N/A N/A N/A
dialog N/A dialog N/A N/A N/A N/A N/A
div N/A div N/A N/A N/A N/A N/A
dl N/A dl N/A N/A N/A N/A N/A
dt N/A N/A N/A N/A N/A N/A N/A
em N/A em em N/A N/A N/A N/A
embed N/A embed embed N/A N/A embed embed
fieldset N/A fieldset N/A N/A N/A N/A N/A
figcaption N/A N/A N/A N/A N/A N/A N/A
figure N/A figure N/A N/A N/A N/A N/A
footer N/A footer N/A N/A N/A N/A N/A
form N/A form N/A N/A N/A N/A N/A
h1 N/A h1 N/A N/A h1 N/A N/A
h2 N/A h2 N/A N/A h2 N/A N/A
h3 N/A h3 N/A N/A h3 N/A N/A
h4 N/A h4 N/A N/A h4 N/A N/A
h5 N/A h5 N/A N/A h5 N/A N/A
h6 N/A h6 N/A N/A h6 N/A N/A
head N/A N/A N/A N/A N/A N/A N/A
header N/A header N/A N/A N/A N/A N/A
hgroup N/A hgroup N/A N/A hgroup N/A N/A
hr N/A hr N/A N/A N/A N/A N/A
html N/A N/A N/A N/A N/A N/A N/A
i N/A i i N/A N/A N/A N/A
iframe N/A iframe iframe N/A N/A iframe iframe
img N/A img img N/A N/A img img (if the usemap attribute is present)
input N/A input input N/A N/A N/A input (if the type attribute is not to hidden)
ins N/A ins ins N/A N/A N/A N/A
kbd N/A kbd kbd N/A N/A N/A N/A
label N/A label label N/A N/A N/A label
legend N/A N/A N/A N/A N/A N/A N/A
li N/A N/A N/A N/A N/A N/A N/A
link link link (if it is allowed in the body) link (if it is allowed in the body) N/A N/A N/A N/A
main N/A main (if it is a hierarchically correct main element) N/A N/A N/A N/A N/A
map N/A map map N/A N/A N/A N/A
mark N/A mark mark N/A N/A N/A N/A
menu N/A menu N/A N/A N/A N/A N/A
meta meta meta (if the itemprop attribute is present) meta (if the itemprop attribute is present) N/A N/A N/A N/A
meter N/A meter meter N/A N/A N/A N/A
nav N/A nav N/A nav N/A N/A N/A
noscript noscript noscript noscript N/A N/A N/A N/A
object N/A object object N/A N/A object N/A
ol N/A ol N/A N/A N/A N/A N/A
optgroup N/A N/A N/A N/A N/A N/A N/A
option N/A N/A N/A N/A N/A N/A N/A
output N/A output output N/A N/A N/A N/A
p N/A p N/A N/A N/A N/A N/A
picture N/A picture picture N/A N/A picture N/A
pre N/A pre N/A N/A N/A N/A N/A
progress N/A progress progress N/A N/A N/A N/A
q N/A q q N/A N/A N/A N/A
rp N/A N/A N/A N/A N/A N/A N/A
rt N/A N/A N/A N/A N/A N/A N/A
ruby N/A ruby ruby N/A N/A N/A N/A
s N/A s s s N/A N/A N/A
samp N/A samp samp N/A N/A N/A N/A
script script script script N/A N/A N/A N/A
search N/A search N/A N/A N/A N/A N/A
section N/A section N/A section N/A N/A N/A
select N/A select select N/A N/A N/A select
slot N/A slot slot N/A N/A N/A N/A
small N/A small small N/A N/A N/A N/A
source N/A N/A N/A N/A N/A N/A N/A
span N/A span span N/A N/A N/A N/A
strong N/A strong strong N/A N/A N/A N/A
style style N/A N/A N/A N/A N/A N/A
sub N/A sub sub N/A N/A N/A N/A
summary N/A N/A N/A N/A N/A N/A N/A
sup N/A sup sup N/A N/A N/A N/A
svg N/A svg svg N/A N/A svg N/A
table N/A table N/A N/A N/A N/A N/A
tbody N/A N/A N/A N/A N/A N/A N/A
td N/A N/A N/A N/A N/A N/A N/A
template template template template N/A N/A N/A N/A
textarea N/A textarea textarea N/A N/A N/A textarea
tfoot N/A N/A N/A N/A N/A N/A N/A
th N/A N/A N/A N/A N/A N/A N/A
thead N/A N/A N/A N/A N/A N/A N/A
time N/A time time N/A N/A N/A N/A
title title N/A N/A N/A N/A N/A N/A
tr N/A N/A N/A N/A N/A N/A N/A
track N/A N/A N/A N/A N/A N/A N/A
u N/A u u N/A N/A N/A N/A
ul N/A ul N/A N/A N/A N/A N/A
var N/A var var N/A N/A N/A N/A
video N/A video video N/A N/A video video (if the controls attribute is present)
wbr N/A wbr wbr N/A N/A N/A N/A