- From: Ian Hickson <ian@hixie.ch>
- Date: Fri, 9 Oct 2009 08:18:01 +0000 (UTC)
On Sat, 3 Oct 2009, Oli Studholme wrote:
>
> In talking with authors about HTML5 <hgroup>[1] I?ve found it seems
> confusing for many people, and I?ve also found it a little difficult to
> explain so it?s easy to understand (conversation = why? outline
> algorithm. huh?). Currently it?s only role is to hide subheadings from
> the outline algorithm and it doesn?t map to a common use pattern for
> adding semantic meaning. There doesn?t seem to be any tangible benefit
> to authors in using it.
The tangible benefit is that when navigating the document by section, or
when generating a table of contents, there will be the right number of
sections.
For example, the W3C copy of HTML5 says:
<h1>HTML5</h1>
<h2>A vocabulary and associated APIs for HTML and XHTML</h2>
<h2>Editor's Draft 9 October 2009</h2>
...
<h2>Abstract</h2>
...
However, this is _not_ meant to mean:
<section>
<h1>HTML5</h1>
<section>
<h2>A vocabulary and associated APIs for HTML and XHTML</h2>
</section>
<section>
<h2>Editor's Draft 9 October 2009</h2>
...
</section>
<section>
<h2>Abstract</h2>
...
</section>
...
...which is what it would be interpreted as. This is what is meant:
<section>
<h1>HTML5;
A vocabulary and associated APIs for HTML and XHTML;
Editor's Draft 9 October 2009</h1>
...
<section>
<h2>Abstract</h2>
...
</section>
...
...and expressing that is only really possible with <hgroup> (or some
similar feature, like an attribute toggle somewhere):
<section>
<hgroup>
<h1>HTML5</h1>
<h2>A vocabulary and associated APIs for HTML and XHTML</h2>
<h2>Editor's Draft 9 October 2009</h2>
</hgroup>
...
<section>
<h2>Abstract</h2>
...
</section>
...
> Superfriends suggested a Boolean attribute for <header> to determine
> if all child <h1>-<h6> elements are included in the outline[2].
That would unfortunately prevent things like:
<header>
<h1>My great blog</h1>
<h2>Navigation</h2>
(navigation links...)
<h2>About me</h2>
(intro...)
</header>
> The current <hgroup> model excludes all subtitles from the outline.
Well, UAs can show the text, it just prevents the subtitles from
generating new sections in the outline.
> Assuming that subtitles should not be included in the outline (eg to
> make sure the highest-ranked title is indeed descriptive), what if
> <header> by default masked subtitles from the outline algorithm as
> <hgroup> currently does?
In <header>, there are no subtitles, the titles would be actual titles for
subsections. Previously, <hgroup> was just called <header> and did what
you describe, but people indicated they wanted sections in <header>.
> Currently #the-header-element[3] mentions a ?Little Green Guys With
> Guns? example in which <h1>-<h6> elements in the <header> but outside
> <hgroup> create implied <section> elements via the outline algorithm. If
> <header> hides all but one <h1>-<h6> element this won?t happen (this is
> also a potential issue with the Boolean attribute idea). While the spec
> states authors should add wrapping <section>s I suspect many won?t
> bother and rely on implied ones (unless they need CSS hooks). This would
> also be potentially confusing compared with <footer>, and possibly
> encourage authors to mistakenly add <section>s with <header>s inside of
> a <header> (copy&paste mistakes etc).
Indeed.
> While this idea has drawbacks I feel <hgroup>?s lack of tangible
> author benefit and ?occasional use? nature will result in it not being
> widely used when it should be.
The most common uses will likely only take a few WordPress template
changes for it to end up being used in a lot of places.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 9 October 2009 01:18:01 UTC