In the first section titled "General Steps for Building an Accessible Widget with WAI-ARIA" there is sample toolbar markup which sets the tabindex of the toolbar to 0, and the tabindex of the first button to 0 as well. Assuming this is an example of using the roving tabindex technique, the toolbar shouldn't have a tabindex set, right? It should just be the first descendant. Additionally, the copy below the HTML example says "By avoiding tabindex on the toolbar and setting tabindex=0 on the first button...". So based on that it seems like the tabindex on the toolbar should be removed. Additionally, it'd be nice if the example didn't make use of inline JavaScript event listeners as that is not a best practice. Can't we just update the example so that it binds the listeners completely via JavaScript? For example: Section 3.2.1 mentions that the tabindex property was originally implemented in IE, but has now been implemented in Opera, Firefox, and Mozilla. You've left out Webkit/Safari - which has had support for tabindex on all elements since Safari 4. Also in section 3.2.1 it states that "currently there is no standard DOM interface to get the current element with keyboard focus". From my experience that is no longer the case. All of the modern browsers now support IE's "activeElement" interface on the Document object - a property that is now in HTML5. Section 3.2.7.3.1 has an example of labeling a landmark with its corresponding header element. It'd be nice if this example illustrated this using an HTML header element rather than the header role to re-inforce the best practice of using existing semantics of the host language when they are provided. So, this:

Top News Stories

Rather than this:

Top News Stories