Comments on User Agent Implementation Guide for WAI-ARIA 1.0

Hi all.

Below please find comments and suggested corrections regarding
implementing WAI-ARIA on platforms supporting ATK and AT-SPI2. Please
let us know if you have any questions.

--Joanmarie Diggs and Alejandro Piņeiro
  GNOME Accessibility Project

----------

Under 4.1. Focus States and Events Table

The draft text for ATK/AT-SPI "focus event" currently states:

    object:state-changed:focused or object:focus

This is incorrect:

1. Nit: It's focus: not object:focus.

2. The focus: event is deprecated. If user agents wish to continue
   emitting this event for older screen readers, fine. However:

3. The object:state-changed:focused event is required regardless
   of what decision is made with respect to focus: events.


Under 5.4.1 Role Mapping Table

1. Role article should not be exposed as ROLE_DOCUMENT_FRAME. A document
   frame is not a section of a page. Moreover, as the ATK documentation
   states for this role:

       ATK_ROLE_DOCUMENT_FRAME
       The object is a visual frame or container which contains a
       view of document content. Document frames may occur within
       another Document instance, in which case the second document
       may be said to be embedded in the containing instance. HTML
       frames are often ROLE_DOCUMENT_FRAME. Either this object, or
       a singleton descendant, should implement the Document
       interface. Since: ATK-1.11.

   It would not be appropriate for an article to implement the Document
   interface.

   User agents using the current stable ATK should expose an article as
   ROLE_SECTION. However, in order to better accommodate both ATs and
   user agents, we have added a new ROLE_ARTICLE to ATK and AT-SPI2.
   User agents are encouraged to prefer this new role.

2. Role banner can be mapped to the new ROLE_LANDMARK that has been
   added to both ATK and AT-SPI2. The xml-roles:banner object attribute
   should remain so that the type of landmark can be identified.

3. Role checkbox: The use of an object attribute to expose a state
   (checkable) is not ideal. In the case of checkboxes, it is not needed
   because ATs assume that checkboxes are checkable. Having said that,
   because there are other objects that are checkable but which lack a
   role suggesting that, we have added a new state to both ATK and
   AT-SPI2: STATE_CHECKABLE.

4. Role combobox: As with checkbox, we have added a new state to both
   ATK and AT-SPI2: STATE_HAS_POPUP.

5. Role heading: lacks documentation as to how to expose the level.
   (object attribute, level:<value>)

6. Role listbox: Should be ROLE_LIST_BOX. This role is not new; it is
   already in ATK and AT-SPI2 stable.

7. Role log: We have added ROLE_LOG to both ATK and AT-SPI2.

8. Role marquee: ROLE_ANIMATION does not seem like a good fit. According
   to the ATK documentation:

       ATK_ROLE_ANIMATION
       An object which is an animated image

   But according to the current draft docs for the marquee role, this is
   a live region which can include textual content (e.g. stock tickers).
   So while it's animation-like; a marquee is not really an animation.
   There isn't a great alternative to ROLE_ANIMATION, so we added a new
   ROLE_MARQUEE to ATK and AT-SPI2.

9. Role math: Currently mapped to ROLE_UNKNOWN with no way for an AT to
   identify that it is math. User agents should expose something. Those
   sticking with stable could presumably do so via an object attribute.
   But we have added ROLE_MATH to ATK and AT-SPI2.

10. Role menu item, menuitemcheckbox, and menuitemradio. Prefer the new
    STATE_CHECKABLE over the object attribute.

11. Role navigation. Prefer the new ROLE_LANDMARK. Continue exposing the
    xml-roles:navigation so ATs know what kind of landmark it is.

12. Role note. Should be ROLE_COMMENT:

       ATK_ROLE_COMMENT
       An object found within a document and designed to present a
       comment, note, or other annotation. In some cases, this object
       might not be visible until activated. Since: ATK-2.1.0

13. Role radiogroup. Should be ROLE_GROUPING; not ROLE_PANEL:

       ATK_ROLE_GROUPING
       A group of related widgets. This group typically has a label.
       Since: ATK-2.1.0

14. Role row. Should be ROLE_TABLE_ROW; not ROLE_LIST_ITEM:

       ATK_ROLE_TABLE_ROW
       A row in a table. Since: ATK-2.1.0

15. Role timer. We added ROLE_TIMER to ATK and AT-SPI2.

16. Role treeitem. Should be ROLE_TREE_ITEM; not ROLE_LIST_ITEM:

       ATK_ROLE_TREE_ITEM
       An object that represents an element of a tree.
       Since: ATK-2.1.0

Received on Monday, 2 December 2013 21:18:20 UTC