Implementation questions around HTML structural elements and ARIA Landmarks

We're working on an implementation of accessibility for HTML structural elements in IE.  We have also implemented ARIA landmarks, which I showed at CSUN. (Neither is in a public build yet) These features are closely related and very similar, and we expect that they will be part of the same user experience in Narrator and other AT products.

There are two use cases that we're working to solve:

1)      Loop through all landmarks/structural elements on the page.  This is similar to heading navigation in screen readers or the F6 loop in Windows.

2)      Go to Main (or other element), which would apply to a subset of the landmarks, probably a different subset depending on the AT.

In both cases, when the user lands on a landmark/structural container, the type of landmark should be read along with the name of this particular landmark. To achieve this, we're taking the role or element name and copying it to the localized control type string.  Here's where we're running into a problem.

Question #1: There are structural elements and aria landmarks with equivalent functions and different names.  We're trying to decide if we should use the same localized control type string for these (and if so, which), or use the element or role even when they're different.  These are the items with conflict, and my proposals for how to handle them.  Does this make sense?

Role=banner and <header> both have localized control type of "Header."  Using the HTML name because it matches the footer (which ARIA doesn't have) and because it seems a more common name for the area at the top of the page.  In discussions with my internal team, people assumed "banner" was an ad and should be mapped to an image type, while header was the top area of the page.

Role=complementary and <aside> both have localized control type of "Aside." Because aside is more plain language, and easier to hear read by a screen reader.  Are there items that would be role=complementary where "aside" is not an accurate description?  I think they are the same, but I'm willing to be convinced that they are more like aside and complementary.

Role=contentinfo and <address> will be mapped separately with localized control types of "Content Information" and "Address" because address is a kind a content info, but there are other kinds.  Can anyone think of a more plain-language way of describing content info?  I don't think most end users will understand this term.

Role=navigation and <nav> both have localized control type of "Navigation" because this user-facing string is not a good place for a geeky abbreviation.

Question 2: Did I miss any name collisions?

Question 3: I don't think it makes sense to add <body> to the landmarks loop.  Does anyone disagree?

Question 4:  Does it make sense to add application to the landmarks loop?  It seems to be used mostly on the body tag.

Question 5: I don't think it makes sense to add <h1>-<h6> to the landmarks loop because 1) it would be redundant with existing heading navigation 2) Lots of landmarks will include headings and either flattening that structure or making users navigate a hierarchy seems like a bad user experience 3) and all of these other things are containers and headings are not.
Does anyone disagree?

Question 6:  Is there a browser/AT combo that you think has a particularly good user experience for navigating landmarks and structural elements?  What do you like about it?


Received on Thursday, 19 March 2015 17:44:04 UTC