[whatwg] Question on (new) header and hgroup
Smylers
Smylers at stripey.com
Fri May 8 03:42:19 PDT 2009
jgraham at opera.com writes:
> Quoting Smylers <Smylers at stripey.com> :
>
> > James Graham writes:
> >
> > > <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 and almost anything
> else.
It could. But most of the above have no effect on the outline
algorithm. In practice, how often do current <div class="header">
sections contain headers of multiple sections, without those nested
sections being separately wrapped in their own <div>-s (or similar,
which could become <section> or whatever's appropriate in HTML 5)?
> 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>.
You're right. What I was really thinking of is something closer to:
inside <header> if any <hx> elements are encountered before any nested
sectioning elements then treat all the <hx> elements as being a single
heading.
So <header> could still contain <section>-s, with their own headings.
And a <header> with no <hx> elements wouldn't create an empty entry in
the outline.
> > * 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.
That's a good point.
> 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.
Indeed. What I intended to raise for consideration (and hopefully now
have done) is that <header> would not merge the above, because <nav>
starts a new section inside <header>. Consider a similar example:
<header>
<h1>My Blog</h1> <h2>Ramblings of an internet nobody</h2>
<nav><h2>Navigation</h2> ... </nav>
</header>
The spec currently has both the <h2>-s as subsections. The alternative
I was thinking of would treat the <h1> and first <h2> as being a single
heading (of the entire document), but keep the second <h2> (as the
heading of the navigation).
> 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.
That's true. But if the number of failures can be minimized, it matters
less what the failure mode is.
My concern is that with <hgroup> being so esoteric, combined with its
effect being largely invisible, it will hardly be used and therefore
possibly not worth adding to HTML 5.
Authors don't have a good track record on accurately adding invisible
metadata. If we can algorithmically get it right in most cases, while
leaving a way for careful authors to explicitly override it if
necessary, that may be better overall.
> > * 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.
I think the two concepts are sufficiently overlapping that it isn't
really a dual role. <header> could mean 'section (or document) header'
-- it would be used when a section's header consists of more than just a
single <hx> element. Whether those elements are because of multi-part
titles or search boxes or whatever is a distinction that authors would
not need to think about.
Tab Atkins Jr. writes:
> Section headers with subtitles lower down in the document hierarchy
> occur with a decent frequency in my pages. The document itself would
> have a complex <header> (possibly with an <hgroup> ), then the
> <article> would have an <hgroup> of its own.
But if the first <hgroup> were omitted and the second <hgroup> were
written as <header>, and the document conveyed exactly the same
semantics, would that actually be worse?
Smylers
More information about the whatwg
mailing list