Bug 19023 - Need standard way to creating heading "streams"
Need standard way to creating heading "streams"
Status: RESOLVED LATER
Product: HTML WG
Classification: Unclassified
Component: HTML5 spec
unspecified
All All
: P2 normal
: ---
Assigned To: This bug has no owner yet - up for the taking
HTML WG Bugzilla archive list
: a11y
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-25 21:54 UTC by contributor
Modified: 2012-09-25 22:27 UTC (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description contributor 2012-09-25 21:54:58 UTC
This was was cloned from bug 11199 as part of operation LATER convergence.
Originally filed: 2010-11-02 18:19:00 +0000
Original reporter: Laurent Goderre <laurent.goderre@gmail.com>

================================================================================
 #0   Laurent Goderre                                 2010-11-02 18:19:18 +0000 
--------------------------------------------------------------------------------
It is important to define the document structure with proper heading to make the document more understandable to search engines and more easily navigable by Adaptive Technology. However as of now, there is now way to create a proper web page structure for page with navigational elements etc. The new nav, header and footer HTML 5 element help but from experience, nothing helps screen readers and other adaptive technologies like a clean and proper heading structure. Elements if these header, footer and nav needs to be defined in a hierarchy as well to allow users to jump to the breadcrumb section, navigation or any major part of the page. 

When trying to do so, web developers hit a major wall and debates arise. Some say that the page hierarchy should start with a h1 building the structure of the page until the main document is reach and another h1 starts it. Others claim that there can't be more than one h1 per page and this structure should be under the main document which is argued by some to be incorect because in many case these element are global to every page and therefore would not make sense to be under the document structure.

A solution I was thinking about was to create heading structure streams to allow multiple heading structures and allow user to switch to the one they want, may it be the navigation stream or the main document stream. This would also help search engine to assign weight to content by knowing what is relevant to the document and what has  navigational purpose.
================================================================================
 #1   Tab Atkins Jr.                                  2010-11-02 18:23:53 +0000 
--------------------------------------------------------------------------------
HTML5 defines an algorithm to extract an outline from a document based on sectioning elements and headings.
================================================================================
 #2   Laurent Goderre                                 2010-11-02 18:35:48 +0000 
--------------------------------------------------------------------------------
(In reply to comment #1)
> HTML5 defines an algorithm to extract an outline from a document based on
> sectioning elements and headings.

So we have to rely on WAI-ARIA to define the structure (which stream is the main document etc..)?
================================================================================
 #3   Tab Atkins Jr.                                  2010-11-03 12:06:05 +0000 
--------------------------------------------------------------------------------
(In reply to comment #2)
> (In reply to comment #1)
> > HTML5 defines an algorithm to extract an outline from a document based on
> > sectioning elements and headings.
> 
> So we have to rely on WAI-ARIA to define the structure (which stream is the
> main document etc..)?

There shouldn't be any need for additional structure or "streams".

The outline retains information about <nav>, etc.  Your user agent can choose to present just the <nav> headings, separate from the main document headings, all by itself.
================================================================================
 #4   Laurent Goderre                                 2010-11-03 14:16:01 +0000 
--------------------------------------------------------------------------------
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > HTML5 defines an algorithm to extract an outline from a document based on
> > > sectioning elements and headings.
> > 
> > So we have to rely on WAI-ARIA to define the structure (which stream is the
> > main document etc..)?
> 
> There shouldn't be any need for additional structure or "streams".
> 
> The outline retains information about <nav>, etc.  Your user agent can choose
> to present just the <nav> headings, separate from the main document headings,
> all by itself.

That would be semantically incorrect. On a web page not everything is related to the content and it's important to make a distinction. For example, a breadcrumb heading (hidden in graphic user agent but available for screen reader to jump to it) does not belong in the content structure. For example:

h2 Breadcrumbs
h1 History of writing
    h2 Prehistoric writings
    h2 Antiquity
        h3 Witing in Ancient Egypt
        h3 Writing in Ancient Greece
        h3 Writing in the Roman Empire
    h2 Medieval
h2 Footer

Breadcrumb and Footer, are very useful heading allowing screen reader users to more easily access part of the page but they don't belong with the same heading structure.
================================================================================
 #5   Tab Atkins Jr.                                  2010-11-03 16:12:17 +0000 
--------------------------------------------------------------------------------
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > (In reply to comment #1)
> > > > HTML5 defines an algorithm to extract an outline from a document based on
> > > > sectioning elements and headings.
> > > 
> > > So we have to rely on WAI-ARIA to define the structure (which stream is the
> > > main document etc..)?
> > 
> > There shouldn't be any need for additional structure or "streams".
> > 
> > The outline retains information about <nav>, etc.  Your user agent can choose
> > to present just the <nav> headings, separate from the main document headings,
> > all by itself.
> 
> That would be semantically incorrect. On a web page not everything is related
> to the content and it's important to make a distinction. For example, a
> breadcrumb heading (hidden in graphic user agent but available for screen
> reader to jump to it) does not belong in the content structure. For example:
> 
> h2 Breadcrumbs
> h1 History of writing
>     h2 Prehistoric writings
>     h2 Antiquity
>         h3 Witing in Ancient Egypt
>         h3 Writing in Ancient Greece
>         h3 Writing in the Roman Empire
>     h2 Medieval
> h2 Footer
> 
> Breadcrumb and Footer, are very useful heading allowing screen reader users to
> more easily access part of the page but they don't belong with the same heading
> structure.

...like I said, your user agent can choose to separate out some types of headings for you automatically, if they occur in a <nav> or similar rather than just part of the normal document structure.
================================================================================
 #6   Laurent Goderre                                 2010-11-03 16:15:32 +0000 
--------------------------------------------------------------------------------
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > (In reply to comment #2)
> > > > (In reply to comment #1)
> > > > > HTML5 defines an algorithm to extract an outline from a document based on
> > > > > sectioning elements and headings.
> > > > 
> > > > So we have to rely on WAI-ARIA to define the structure (which stream is the
> > > > main document etc..)?
> > > 
> > > There shouldn't be any need for additional structure or "streams".
> > > 
> > > The outline retains information about <nav>, etc.  Your user agent can choose
> > > to present just the <nav> headings, separate from the main document headings,
> > > all by itself.
> > 
> > That would be semantically incorrect. On a web page not everything is related
> > to the content and it's important to make a distinction. For example, a
> > breadcrumb heading (hidden in graphic user agent but available for screen
> > reader to jump to it) does not belong in the content structure. For example:
> > 
> > h2 Breadcrumbs
> > h1 History of writing
> >     h2 Prehistoric writings
> >     h2 Antiquity
> >         h3 Witing in Ancient Egypt
> >         h3 Writing in Ancient Greece
> >         h3 Writing in the Roman Empire
> >     h2 Medieval
> > h2 Footer
> > 
> > Breadcrumb and Footer, are very useful heading allowing screen reader users to
> > more easily access part of the page but they don't belong with the same heading
> > structure.
> 
> ...like I said, your user agent can choose to separate out some types of
> headings for you automatically, if they occur in a <nav> or similar rather than
> just part of the normal document structure.

I understand but that's just guessing from the user agent. My understanding was that HTML is to try to remove the guessing part from user agent by having a clear and semantic format.
================================================================================
 #7   Tab Atkins Jr.                                  2010-11-03 16:19:24 +0000 
--------------------------------------------------------------------------------
(In reply to comment #6)
> (In reply to comment #5)
> > ...like I said, your user agent can choose to separate out some types of
> > headings for you automatically, if they occur in a <nav> or similar rather than
> > just part of the normal document structure.
> 
> I understand but that's just guessing from the user agent. My understanding was
> that HTML is to try to remove the guessing part from user agent by having a
> clear and semantic format.

I didn't say anything about guessing.  The fact that a heading is in a <nav> indicates that it's a heading for the navigation, not a heading for the main content.  Thus, a user agent wanting to present a list of all navigation headings can, without any guessing involved, grab all the headings in the <nav>.

Similarly, a user agent could grab headings or links in <footer> separately.
================================================================================
 #8   Laurent Goderre                                 2010-11-03 16:27:13 +0000 
--------------------------------------------------------------------------------
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > ...like I said, your user agent can choose to separate out some types of
> > > headings for you automatically, if they occur in a <nav> or similar rather than
> > > just part of the normal document structure.
> > 
> > I understand but that's just guessing from the user agent. My understanding was
> > that HTML is to try to remove the guessing part from user agent by having a
> > clear and semantic format.
> 
> I didn't say anything about guessing.  The fact that a heading is in a <nav>
> indicates that it's a heading for the navigation, not a heading for the main
> content.  Thus, a user agent wanting to present a list of all navigation
> headings can, without any guessing involved, grab all the headings in the
> <nav>.
> 
> Similarly, a user agent could grab headings or links in <footer> separately.

What id the headings in nav and footer are in the same structure...then the user agent would break the structure because it doesn't know what is really going on.

In the web today, there is usually there type of content displayed on a page...Site level content, page related content and content itself and as per HTML 5, it's all mixed together.
================================================================================
 #9   Tab Atkins Jr.                                  2010-11-03 17:01:36 +0000 
--------------------------------------------------------------------------------
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > (In reply to comment #5)
> > > > ...like I said, your user agent can choose to separate out some types of
> > > > headings for you automatically, if they occur in a <nav> or similar rather than
> > > > just part of the normal document structure.
> > > 
> > > I understand but that's just guessing from the user agent. My understanding was
> > > that HTML is to try to remove the guessing part from user agent by having a
> > > clear and semantic format.
> > 
> > I didn't say anything about guessing.  The fact that a heading is in a <nav>
> > indicates that it's a heading for the navigation, not a heading for the main
> > content.  Thus, a user agent wanting to present a list of all navigation
> > headings can, without any guessing involved, grab all the headings in the
> > <nav>.
> > 
> > Similarly, a user agent could grab headings or links in <footer> separately.
> 
> What id the headings in nav and footer are in the same structure...then the
> user agent would break the structure because it doesn't know what is really
> going on.

I don't understand what such a structure would look like.  Could you give an example?


> In the web today, there is usually there type of content displayed on a
> page...Site level content, page related content and content itself and as per
> HTML 5, it's all mixed together.

Agreed that *currently* the structure is often mixed together.  This is why HTML5 introduced several new structural elements, so you can more explicitly indicate the structure of your page.
================================================================================
 #10  Michael Cooper                                  2010-11-23 16:56:03 +0000 
--------------------------------------------------------------------------------
Bug triage sub-team thinks this is not a HTML A11Y TF priority. The primary accessibility need is to provide headings at all; providing them in an outline or clearly associated with landmarks is helpful but only if implemented consistently. Further, HTML 5 provides various ways to achieve this (though none of them are mandatory). There could be some value in looking more closely at section types aka landmarks in HTML.next, but don't think we should in the HTML 5 timeframe. Furthermore, the issue is more with user agent presentation existing heading features than with the HTML spec itself.
================================================================================
 #11  Laurent Goderre                                 2010-11-23 17:11:46 +0000 
--------------------------------------------------------------------------------
(In reply to comment #10)
> Bug triage sub-team thinks this is not a HTML A11Y TF priority. The primary
> accessibility need is to provide headings at all; providing them in an outline
> or clearly associated with landmarks is helpful but only if implemented
> consistently. Further, HTML 5 provides various ways to achieve this (though
> none of them are mandatory). There could be some value in looking more closely
> at section types aka landmarks in HTML.next, but don't think we should in the
> HTML 5 timeframe. Furthermore, the issue is more with user agent presentation
> existing heading features than with the HTML spec itself.

WOW! Thank you! this got to be the best answer I had here so far. I would agree that it might not be desirable in the HTML 5 timeframe but it would be something to consider.

The way web content is displayed now, there is usually three levels on a page, Site-level information, page context information and page content itself. The streams would be a way for search engine to understand this structure better and also adaptive technologies user to switch to the level they want.
================================================================================
 #12  Ian 'Hixie' Hickson                             2011-01-01 06:06:31 +0000 
--------------------------------------------------------------------------------
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Partially Accepted
Change Description: none yet
Rationale: As noted by reporter in comment 11, we should revisit this for a future version.
================================================================================