[whatwg] Question on (new) header and hgroup

jgraham at opera.com jgraham at opera.com
Thu May 7 13:34:46 PDT 2009

Quoting Smylers <Smylers at stripey.com>:

> James Graham writes:
>> Bruce Lawson wrote:
>> > I'm struggling to understand the reasons for <hgroup>: wouldn't one
>> > or more h1..h6 elements wrapped in the same <header> imply just such
>> > a grouping without the need for such an element?
>> <hgroup> affects the document structure, <header> does not.
> That explains _how_ they are different (as does the spec), but not _why_
> it is like that.
> More specifically:
> * Are there significant cases where <header> needs _not_ to imply
>   <hgroup>?  Consider wrapping an <hgroup> inside every <header>; how
>   many places has that broken the semantics?  I could believe that most
>   of the cases where a pager header appropriately contains multiple
>   headings they are subtitles rather than subsections.

The semantic that authors seem to want from an element named "header"  
is "All the top matter of my page before the main content". That could  
include headers, subheaders, navigation, asides (at least per the  
current definition of aside which I think is silly, but I digress) and  
almost anything else. Since the <header> can contain multiple distinct  
logical sections of the document, each with their own headers, it  
makes no sense to implicitly wrap its contents in <hgroup>.

> * Given the newness and nuance of <header> and <hgroup> and the
>   distinction between them, it's likely that some authors will confuse
>   them.  Given that <hgroup> doesn't appear to do anything on the page
>   (it's similar to invisible meta-data), it's likely that some authors
>   will omit it[*1] when it's needed to convey the semantics they intend.

Yes, that is possible. The thinking behind the change (or, at least,  
part of my reason for proposing it) was that it is less harmful if  
authors omit something where it would be useful than that they use it  
incorrectly in such a way that tools which follow the spec would be  
broken from the point of view of end users. In particular the old  
formulation of <header> would have caused the <h2> element to be  
omitted from the outline in cases like <header><h1>My  
Blog</h1><nav><h2>Navigation</h2></nav></header>, which would be  
confusing for users. On he other hand in the current formulation of  
the spec, the most likely error (omitting <hgroup>) only has the  
effect that that outline heirachy is slightly wrong, with the  
subheader appearing as an actual header; it does not lead to data  
loss. This seems like a much better failure mode.

> * Are there significant cases where <hgroup> will be useful outside of
>   <header>?
>   <hgroup> exists to allow for subtitles and the like.  It's fairly
>   common for documents to have these -- where it's likely there's use
>   for a <header> element anyway.
>   It's much less common for a mere section of a document to warrant a
>   multi-part title; is that a case which is worth solving?  If it is,
>   would it be problematic to force authors to use <header> there?

It seems highly odd to have <header> perform a dual role where  
sometimes it means "section header" and sometimes it means "group of  
heading/subheading elements". Much more confusing than one element per  

More information about the whatwg mailing list