[Bug 19023] New: Need standard way to creating heading "streams"

https://www.w3.org/Bugs/Public/show_bug.cgi?id=19023

           Summary: Need standard way to creating heading "streams"
           Product: HTML WG
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: a11y
          Severity: normal
          Priority: P2
         Component: HTML5 spec
        AssignedTo: dave.null@w3.org
        ReportedBy: contributor@whatwg.org
         QAContact: public-html-bugzilla@w3.org
                CC: ian@hixie.ch, mike@w3.org,
                    laura.lee.carlson@gmail.com,
                    public-html-wg-issue-tracking@w3.org,
                    public-html@w3.org, cooper@w3.org,
                    jackalmage@gmail.com, laurent.goderre@gmail.com


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.
================================================================================

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Tuesday, 25 September 2012 21:55:04 UTC