This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 23545 - section should only map to region if the section has an accessible name
Summary: section should only map to region if the section has an accessible name
Status: RESOLVED FIXED
Alias: None
Product: HTML WG
Classification: Unclassified
Component: HTML5 spec (show other bugs)
Version: unspecified
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: steve faulkner
QA Contact: HTML WG Bugzilla archive list
URL:
Whiteboard:
Keywords: a11y
Depends on:
Blocks:
 
Reported: 2013-10-17 09:57 UTC by steve faulkner
Modified: 2014-02-16 21:12 UTC (History)
11 users (show)

See Also:


Attachments

Comment 1 steve faulkner 2013-10-17 10:21:16 UTC
sections are being used a lot without headings even though the spec has in the past encouraged authors to use section for content that would appear in the doc outline. The HTML spec advice has been strengthened it now says authors SHOULD provide a heading, but that probably won't be enough to stem sectionorrhea (example: http://www.awardwinnersonly.com 393 sections 2 headings) it may make sense to make the role mapping contingent on the section having an accessible name (usually provided via a heading,  it could also be provided via aria-label, aria-labelledby or title)

This would have the effect once implemented of removing noise for users who consume the semantics
Comment 2 Joshue O Connor 2013-10-17 10:55:37 UTC
Currently, the specs mapping of <section> to region is resulting in a poor user experience. JAWS for example will announce each <section> element in a page as a 'Region'. Previously this had been reserved for ARIA landmark element IIRC.

A page may have a menu with 20 heading items, and if it has several <section> elements then this can bloat very quickly with each one being announced. Newer version of JAWS (> 13) may allow the user to navigate to them via the 'Landmark' quick keys, however this doesn't happen with JAWS 13 for example. Meaning the user will have ~ 60 <section> elements announced to them as they navigate (I've seen this in my work). This is a poor implementation of semantics and if continues may devalue them. If nothing else it adds to the 'don't do this as its bad for a11y, even if semantically correct' kind of argument - which none of us really want to have.
Comment 3 steve faulkner 2013-10-17 10:58:26 UTC
(In reply to Joshue O Connor from comment #2)
> Currently, the specs mapping of <section> to region is resulting in a poor
> user experience. JAWS for example will announce each <section> element in a
> page as a 'Region'. Previously this had been reserved for ARIA landmark
> element IIRC.
> 
> A page may have a menu with 20 heading items, and if it has several
> <section> elements then this can bloat very quickly with each one being
> announced. Newer version of JAWS (> 13) may allow the user to navigate to
> them via the 'Landmark' quick keys, however this doesn't happen with JAWS 13
> for example. Meaning the user will have ~ 60 <section> elements announced to
> them as they navigate (I've seen this in my work). This is a poor
> implementation of semantics and if continues may devalue them. If nothing
> else it adds to the 'don't do this as its bad for a11y, even if semantically
> correct' kind of argument - which none of us really want to have.

Hi Josh, note that it may not be a semantically correct use of section: read what the spec says about use of section: http://www.w3.org/html/wg/drafts/html/master/sections.html#the-section-element
Comment 4 LĂ©onie Watson 2013-10-17 13:27:51 UTC
Think this is an excellent suggestion. If the browsers only expose the region role when it's been extended by an accessible label, it will help enhance the UX for users of ATs that pick up that information.
Comment 5 David Bolter 2013-10-17 16:12:21 UTC
(In reply to steve faulkner from comment #1)

> This would have the effect once implemented of removing noise for users who
> consume the semantics

Noise is bad so this seems important.

Should the filtering of useless semantics happen in the browser or the AT?

How is the noise currently manifested?
Comment 6 steve faulkner 2013-10-28 11:43:24 UTC
(In reply to David Bolter from comment #5)
> (In reply to steve faulkner from comment #1)
> 
> > This would have the effect once implemented of removing noise for users who
> > consume the semantics
> 
> Noise is bad so this seems important.
> 
> Should the filtering of useless semantics happen in the browser or the AT?
> 
> How is the noise currently manifested?

i think the filtering should happen at browser level, its more robust and we can better ensure browsers actually implement the standards, where as AT...
Currently JAWS exposes section as a region (as per html spec) and users have reported it as an issue.
Comment 7 James Craig 2013-10-29 00:37:43 UTC
All browsers use heuristics to differentiate data tables from layout tables. It may be that they should use some heuristics here, too. Additionally, this is an area where implementations can differentiate themselves. 

I don't know that the heuristics need to happen in a spec. If you do make some suggestions of when UAs should heuristically hide semantics from an accessibility API, I'd expect them to be RFC-2119 MAY statements, not SHOULD or MUST.
Comment 8 alexander surkov 2013-11-06 15:07:31 UTC
Steve, can you please give details on the proposal? What provides an accessible name for the section? Is it supposed to come from related heading?
Comment 9 Rich Caloggero 2013-11-18 19:24:27 UTC
>How is the noise currently manifested?

See the following page which presents output generated by Jaws and NVDA in Firefox (results are similar with IE). Have not tested with VoiceOver on MacOS.

http://www.mit.edu/~rjc/aria/section.html

Jaws is the most noisy, producing both a  start and end message for every region.  It also produces a landmark marking the start of the region, and adds this to its landmarks list.  The usefulnes of landmarks is diminished as their number increases, and since many authors are now using section as a stand-in for div, this can completely flood the landmarks list with useless unnamed entries, making the entire list useless for that document.

NVDA, the other popular windows screen reader, neither creates start messages for sections, nor does it create a landmark.  Essentially, NVDA treats them as divs. 


>What provides an accessible name for the section? Is it supposed to come from related heading?

Accessible names are never recognized by NVDA on sections (nor by any other region roles). Jaws modifies the accessible name on all region roles via aria-label, aria-labelledby, and title, which is the propper behavior as far as I can determine from the spec.

Neither jaws nor NVDA handle outlining (as discussed in section 4.4.10 (Headings and sections) of
http://www.w3.org/html/wg/drafts/html/master/sections.html#headings-and-sections



In my opinion as a screen reader user, neither Jaws nor NVDA handle sections (or regions in general) correctly. 
- sections should only be mapped to region role if they have an accessible name;
- accessible names should be user-definable by aria-labelledby, aria-label, and title on all sectioning elements as defined by the above referenced spec

However, according to the spec, and confirmed in the document referenced above, adding role="presentation" to a section tag causes jaws to completely ignore it (i.e. region / region end messages disappear from the virtual buffer and the region is removed from the landmarks list)!! Perhaps this is how the community should remediate this issue until browsers and/or screen readers (specifically Jaws) change the way they handle section.
Comment 10 github bugzilla bot 2013-11-22 12:14:01 UTC
Commit pushed to master at https://github.com/w3c/html

https://github.com/w3c/html/commit/eef0c51bdc2fe70a3bacbc6c3a3af5524d2bfb6a
add note for SR implementers about sections

see Bug 23545
Comment 11 steve faulkner 2013-11-22 12:19:53 UTC
(In reply to github bugzilla bot from comment #10)
> Commit pushed to master at https://github.com/w3c/html
> 
> https://github.com/w3c/html/commit/eef0c51bdc2fe70a3bacbc6c3a3af5524d2bfb6a
> add note for SR implementers about sections
> 
> see Bug 23545

as a first step have added recommendation to section/region mapping:

Note:It is strongly recommended that user agents such as screen readers 
only convey the presence of, and provide navigation for section elements, when the section</code> element has an accessible name.

Lets see if we can get JAWS to change its behaviour based on a normative recommendation in the spec.
Comment 12 alexander surkov 2013-11-22 15:24:09 UTC
It seems the problem here people started to use section element in means of div element (which is wrong, i.e. an author error), section is mapped to ARIA region what makes AT to announce each section. So we discuss here how to fix author errors. Another example of author error would be what if people started to use role="region" as they use section element. This probably won't happen but it's dual example to what we observe with section element.

So we have two alternatives:
1) AT could ignore section with no name (it makes sense if there is no use case for these sections)
2) The browser exposes such section element as ordinal div (Steve's suggestion)
Comment 13 github bugzilla bot 2014-01-16 15:11:44 UTC
Commit pushed to CR at https://github.com/w3c/html

https://github.com/w3c/html/commit/eef0c51bdc2fe70a3bacbc6c3a3af5524d2bfb6a
add note for SR implementers about sections
Comment 14 steve faulkner 2014-02-16 21:12:20 UTC
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: added advice for user agents encouraging them to only expose as region when the section has an accessible name. See Comment 11
Rationale: encourage user agents to provide a better user experience, by not exposing semantic information when it is unnecessary.