I’ve been searching through W3C mailing lists but haven’t found any debate on this decision.
Here’s what I can infer:
1995
The first published version of the HTML spec (before CSS came into play) actually specified that h4
and h5
should be “normal font” size. The font size for h6
wasn’t explicitly specified, but I would presume that it was also the normal font size.
H3
Italic, large font, slightly indented from the left
margin. One or two blank lines above and below.
H4
Bold, normal font, indented more than H3. One blank line
above and below.
H5
Italic, normal font, indented as H4. One blank line
above.
H6
Bold, indented same as normal text, more than H5. One
blank line above.
1996
CSS broke onto the scene. Or really, limped onto the scene and broke. The first recommended default style sheet for browsers specified only:
H1 { font-size: xx-large } H2 { font-size: x-large } H3 { font-size: large }
h4
through h6
would thus be 1em
.
1997
HTML 3.2 dropped any font-size recommendations relative to document text, only recommending:
More important headings are generally rendered in a larger font than less important ones.
This conflicts a bit with CSS1, but the two were not integral to each other at the time. Most styling was still done with inline HTML attributes, which were still very much not deprecated.
1998
CSS2 came out, and it removed a default style sheet from its own spec, and instead linked to the new sample style sheet for HTML 4.0 in HTML’s specification.
This is the origin of headers explicitly being set smaller than 1em
, at least as far as I can tell. The recommended HTML 4.0 stylesheet specifies the values most browsers keep to today as defaults:
H5 { font-size: .83em; line-height: 1.17em; margin: 1.67em 0 } H6 { font-size: .67em; margin: 2.33em 0 }