[html5] r1258 - /

whatwg at whatwg.org whatwg at whatwg.org
Tue Feb 26 18:53:10 PST 2008


Author: ianh
Date: 2008-02-26 18:53:09 -0800 (Tue, 26 Feb 2008)
New Revision: 1258

Modified:
   index
   source
Log:
[at] (0) Make the 'Determining which heading and section applies to a particular node' subsection redundant; fix up some cross-reference issues that were caused by the recent outline algorithm rewrite.

Modified: index
===================================================================
--- index	2008-02-27 02:38:37 UTC (rev 1257)
+++ index	2008-02-27 02:53:09 UTC (rev 1258)
@@ -462,12 +462,8 @@
          <li><a href="#outlines"><span class=secno>3.8.10.1. </span>Creating
           an outline</a>
 
-         <li><a href="#associatedSection"><span class=secno>3.8.10.2.
-          </span>Determining which heading and section applies to a
-          particular node</a>
-
-         <li><a href="#distinguishing"><span class=secno>3.8.10.3.
-          </span>Distinguishing site-wide headers from page headers</a>
+         <li><a href="#distinguishing"><span class=secno>3.8.10.2.
+          </span>Distinguishing site-wide headings from page headings</a>
         </ul>
       </ul>
 
@@ -2032,8 +2028,8 @@
      conformance should act in accordance to the semantics of the documents
      that they process.</p>
 
-    <p class=example>A tool that generates <span title="sections and
-     headings">document outlines</span> but increases the nesting level for
+    <p class=example>A tool that generates <a href="#outline"
+     title=outline>document outlines</a> but increases the nesting level for
      each paragraph and does not increase the nesting level for each section
      would not be conforming.</p>
 
@@ -8871,16 +8867,19 @@
 
   <h5 id=outlines><span class=secno>3.8.10.1. </span>Creating an outline</h5>
 
-  <p>This section defines an algorithm for creating an outline for a
-   <span>sectioning content element or a <a href="#sectioning1">sectioning
-   root</a> element. It is defined in terms of a walk over the nodes of a DOM
-   tree, in tree order, with each node being visited when it is
-   <i>entered</i> and when it is <i>exited</i> during the walk.</span>
+  <p>This section defines an algorithm for creating an <dfn
+   id=outline>outline</dfn> for a <span>sectioning content element or a <a
+   href="#sectioning1">sectioning root</a> element. It is defined in terms of
+   a walk over the nodes of a DOM tree, in tree order, with each node being
+   visited when it is <i>entered</i> and when it is <i>exited</i> during the
+   walk.</span>
 
   <p>The outline for a <span>sectioning content element or a <a
    href="#sectioning1">sectioning root</a> element consists of a list of one
    or more potentially nested sections. Each section can have zero or one
-   heading associated with it.</span>
+   heading associated with it. The algorithm for the outline also associates
+   each node in the DOM tree with a particular section and potentially a
+   heading.</span>
 
   <p>The algorithm that must be followed during a walk of a DOM subtree
    rooted at a <a href="#sectioning0">sectioning content</a> element or a <a
@@ -9019,9 +9018,10 @@
       <p>Do nothing.
     </dl>
 
-    <p>In addition, whenever you exit a node, after doing the steps above, if
-     <var title="">current section</var> is not null, associate the node with
-     the section <var title="">current section</var>.</p>
+    <p id=associatedSection>In addition, whenever you exit a node, after
+     doing the steps above, if <var title="">current section</var> is not
+     null, associate the node with the section <var title="">current
+     section</var>.</p>
 
    <li>
     <p>If the <var title="">current outlinee</var> is null, then there was no
@@ -9034,6 +9034,10 @@
      above with <var title="">current outlinee</var> as their section.
 
    <li>
+    <p>Associate all nodes with the heading of the section which which they
+     are associated, if any.
+
+   <li>
     <p>If <var title="">current outlinee</var> is <a href="#the-body0">the
      <code>body</code> element</a>, then the outline created for that element
      is the outline of the entire document.
@@ -9086,269 +9090,41 @@
 }</pre>
   </div>
 
-  <h5 id=associatedSection><span class=secno>3.8.10.2. </span>Determining
-   which heading and section applies to a particular node</h5>
+  <h5 id=distinguishing><span class=secno>3.8.10.2. </span>Distinguishing
+   site-wide headings from page headings</h5>
 
-  <p class=big-issue>This section will be rewritten at some point. The
-   algorithm likely won't change, but its description will be dramatically
-   simplified.
+  <p>Given the <a href="#outline">outline</a> of a document, but ignoring any
+   sections created for <code><a href="#nav">nav</a></code> and <code><a
+   href="#aside">aside</a></code> elements, and any of their descendants, if
+   the only root of the tree is <a href="#the-body0">the <code>body</code>
+   element</a>'s section, and it has only a single subsection which is
+   created by an <code><a href="#article">article</a></code> element, then
+   the heading of <a href="#the-body0">the <code>body</code> element</a>
+   should be assumed to be a site-wide heading, and the heading of the
+   <code><a href="#article">article</a></code> element should be assumed to
+   be the page's heading.
 
-  <p>Given a particular node, user agents must use the following algorithm,
-   <em>in the given order</em>, to determine which heading and section the
-   node is most closely associated with. The processing of this algorithm
-   must stop as soon as the associated section and heading are established
-   (even if they are established to be nothing).
-
-  <ol>
-   <li>If the node has an ancestor that is a <code><a
-    href="#header">header</a></code> element, then the associated heading is
-    the most distant such ancestor. The associated section is that <code><a
-    href="#header">header</a></code>'s associated section (i.e. repeat this
-    algorithm for that <code><a href="#header">header</a></code>).
-
-   <li>If the node has an ancestor that is an <code><a
-    href="#h1">h1</a></code>-<code><a href="#h6">h6</a></code> element, then
-    the associated heading is the most distant such ancestor. The associated
-    section is that heading's section (i.e. repeat this algorithm for that
-    heading element).
-
-   <li>If the node is an <code><a href="#h1">h1</a></code>-<code><a
-    href="#h6">h6</a></code> element or a <code><a
-    href="#header">header</a></code> element, then the associated heading is
-    the element itself. The UA must then generate the <a
-    href="#outlines">hypothetical section tree</a> described in the previous
-    section, rooted at the nearest section ancestor (or the <a
-    href="#root-element">root element</a> if there is no such ancestor). If
-    the parent of the heading in that hypothetical tree is an element in the
-    real document tree, then that element is the associated section.
-    Otherwise, there is no associated section element.
-
-   <li>If the node is an element of <a href="#sectioning0">sectioning
-    content</a>, then the associated section is itself. The UA must then
-    generate the <a href="#outlines">hypothetical section tree</a> described
-    in the previous section, rooted at the section itself. If the section
-    element, in that hypothetical tree, has a child element that is an
-    <code><a href="#h1">h1</a></code>-<code><a href="#h6">h6</a></code>
-    element or a <code><a href="#header">header</a></code> element, then that
-    element is the associated heading. Otherwise, there is no associated
-    heading element.
-
-   <li>If the node is a <code><a href="#footer">footer</a></code> or <code><a
-    href="#address">address</a></code> element, then the associated section
-    is the nearest ancestor element of <a href="#sectioning0">sectioning
-    content</a>, if there is one. The node's associated heading is the same
-    as that element of <a href="#sectioning0">sectioning content</a>'s
-    associated heading (i.e. repeat this algorithm for that element of <a
-    href="#sectioning0">sectioning content</a>). If there is no ancestor
-    element of <a href="#sectioning0">sectioning content</a>, the element has
-    no associated section nor an associated heading.
-
-   <li>Otherwise, the node is just a normal node, and the document has to be
-    examined more closely to determine its section and heading. Create a view
-    rooted at the nearest ancestor element of <a
-    href="#sectioning0">sectioning content</a> (or the <a
-    href="#root-element">root element</a> if there is none) that has just
-    <code><a href="#h1">h1</a></code>-<code><a href="#h6">h6</a></code>
-    elements, <code><a href="#header">header</a></code> elements, the node
-    itself, and elements of <a href="#sectioning0">sectioning content</a>
-    other than <code><a href="#blockquote">blockquote</a></code> elements.
-    (Descendants of any of the nodes in this view can be ignored, as can any
-    node later in the tree than the node in question, as the algorithm below
-    merely walks backwards up this view.)
-
-   <li>Let <var title="">n</var> be an iterator for this view, initialised at
-    the node in question.
-
-   <li>Let <var title="">c</var> be the current best candidate heading,
-    initially null, and initially not used. It is used when top-level heading
-    candidates are to be searched for (see below).
-
-   <li>Repeat these steps (which effectively goes backwards through the
-    node's previous siblings) until an answer is found:
-    <ol>
-     <li>If <var title="">n</var> points to a node with no previous sibling,
-      and <var title="">c</var> is null, then return the node's parent node
-      as the answer. If the node has no parent node, return null as the
-      answer.
-
-     <li>Otherwise, if <var title="">n</var> points to a node with no
-      previous sibling, return <var title="">c</var> as the answer.
-
-     <li>Adjust <var title="">n</var> so that it points to the previous
-      sibling of the current position.
-
-     <li>If <var title="">n</var> is pointing at an <code><a
-      href="#h1">h1</a></code> or <code><a href="#header">header</a></code>
-      element, then return that element as the answer.
-
-     <li>If <var title="">n</var> is pointing at an <code><a
-      href="#h2">h2</a></code>-<code><a href="#h6">h6</a></code> element, and
-      heading candidates are not being searched for, then return that element
-      as the answer.
-
-     <li>Otherwise, if <var title="">n</var> is pointing at an <code><a
-      href="#h2">h2</a></code>-<code><a href="#h6">h6</a></code> element, and
-      either <var title="">c</var> is still null, or <var title="">c</var> is
-      a heading of lower <a href="#rank">rank</a> than this one, then set
-      <var title="">c</var> to be this element, and continue going backwards
-      through the previous siblings.
-
-     <li>If <var title="">n</var> is pointing at an element of <a
-      href="#sectioning0">sectioning content</a>, then from this point on
-      top-level heading candidates are being searched for. (Specifically, we
-      are looking for the nearest top-level header for the current section.)
-      Continue going backwards through the previous siblings.
-    </ol>
-
-   <li>If the answer from the previous step (the loop) is null, which can
-    only happen if the node has no preceeding headings and is not contained
-    in an element of <a href="#sectioning0">sectioning content</a>, then
-    there is no associated heading and no associated section.
-
-   <li>Otherwise, if the answer from the earlier loop step is an element of
-    <a href="#sectioning0">sectioning content</a>, then the associated
-    section is that element and the associated heading is that element of <a
-    href="#sectioning0">sectioning content</a>'s associated heading (i.e.
-    repeat this algorithm for that section).
-
-   <li>Otherwise, if the answer from that same earlier step is an <code><a
-    href="#h1">h1</a></code>-<code><a href="#h6">h6</a></code> element or a
-    <code><a href="#header">header</a></code> element, then the associated
-    heading is that element and the associated section is that heading
-    element's associated section (i.e. repeat this algorithm for that
-    heading).
-  </ol>
-
-  <p class=note>Not all nodes have an associated header or section. For
-   example, if a section is implied, as when multiple headers are found in
-   one element of <a href="#sectioning0">sectioning content</a>, then a node
-   in that section has an anonymous associated section (its section is not
-   represented by a real element), and the algorithm above does not associate
-   that node with any particular element of <a href="#sectioning0">sectioning
-   content</a>.
-
-  <div class=example>
-   <p>For the following fragment:</p>
-
-   <pre><body>
- <h1>X</h1>
- <h2>X</h2>
- <blockquote>
-  <h3>X</h3>
- </blockquote>
- <p id="a">X</p>
- <h4>Text Node A</h4>
- <section>
-  <h5>X</h5>
- </section>
- <p>Text Node B</p>
-</body></pre>
-
-   <p>The associations are as follows (not all associations are shown):</p>
-
-   <table>
-    <thead>
-     <tr>
-      <th>Node
-
-      <th>Associated heading
-
-      <th>Associated section
-
-    <tbody>
-     <tr>
-      <td><code><body></code>
-
-      <td><code><h1></code>
-
-      <td><code><body></code>
-
-     <tr>
-      <td><code><h1></code>
-
-      <td><code><h1></code>
-
-      <td><code><body></code>
-
-     <tr>
-      <td><code><h2></code>
-
-      <td><code><h2></code>
-
-      <td>None.
-
-     <tr>
-      <td><code><blockquote></code>
-
-      <td><code><h2></code>
-
-      <td>None.
-
-     <tr>
-      <td><code><h3></code>
-
-      <td><code><h3></code>
-
-      <td><code><blockquote></code>
-
-     <tr>
-      <td><code><p id="a"></code>
-
-      <td><code><h2></code>
-
-      <td>None.
-
-     <tr>
-      <td><code>Text Node A</code>
-
-      <td><code><h4></code>
-
-      <td>None.
-
-     <tr>
-      <td><code>Text Node B</code>
-
-      <td><code><h1></code>
-
-      <td><code><body></code>
-   </table>
-  </div>
-
-  <h5 id=distinguishing><span class=secno>3.8.10.3. </span>Distinguishing
-   site-wide headers from page headers</h5>
-
-  <p>Given the <a href="#outlines">hypothetical section tree</a>, but
-   ignoring any sections created for <code><a href="#nav">nav</a></code> and
-   <code><a href="#aside">aside</a></code> elements, and any of their
-   descendants, if the root of the tree is <a href="#the-body0">the
-   <code>body</code> element</a>'s section, and it has only a single
-   subsection which is created by an <code><a
-   href="#article">article</a></code> element, then the header of <a
-   href="#the-body0">the <code>body</code> element</a> should be assumed to
-   be a site-wide header, and the header of the <code><a
-   href="#article">article</a></code> element should be assumed to be the
-   page's header.
-
   <p>If a page starts with a heading that is common to the whole site, the
    document must be authored such that, in the document's <a
-   href="#outlines">hypothetical section tree</a>, ignoring any sections
-   created for <code><a href="#nav">nav</a></code> and <code><a
-   href="#aside">aside</a></code> elements and any of their descendants, the
-   root of the tree is <a href="#the-body0">the <code>body</code>
-   element</a>'s section, its heading is the site-wide heading, <a
-   href="#the-body0">the <code>body</code> element</a> has just one
-   subsection, that subsection is created by an <code><a
-   href="#article">article</a></code> element, and that <code><a
-   href="#article">article</a></code>'s header is the page heading.
+   href="#outline">outline</a>, ignoring any sections created for <code><a
+   href="#nav">nav</a></code> and <code><a href="#aside">aside</a></code>
+   elements and any of their descendants, the tree has only one root section,
+   <a href="#the-body0">the <code>body</code> element</a>'s section, its
+   heading is the site-wide heading, <a href="#the-body0">the
+   <code>body</code> element</a> has just one subsection, that subsection is
+   created by an <code><a href="#article">article</a></code> element, and
+   that <code><a href="#article">article</a></code>'s heading is the page
+   heading.
 
   <p>If a page does not contain a site-wide heading, then the page must be
-   authored such that, in the document's <a href="#outlines">hypothetical
-   section tree</a>, ignoring any sections created for <code><a
-   href="#nav">nav</a></code> and <code><a href="#aside">aside</a></code>
-   elements and any of their descendants, either <a href="#the-body0">the
-   <code>body</code> element</a> has no subsections, or it has more than one
-   subsection, or it has a single subsection but that subsection is not
-   created by an <code><a href="#article">article</a></code> element.
+   authored such that, in the document's <a href="#outline">outline</a>,
+   ignoring any sections created for <code><a href="#nav">nav</a></code> and
+   <code><a href="#aside">aside</a></code> elements and any of their
+   descendants, either <a href="#the-body0">the <code>body</code> element</a>
+   has no subsections, or it has more than one subsection, or it has a single
+   subsection but that subsection is not created by an <code><a
+   href="#article">article</a></code> element, or there is more than one
+   section at the root of the outline.
 
   <p class=note>Conceptually, a site is thus a document with many articles
    — when those articles are split into many pages, the heading of the

Modified: source
===================================================================
--- source	2008-02-27 02:38:37 UTC (rev 1257)
+++ source	2008-02-27 02:53:09 UTC (rev 1258)
@@ -381,10 +381,10 @@
     them for conformance should act in accordance to the semantics of
     the documents that they process.</p>
 
-    <p class="example">A tool that generates <span title="sections and
-    headings">document outlines</span> but increases the nesting level
-    for each paragraph and does not increase the nesting level for
-    each section would not be conforming.</p>
+    <p class="example">A tool that generates <span
+    title="outline">document outlines</span> but increases the nesting
+    level for each paragraph and does not increase the nesting level
+    for each section would not be conforming.</p>
 
    </dd>
 
@@ -7195,16 +7195,19 @@
 
   <h5 id="outlines">Creating an outline</h5>
 
-  <p>This section defines an algorithm for creating an outline for a
-  <span>sectioning content</code> element or a <span>sectioning
-  root</span> element. It is defined in terms of a walk over the nodes
-  of a DOM tree, in tree order, with each node being visited when it
-  is <i>entered</i> and when it is <i>exited</i> during the walk.</p>
+  <p>This section defines an algorithm for creating an
+  <dfn>outline</dfn> for a <span>sectioning content</code> element or
+  a <span>sectioning root</span> element. It is defined in terms of a
+  walk over the nodes of a DOM tree, in tree order, with each node
+  being visited when it is <i>entered</i> and when it is <i>exited</i>
+  during the walk.</p>
 
   <p>The outline for a <span>sectioning content</code> element or a
   <span>sectioning root</span> element consists of a list of one or
   more potentially nested sections. Each section can have zero or one
-  heading associated with it.</p>
+  heading associated with it. The algorithm for the outline also
+  associates each node in the DOM tree with a particular section and
+  potentially a heading.</p>
 
   <p>The algorithm that must be followed during a walk of a DOM
   subtree rooted at a <span>sectioning content</span> element or a
@@ -7364,10 +7367,10 @@
 
     </dl>
 
-    <p>In addition, whenever you exit a node, after doing the steps
-    above, if <var title="">current section</var> is not null,
-    associate the node with the section <var title="">current
-    section</var>.</p>
+    <p id="associatedSection">In addition, whenever you exit a node,
+    after doing the steps above, if <var title="">current
+    section</var> is not null, associate the node with the section
+    <var title="">current section</var>.</p>
 
    </li>
 
@@ -7380,6 +7383,9 @@
    the steps above with <var title="">current outlinee</var> as their
    section.</p></li>
 
+   <li><p>Associate all nodes with the heading of the section which
+   which they are associated, if any.</p></li>
+
    <li><p>If <var title="">current outlinee</var> is <span>the
    <code>body</code> element</span>, then the outline created for that
    element is the outline of the entire document.</p></li>
@@ -7436,222 +7442,37 @@
   </div>
 
 
+  <h5>Distinguishing site-wide headings from page headings</h5>
 
-  <h5 id="associatedSection">Determining which heading and section
-  applies to a particular node</h5>
+  <p>Given the <span>outline</span> of a document, but ignoring any
+  sections created for <code>nav</code> and <code>aside</code>
+  elements, and any of their descendants, if the only root of the tree
+  is <span>the <code>body</code> element</span>'s section, and it has
+  only a single subsection which is created by an <code>article</code>
+  element, then the heading of <span>the <code>body</code>
+  element</span> should be assumed to be a site-wide heading, and the
+  heading of the <code>article</code> element should be assumed to be
+  the page's heading.</p>
 
-  <p class="big-issue">This section will be rewritten at some
-  point. The algorithm likely won't change, but its description will
-  be dramatically simplified.</p>
-
-  <p>Given a particular node, user agents must use the following
-  algorithm, <em>in the given order</em>, to determine which heading
-  and section the node is most closely associated with. The processing
-  of this algorithm must stop as soon as the associated section and
-  heading are established (even if they are established to be
-  nothing).</p>
-
-  <ol>
-
-   <li>If the node has an ancestor that is a <code>header</code>
-   element, then the associated heading is the most distant such
-   ancestor. The associated section is that <code>header</code>'s
-   associated section (i.e. repeat this algorithm for that
-   <code>header</code>).</li>
-
-   <li>If the node has an ancestor that is an
-   <code>h1</code>-<code>h6</code> element, then the associated
-   heading is the most distant such ancestor. The associated section
-   is that heading's section (i.e. repeat this algorithm for that
-   heading element).</li>
-
-   <li>If the node is an <code>h1</code>-<code>h6</code> element or a
-   <code>header</code> element, then the associated heading is the
-   element itself. The UA must then generate the <a
-   href="#outlines">hypothetical section tree</a> described in the
-   previous section, rooted at the nearest section ancestor (or the
-   <span>root element</span> if there is no such ancestor). If the
-   parent of the heading in that hypothetical tree is an element in
-   the real document tree, then that element is the associated
-   section. Otherwise, there is no associated section element.</li>
-
-   <li>If the node is an element of <span>sectioning content</span>,
-   then the associated section is itself. The UA must then generate
-   the <a href="#outlines">hypothetical section tree</a> described in
-   the previous section, rooted at the section itself. If the section
-   element, in that hypothetical tree, has a child element that is an
-   <code>h1</code>-<code>h6</code> element or a <code>header</code>
-   element, then that element is the associated heading. Otherwise,
-   there is no associated heading element.</li>
-
-   <li>If the node is a <code>footer</code> or <code>address</code>
-   element, then the associated section is the nearest ancestor
-   element of <span>sectioning content</span>, if there is one. The
-   node's associated heading is the same as that element of
-   <span>sectioning content</span>'s associated heading (i.e.  repeat
-   this algorithm for that element of <span>sectioning
-   content</span>). If there is no ancestor element of
-   <span>sectioning content</span>, the element has no associated
-   section nor an associated heading.</li>
-
-   <li>Otherwise, the node is just a normal node, and the document has
-   to be examined more closely to determine its section and heading.
-   Create a view rooted at the nearest ancestor element of
-   <span>sectioning content</span> (or the <span>root element</span>
-   if there is none) that has just <code>h1</code>-<code>h6</code>
-   elements, <code>header</code> elements, the node itself, and
-   elements of <span>sectioning content</span> other than
-   <code>blockquote</code> elements. (Descendants of any of the nodes
-   in this view can be ignored, as can any node later in the tree than
-   the node in question, as the algorithm below merely walks backwards
-   up this view.)</li>
-
-   <li>Let <var title="">n</var> be an iterator for this view,
-   initialised at the node in question.</li>
-
-   <li>Let <var title="">c</var> be the current best candidate
-   heading, initially null, and initially not used. It is used when
-   top-level heading candidates are to be searched for (see
-   below).</li>
-
-   <li>Repeat these steps (which effectively goes backwards through
-   the node's previous siblings) until an answer is found:
-
-    <ol>
-
-     <li>If <var title="">n</var> points to a node with no previous
-     sibling, and <var title="">c</var> is null, then return the
-     node's parent node as the answer. If the node has no parent node,
-     return null as the answer.</li>
-
-     <li>Otherwise, if <var title="">n</var> points to a node with no
-     previous sibling, return <var title="">c</var> as the
-     answer.</li>
-
-     <li>Adjust <var title="">n</var> so that it points to the
-     previous sibling of the current position.</li>
-
-     <li>If <var title="">n</var> is pointing at an <code>h1</code> or
-     <code>header</code> element, then return that element as the
-     answer.</li>
-
-     <li>If <var title="">n</var> is pointing at an
-     <code>h2</code>-<code>h6</code> element, and heading candidates
-     are not being searched for, then return that element as the
-     answer.</li>
-
-     <li>Otherwise, if <var title="">n</var> is pointing at an
-     <code>h2</code>-<code>h6</code> element, and either <var
-     title="">c</var> is still null, or <var title="">c</var> is a
-     heading of lower <span>rank</span> than this one, then set <var
-     title="">c</var> to be this element, and continue going backwards
-     through the previous siblings.</li>
-
-     <li>If <var title="">n</var> is pointing at an element of
-     <span>sectioning content</span>, then from this point on
-     top-level heading candidates are being searched
-     for. (Specifically, we are looking for the nearest top-level
-     header for the current section.) Continue going backwards through
-     the previous siblings.</li>
-
-    </ol>
-
-   </li>
-
-   <li>If the answer from the previous step (the loop) is null, which
-   can only happen if the node has no preceeding headings and is not
-   contained in an element of <span>sectioning content</span>, then
-   there is no associated heading and no associated section.</li>
-
-   <li>Otherwise, if the answer from the earlier loop step is an
-   element of <span>sectioning content</span>, then the associated
-   section is that element and the associated heading is that element
-   of <span>sectioning content</span>'s associated heading
-   (i.e. repeat this algorithm for that section).</li>
-
-   <li>Otherwise, if the answer from that same earlier step is an
-   <code>h1</code>-<code>h6</code> element or a <code>header</code>
-   element, then the associated heading is that element and the
-   associated section is that heading element's associated section
-   (i.e. repeat this algorithm for that heading).</li>
-
-  </ol>
-
-  <p class="note">Not all nodes have an associated header or section.
-  For example, if a section is implied, as when multiple headers are
-  found in one element of <span>sectioning content</span>, then a node
-  in that section has an anonymous associated section (its section is
-  not represented by a real element), and the algorithm above does not
-  associate that node with any particular element of <span>sectioning
-  content</span>.</p>
-
-  <div class="example">
-   <p>For the following fragment:</p>
-   <pre><body>
- <h1>X</h1>
- <h2>X</h2>
- <blockquote>
-  <h3>X</h3>
- </blockquote>
- <p id="a">X</p>
- <h4>Text Node A</h4>
- <section>
-  <h5>X</h5>
- </section>
- <p>Text Node B</p>
-</body></pre>
-   <p>The associations are as follows (not all associations are shown):</p>
-   <table>
-    <thead>
-     <tr>
-      <th>Node</th> <th>Associated heading</th> <th>Associated section</th>
-     </tr>
-    </thead>
-    <tbody>
-     <tr> <td><code><body></code></td> <td><code><h1></code></td> <td><code><body></code></td> </tr>
-     <tr> <td><code><h1></code></td> <td><code><h1></code></td> <td><code><body></code></td> </tr>
-     <tr> <td><code><h2></code></td> <td><code><h2></code></td> <td>None.</td> </tr>
-     <tr> <td><code><blockquote></code></td> <td><code><h2></code></td> <td>None.</td> </tr>
-     <tr> <td><code><h3></code></td> <td><code><h3></code></td> <td><code><blockquote></code></td> </tr>
-     <tr> <td><code><p id="a"></code></td> <td><code><h2></code></td> <td>None.</td> </tr>
-     <tr> <td><code>Text Node A</code></td> <td><code><h4></code></td> <td>None.</td> </tr>
-     <tr> <td><code>Text Node B</code></td> <td><code><h1></code></td> <td><code><body></code></td> </tr>
-    </tbody>
-   </table>
-  </div>
-
-
-  <h5>Distinguishing site-wide headers from page headers</h5>
-
-  <p>Given the <a href="#outlines">hypothetical section tree</a>, but
-  ignoring any sections created for <code>nav</code> and
-  <code>aside</code> elements, and any of their descendants, if the
-  root of the tree is <span>the <code>body</code> element</span>'s
-  section, and it has only a single subsection which is created by an
-  <code>article</code> element, then the header of <span>the
-  <code>body</code> element</span> should be assumed to be a site-wide
-  header, and the header of the <code>article</code> element should be
-  assumed to be the page's header.</p>
-
   <p>If a page starts with a heading that is common to the whole site,
-  the document must be authored such that, in the document's <a
-  href="#outlines">hypothetical section tree</a>, ignoring any
-  sections created for <code>nav</code> and <code>aside</code>
-  elements and any of their descendants, the root of the tree is
-  <span>the <code>body</code> element</span>'s section, its heading is
-  the site-wide heading, <span>the <code>body</code> element</span>
-  has just one subsection, that subsection is created by an
-  <code>article</code> element, and that <code>article</code>'s header
-  is the page heading.</p>
+  the document must be authored such that, in the document's
+  <span>outline</span>, ignoring any sections created for
+  <code>nav</code> and <code>aside</code> elements and any of their
+  descendants, the tree has only one root section, <span>the
+  <code>body</code> element</span>'s section, its heading is the
+  site-wide heading, <span>the <code>body</code> element</span> has
+  just one subsection, that subsection is created by an
+  <code>article</code> element, and that <code>article</code>'s
+  heading is the page heading.</p>
 
   <p>If a page does not contain a site-wide heading, then the page
-  must be authored such that, in the document's <a
-  href="#outlines">hypothetical section tree</a>, ignoring any
-  sections created for <code>nav</code> and <code>aside</code>
-  elements and any of their descendants, either <span>the
-  <code>body</code> element</span> has no subsections, or it has more
-  than one subsection, or it has a single subsection but that
-  subsection is not created by an <code>article</code> element.</p>
+  must be authored such that, in the document's <span>outline</span>,
+  ignoring any sections created for <code>nav</code> and
+  <code>aside</code> elements and any of their descendants, either
+  <span>the <code>body</code> element</span> has no subsections, or it
+  has more than one subsection, or it has a single subsection but that
+  subsection is not created by an <code>article</code> element, or
+  there is more than one section at the root of the outline.</p>
 
   <p class="note">Conceptually, a site is thus a document with many
   articles — when those articles are split into many pages, the




More information about the Commit-Watchers mailing list