Last Comment Bug 395258 - mapping of aria role spinbutton to MSAA
: mapping of aria role spinbutton to MSAA
Status: RESOLVED WORKSFORME
:
Product: Core
Classification: Components
Component: Disability Access APIs (show other bugs)
: unspecified
: x86 Windows XP
: -- minor (vote)
: ---
Assigned To: David Bolter [:davidb]
:
: alexander :surkov
Mentors:
Depends on:
Blocks: aria nicea11y
  Show dependency treegraph
 
Reported: 2007-09-06 12:29 PDT by Pete Brunet
Modified: 2009-05-15 16:11 PDT (History)
3 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
patch (972 bytes, patch)
2007-09-23 08:39 PDT, alexander :surkov
aaronlev: review-
Details | Diff | Splinter Review

Description Pete Brunet 2007-09-06 12:29:53 PDT
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Build Identifier: 3.0a8pre

Mapping of ARIA role spinbutton to MSAA role SPINBUTTON is not in line with the MSAA spec.  An ARIA spin button derives from range -> input -> widget.  An MSAA SPINBUTTON is a container for an up and down BUTTON.

ATs will have to deal with the redefined meaning of MSAA SPINBUTTON as a special case for FF.

Considering the current (9/07) ARIA spec I don't see an alternative to redefining the meaning of SPINBUTTON.  ARIA currently has no equivalent to an MSAA SPINBUTTON which would be needed to implement an equivalent to Win spinners.

If we can update the ARIA spec, there are two alternatives that would allow an implementation that doesn't redefine the meaning of an MSAA SPINBUTTON:
1) Match the Win architecture, i.e. create a new ARIA role equivalent to MSAA SPINBUTTON.  The toolkits (like dojo) creating spinners would give the text portion an ARIA role of "range" or "input" and that would map to MSAA TEXT and the button portion would use an ARIA role which maps to MSAA SPINBUTTON.  The new ARIA role (MSAA SPINBUTTON equivalent) is needed because ATs need to find a TEXT object and a SPINBUTTON object.  (For now, I am assuming the physical placement of objects with those roles is how ATs detect spinners.)
2) Create a new ARIA role "spinbox" which would map to a new IA2 role SPINBOX.  IAValue would be implemented.

The second seems preferable.

Reproducible: Always

Steps to Reproduce:
An implementation of an ARIA spinbutton can be found at http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/test_Spinner.html
Actual Results:  
See details.

Expected Results:  
See details.
Comment 1 alexander :surkov 2007-09-11 21:20:59 PDT
(In reply to comment #0)

> 2) Create a new ARIA role "spinbox" which would map to a new IA2 role SPINBOX. 
> IAValue would be implemented.

Pete, it seems we have old version of AccessibleRole because there is no SPINBOX role there (http://lxr.mozilla.org/mozilla/source/other-licenses/ia2/AccessibleRole.idl).
Comment 2 Pete Brunet 2007-09-12 06:10:53 PDT
Alexander, There currently is no IA2 role of SPINBOX but I could add it if you want it for FF3.
Comment 3 Aaron Leventhal 2007-09-12 06:30:03 PDT
Surkov, getting our text support, events and stability correct are more important. Let's do all of that first.
Comment 4 Aaron Leventhal 2007-09-12 13:27:29 PDT
See also bug 365893 for XUL and bug 390298 for ARIA spinners in ATK.
Comment 5 alexander :surkov 2007-09-23 08:39:07 PDT
Created attachment 282012 [details] [diff] [review]
patch

correct msaa role mapping
Comment 6 alexander :surkov 2007-09-23 08:41:21 PDT
Pete, the second approach looks reasonable, it allows IA2 be compatible with aria/atk. If we would care about msaa then aria should be changed, I mean the first approach.
Comment 7 Aaron Leventhal 2007-09-24 09:58:23 PDT
Comment on attachment 282012 [details] [diff] [review]
patch

Surkov, we need to expose it as spinbutton otherwise the user won't know to use up/down arrow to change the value.

I don't think we need to do anything here at all. If it works fine in forms mode, that's good enough for now. The screen readers can tweak their support to work with what we have.
Comment 8 alexander :surkov 2007-09-24 19:59:09 PDT
(In reply to comment #7)
> (From update of attachment 282012 [details] [diff] [review])
> Surkov, we need to expose it as spinbutton otherwise the user won't know to use
> up/down arrow to change the value.

Note, bug 390298 supposes buttons aren't exposed in ally tree at all.

> I don't think we need to do anything here at all. If it works fine in forms
> mode, that's good enough for now. The screen readers can tweak their support to
> work with what we have.

What does "works fine in forms mode" mean? Why should screen readers have special support for firefox spinbuttons?

I though we should have a correct map roles for msaa and to add new role for IA2 like Pete suggested.
Comment 9 alexander :surkov 2007-11-29 00:56:51 PST
> 2) Create a new ARIA role "spinbox" which would map to a new IA2 role SPINBOX. 
> IAValue would be implemented.

Pete, can you give more explanation of this?
Comment 10 David Bolter [:davidb] 2009-05-14 13:46:55 PDT
Note http://www.w3.org/WAI/PF/aria-implementation/ currently suggests mapping to ROLE_SYSTEM_SPINBUTTON. I think AT will have to deal.

Pete, Alexander, do you agree with closing this as WONTFIX?
Comment 11 alexander :surkov 2009-05-15 05:24:10 PDT
(In reply to comment #10)
> Note http://www.w3.org/WAI/PF/aria-implementation/ currently suggests mapping
> to ROLE_SYSTEM_SPINBUTTON. I think AT will have to deal.
> 
> Pete, Alexander, do you agree with closing this as WONTFIX?

David, I wonder how much this is correct? I think we should know what screen readers expect.
Comment 12 David Bolter [:davidb] 2009-05-15 16:11:50 PDT
OK I have confirmation from a major vendor that what we do now is working. I think any previous assumption (comment #0) about what widgets a spin button contains must be broken in the world of ARIA, but at the same time I think we should continue exposing as ROLE_SYSTEM_SPINBUTTON. This is an AT side bug.

Cc'in Jamie. Please reopen if we need to triage NVDA with this test: http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/test_Spinner.html

Note You need to log in before you can comment on or make changes to this bug.