- From: Simon Pieters <simonp@opera.com>
- Date: Mon, 07 Nov 2011 07:40:20 +0100
- To: public-html@w3.org, Kornel Lesiński <kornel@geekhood.net>
On Mon, 07 Nov 2011 00:38:32 +0100, Kornel Lesiński <kornel@geekhood.net> wrote: > > I agree with Lars Gunther that reuse of <h1-h6> for subheadings causes > nothing but trouble, and subheadings can be marked up in a more > straightforward manner. > > I'd like to propose a new element that IMHO is much easier to understand > and use correctly, satisfies all major use cases of <hgroup> and does > not break outline in legacy UAs. > > The proposal is in the wiki: > http://www.w3.org/html/wg/wiki/ChangeProposals/hSub > > ---- > > Change Proposal > > Replace <hgroup> with an element that has a simple content model and > backwards compatibility. > > Rationale > > * <hgroup> overloads meaning of <h1-h6>, making them either > headings included in document > outline or not, depending on context created by hgroup and other > headings. No other > element in HTML creates such ambiguous context-dependent meaning. > > * Name and usage of <hgroup> can be confused with <header>, since > both appear in headers > and group elements. > > * <hgroup>'s content model disallows adding extra <div>s around > multiple subheadings, which > may be needed as styling hooks. > > * Existing content on the web does not use as complex multi-level > subheadings as <hgroup> > was intended to support. There is no need to precisely mark up > levels of subheadings, as > the whole title is meant to be read in (document) order and > subheadings are not used for > sectioning/navigation. > > Details > > <hsub> element is a subheading. It represents a subheading for its > section (i.e. it is > associated with the heading in the same section that the <hsub> is > in). The algorithm for > associating <hsub> with a section is the same as for <h1-h6>, except > <hsub> does not imply > new sections. So basically it's associated with a section in the same way as <p>. > <hsub> element has same content model as <h1-h6>. > > Optionally: <hsub> can be allowed to be nested inside <h1-h6>, which > allows full title to be > seen as a header in legacy UAs and makes it easy to style heading > and subheading using CSS. > > Examples > > <body> > <h1>Title</h1> > <hsub>Subtitle</hsub> > > <h1>Second Title</h1> > <div> > <hsub>Second Subtitle 1</hsub> > <hsub>Second Subtitle 2</hsub> > </div> > </body> > > <article> > <hsub>The Magical</hsub> > <h1>Title</h1> > <hsub>That Has</hsub> > <hsub>Multiple Subtitles</hsub> > </article> > > Styling > > The most common usage of subheadings can be styled simply with h1 + > hsub CSS selector. > Authors can make complex headers easier to select by wrapping > headings and subheadings in > <header>. Relaxed content model allows "styling hook" elements to be > added as necessary. > > Authoring errors > > Mistakes in usage of <hsub> cannot break document outline, which is > a significant improvement > over <hgroup>. > > At worst, in a rather rare case of subtitle preceeding the title, > subtitle may end up > associated with an earlier heading: > > <h1>Unrelated title</h1> > <p>Content</p> > > <hsub>Preceeding subtitle</hsub> > <h1>Title</h1> > > However, this kind of mistake can be easily eliminated by use of > <section>/<acticle> > elements: > > <section> > <hsub>Preceeding subtitle</hsub> > <h1>Title</h1> > </section> > > Risks > > Removal of the <hgroup> element. > FWIW, I think this proposal is better than the <p>-in-<header> proposal (which changes meaning of <p> based on placement) and the <subline> proposal (which allows <h2> in <subline> so still breaks the outline in legacy impl). My only concern with this proposal is whether <hsub> should be allowed "anywhere" or if it should be restricted in some way (e.g. require a heading in its section, don't allow it in implied sections unless it is follows the heading element directly). -- Simon Pieters Opera Software
Received on Monday, 7 November 2011 06:39:08 UTC