Quoting Smylers <smyl...@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 role.


Reply via email to