W3C home > Mailing lists > Public > public-html@w3.org > January to March 2007

Re: Preparing to launch the Forms Task Force ...

From: Matthew Raymond <mattraymond@earthlink.net>
Date: Mon, 19 Mar 2007 07:43:10 -0400
Message-ID: <45FE774E.3000205@earthlink.net>
To: Laurens Holst <lholst@students.cs.uu.nl>
CC: public-html@w3.org

Laurens Holst wrote:
> My point of view is that <h1>...<h6> do not imply any kind of sectioning 
> at all, they only specify headings, and the section that follows is 
> implicit. The WHATWG complicates matters by pretending that they do, and 
> dedicating a huge section to it too.

   From the HTML 4.01 Spec [1]:

| A heading element briefly describes the topic of the section it
| introduces.

...

| The following example shows how to use the DIV element to associate a
| heading with the document section that follows it.

...

| <DIV class="section" id="forest-elephants" >
|   <H1>Forest elephants</H1>
|   <P>In this section, we discuss the lesser known forest elephants.
|   ...this section continues...
|   <DIV class="subsection" id="forest-habitat" >
|     <H2>Habitat</H2>
|     <P>Forest elephants do not live in trees but among them.
|     ...this subsection continues...
|   </DIV>
| </DIV>

   It's pretty clear that headers are semantically the introduction of a
section. The specification simply lacks a definition for how to
determine the bounds of the section.

> However, I don’t see how it can do this, as text from a level-1 section 
> that continues after a level-2 section will be classified incorrectly to 
> be in the level-2 section. Instead of just not being classified into 
> sections at all, *because the original document did not provide that 
> information*!

   The above example from the spec clearly has that information.

   Now, I will concede that the semantics of <div> are weak. In fact,
it's the poster child for why |role| would be a dismal failure. Here you
have an element being used for sections right in the specification with
the class name "section", and there are probably only a handful of
people who've actually marked pages up that way.

   However, the semantics of <h1>-<h6> are clear about the fact that
these elements begin sections. I would suggest that one way to process
them is that they should be tied to their parent elements. The first
<div> in the example above has a heading, then the child <div> has a
heading, therefore the child <div> is a subsection of the parent.
Associate elements accordingly. If there are two heading elements on the
same level, then the second one begins a new section.

   There have been several other proposed algorithms for this as well.
I'm not suggesting the one above is the best. I'm merely trying to
determine why you feel that the task is somehow impossible.

> And even if you would want to specify it. I mean, it’s *really* obvious. 
> “Each heading starts a new section according to their level, which lasts 
> until the next heading or the end of the document”.

   This is directly contrary to the implied semantics of the markup
example from the spec above, which clearly implies nesting.

> There, put that
> phrase in the spec instead of that whole chapter. There is no need to be 
> overly meticulous about it, like WHATWG spec section 3.8.11.1. “Creating 
> an outline”.

   Essentially, you're advocating abandonment of HTML 4.01 heading for
use in creating things like a Table of Contents, for which the elements
were originally intended.

   I would agree that we don't have to support non-semantic use cases
for <h1>-<h6>, but if authors made their best attempt to use these
elements semantically and correctly, their efforts should not be discarded.


[1] http://www.w3.org/TR/html4/struct/global.html#edef-H1
Received on Monday, 19 March 2007 11:42:23 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 19 March 2007 11:42:24 GMT