It seems logical then, that each
<header>
sort of resets the hierarchy of headings […]
This is not the case. Only sectioning content elements (section
, article
, aside
, nav
) and heading elements (h1
-h6
) have an influence on the heading hierarchy resp. the document outline.
[…] so the heading I am using in each
<header>
should be a<h1>
No. This may create a wrong document outline in some cases. The rule should be:
The headings first heading you are using in each sectioning content element (section
, article
, aside
, nav
) (resp. sectioning root elements like body
) may be h1
. May, not must.
Simply ignore header
for making the decision which headings to use.
You can have a section with h1
but without header
.
You can have a section without h1
but with header
.
You can have a section without h1
and without header
.
You can have a section with h1
and with header
, but the h1
not being a child of header
.
If you should use h1
everywhere or also h2
-h6
? Both ways are allowed (in case you use the sectioning content elements correctly). The HTML5 (CR) spec recommends (bold by me):
Sections may contain headings of any rank, and authors are strongly encouraged to use headings of the appropriate rank for the section's nesting level.
So if you want to follow this recommendation, use the headings elements of the corresponding heading levels (but if you need more than six levels, this is not possible to achieve, of course).
Pro: Better backwards compatibility (older user agents that don’t support sectioning content elements can still understand the outline)
Contra: Less flexibility (if you move/paste content, you’d need to adjust the heading levels)