Warning:
This wiki has been archived and is now read-only.

ChangeProposals/OutlineMask

From HTML WG Wiki
Jump to: navigation, search

Change Proposal

Replace <hgroup> with an attribute outlineMask that simply flags that a heading should not be included in the document outline when producing an outline using the outline algorithm.

Rationale

  • The <hgroup> element has no uniquely useful function other than to remove a heading from the outline generated using the outline algorithm.
  • It does not codify an existing usage pattern on the web. The creator of <hgroup> describes it thus:
<hgroup> is in fact the result of awaiting patterns. The pattern is that people
use <h1> and <h2> as heading and subheading respectively (without meaning
heading and subsection). All <hgroup> does is wrap them up so they don't impact the outline algorithm.
  • Problem being with the statement "The pattern is that people use <h1> and <h2 as heading and subheading respectively (without meaning heading and subsection)" is that it is not a pattern that prevails over the other patterns that people use to mark up headings and subtitles. No cow paths are being paved with the addition of the <hgroup>, in fact it is the opposite, it is an attempt to force a pattern upon the markup where none previously existed, simply to support the newly created outline algorithm.
  • The outlineMask attribute does not suffer from the issues ineherent with the introduction of the <hgroup> as it simply does the same thing as the only rationale provided for the inclusion of <hgroup> in HTML5:
The point of <hgroup> is to hide the subtitle from the outlining algorithm.

implementations of hgroup

  • zero implementations of the semantics, only implementations of default style. hgroup conveys no meaning to any user.
  • No browser has implemented the outline algorithm to display document outlines or change the semantics of H1 to H6 elements based on the outline algorithm.
  • No browser has implemented the effect of the hgroup element on the document outline (i.e. masking the subheading as defined in HTML5 section 4.4.7 or the in document effect i.e. to remove the heading level semantics of the individual heading elements within a hgroup element and assign the heading level semantics of the top level heading element within hgroup to the hgroup element as defined in HTML5 section 3.2.7.
  • One assistive technology (JAWS) has implemented the outline algorithm, it effects the representation of heading levels for page content. JAWS has not implemented the effect of hgroup on the outline or in page. From a recent discussion with a vendor working with freedom scientific (maker of JAWS) to implement HTML5 features, there are no plans to implement hgroup.

Details

  • Remove the <hgroup> element from HTML5, remove the 52 instances of the text "hgroup" in the HTML5 specification.
  • Add details about <hgroup> under 11.2 Non-conforming features
hgroup - Use outlinemask instead.
  • add references to outline mask where appropriate in the spec.
  • remove <hgroup> from the ARIA role mapping table.
  • Further editorial details of additions and deletions to the spec can be provided, if the change proposal is accepted.

specification text to add

The outlinemask attribute 
The <h1> to <h6> elements may have the outlinemask content attribute set.  
The  outlinemask attribute is a boolean attribute. 
When specified on one or more <h1> to <h6> elements,it indicates that the element is not
to be included in the document outline. 
User agents should not include the <h1> to <h6> elements or their content in 
the document outline if the outlinemask attribute is specified.
The outlinemask IDL attribute must reflect the content attribute of the same name.
The ARIA role mapping for a <h1> to <h6> that has 
an outlineMask attribute is the same as a <h1> to <h6> 
without an outlineMask attribute set. User agents MAY provide an indication that a heading is a subheading when 
the attribute is set.
Examples of outlinemask use:
<body>
<h1>Title</h1>
<h2 outlinemask>Subtitle</h2>

<h1>Second Title</h1>
<div>
    <h2 outlinemask>Second Subtitle 1</h2>
    <h2 outlinemask>Second Subtitle 2</h2>
</div>
</body>
<article>
    <h2 outlinemask>The Magical</h2>
    <h1>Title</h1>
    <h2 outlinemask>That Has</h2>
   <h2 outlinemask>Multiple Subtitles</h2>
</article>
<section>
  <h2 oultinemask>Preceeding subtitle</h2>
  <h1>Title</h1>
</section>

Risks

  • Removal of the <hgroup> element.
  • Legacy UAs will ignore the outlineMask attribute. This is not a big problem, as no legacy user agents support the semantic processing of <hgroup>.
  • authors may misuse the outlineMask attribute

Positive effects

  • authors will be provided with a simple mechanism for identifying subheadings and subtitles for which they wish to use h1-h6 markup on, but do not want included in the document outline.
  • implementation issues are minimal, as no user agents have yet implemented hgroup effect on the outline or semantics.
  • authors will not need to chnage their current markup patterns, just add an attribute where appropriate.