RE: Tree sample code

#1 is probably just do to our inexperience.  If it’s not needed, that’s great.

So, #2 is the point of this code sample.  Use the native semantics as far as they go, and then progressively enhance with ARIA.  I feel pretty strongly that this type of graceful degradation pattern should be supported if we want accessibility in the broadest range of user agents.

As a side note, I am getting position and nesting info with IE 8 Beta 2 and JAWS 9.0.2169 with the virtual cursor turned off, and I’m also seeing it in MSAA description field in Inspect32.  The child count is incorrect, and I haven’t yet figured out why.

From: Aaron M Leventhal []
Sent: Tuesday, September 02, 2008 5:56 AM
To: Cynthia Shelly
Cc: George Young;
Subject: Re: Tree sample code

Here are my comments on Microsoft's tree sample:

1. It uses aria-level, aria-setsize and aria-posinset when it doesn't need to.
The idea is that authors only need to do that if the tree is not DOM complete -- iow it's loaded dynamically. When the entire tree structure is there the user agent is supposed to calculate that info from the structure.

2. It uses <li><a/></li> constructs.
This seems to be to allow for graceful degredation for non-ARIA clients. However, it means that the tree has list, list item and tree item objects mixed together, and no longer looks like a tree widget to current generation ATs. Neither current ATs nor Firefox 3 will process the structure and automatically provide info like the level, posinset and setsize.
In general, the current implementors guide algorithm will not work with this tree. So either the tree needs to change, or the impl guide algorithm or both.

What do you suggest?

- Aaron


Cynthia Shelly <>


"" <>


George Young <>


07/07/2008 11:21 PM


Tree sample code


As promised, here is a zip of the tree sample I demo’d at the face to face.

Tree.htm uses only nested unordered lists of links (with onclick handlers) to achieve tree behavior.  JAWS in virtual cursor mode with medium verbosity does a good job of reading the list levels.  Tab+enter opens and closes the tree levels.

Ariatree.htm is the same tree, with aria markup added to the links.  With virtual cursor turned off, list level information is exposed to MSAA.  This was tested with IE8 beta 1 and JAWS 9.  There are a few bugs in what is exposed to MSAA by IE in this early build, which will be fixed.

I’ve copied George Young, who wrote the original tree, to which I added ARIA for the CSUN demo.  George is the best person to work with on combining this tree with any other samples that have more extensive keyboard handling features.[attachment "" deleted by Aaron M Leventhal/Cambridge/IBM]

Received on Friday, 5 September 2008 22:52:14 UTC