Closed Bug 395258 Opened 17 years ago Closed 15 years ago

mapping of aria role spinbutton to MSAA

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
minor

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: pete, Assigned: davidb)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

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.
(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).
Status: UNCONFIRMED → NEW
Ever confirmed: true
Alexander, There currently is no IA2 role of SPINBOX but I could add it if you want it for FF3.
Blocks: aria, nicea11y
Severity: normal → minor
Surkov, getting our text support, events and stability correct are more important. Let's do all of that first.
See also bug 365893 for XUL and bug 390298 for ARIA spinners in ATK.
Attached patch patchSplinter Review
correct msaa role mapping
Attachment #282012 - Flags: review?(aaronleventhal)
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 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.
Attachment #282012 - Flags: review?(aaronleventhal) → review-
(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.
> 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?
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?
Assignee: aaronleventhal → david.bolter
(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.
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
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: