Bug 117837 - [Windows] AX: Radio buttons with "tab" role should describe themselves as tabs
Summary: [Windows] AX: Radio buttons with "tab" role should describe themselves as tabs
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Brent Fulgham
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-20 10:39 PDT by Brent Fulgham
Modified: 2013-06-21 09:37 PDT (History)
10 users (show)

See Also:


Attachments
Patch (6.87 KB, patch)
2013-06-20 17:20 PDT, Brent Fulgham
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion (502.01 KB, application/zip)
2013-06-20 21:24 PDT, Build Bot
no flags Details
Updated with Mac results (7.72 KB, patch)
2013-06-20 22:14 PDT, Brent Fulgham
cfleizach: review+
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from APPLE-EWS-4 for win-future (798.24 KB, application/zip)
2013-06-21 03:15 PDT, Build Bot
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Brent Fulgham 2013-06-20 10:39:07 PDT
The Windows accessibility layer is blindly reporting its accessibility role based on the specific rendering object used to implement the feature in the browser.  This breaks down in the specific case of a set of radio buttons contained in a 'role="tablist"' marked with an accessibility 'role="tab"'.  We should be speaking "tab" in this case, as that is the intent of the mark-up.

Currently we speak "radio button", which is inaccurate.
Comment 1 Brent Fulgham 2013-06-20 10:40:27 PDT
This is related to <rdar://problem/12476099>.
Comment 2 Brent Fulgham 2013-06-20 17:08:34 PDT
Before the attached patch, we would show the following result:
========================================================
Tab A  Tab B  Tab C
This tests that the aria roles for tab and tablist work as expected for buttons.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


tabList.role = page tab list
tab1.role = radio button
tab1.title = Tab A
PASS tab1.childrenCount is 0
tab2.role = radio button
tab2.title = Tab B
PASS successfullyParsed is true

TEST COMPLETE
========================================================
Tab A  Tab B  Tab C
This tests that the aria roles for tab and tablist work as expected for buttons.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


tabList.role = page tab list
tab1.role = page tab
tab1.title = Tab A
PASS tab1.childrenCount is 0
tab2.role = page tab
tab2.title = Tab B
PASS successfullyParsed is true

TEST COMPLETE
Comment 3 Brent Fulgham 2013-06-20 17:20:00 PDT
Created attachment 205131 [details]
Patch
Comment 4 chris fleizach 2013-06-20 17:50:43 PDT
Comment on attachment 205131 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=205131&action=review

> Source/WebCore/accessibility/AccessibilityNodeObject.h:103
> +    virtual bool canSetSelectedAttribute() const OVERRIDE;

I don't see anyone calling this method. Is it necessary?
Comment 5 Build Bot 2013-06-20 21:24:24 PDT
Comment on attachment 205131 [details]
Patch

Attachment 205131 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/918438

New failing tests:
accessibility/aria-tab-role-on-buttons.html
Comment 6 Build Bot 2013-06-20 21:24:25 PDT
Created attachment 205145 [details]
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06  Port: mac-mountainlion  Platform: Mac OS X 10.8.3
Comment 7 Brent Fulgham 2013-06-20 22:14:18 PDT
Created attachment 205147 [details]
Updated with Mac results
Comment 8 Brent Fulgham 2013-06-20 22:49:04 PDT
(In reply to comment #4)
> (From update of attachment 205131 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=205131&action=review
> 
> > Source/WebCore/accessibility/AccessibilityNodeObject.h:103
> > +    virtual bool canSetSelectedAttribute() const OVERRIDE;
> 
> I don't see anyone calling this method. Is it necessary?

Yes.  It's used by WebKit\win\AccessibleBase.cpp to expose the "Selectable" state to the accessibility layer.  Without this, NVDA and the accessibility inspector don't recognize that the tab pane is selectable, and don't properly support using the space bar to activate the tab.
Comment 9 Build Bot 2013-06-21 03:15:53 PDT
Comment on attachment 205147 [details]
Updated with Mac results

Attachment 205147 [details] did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/858835

New failing tests:
fast/frames/seamless/seamless-nested-crash.html
Comment 10 Build Bot 2013-06-21 03:15:55 PDT
Created attachment 205166 [details]
Archive of layout-test-results from APPLE-EWS-4 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: APPLE-EWS-4  Port: win-future  Platform: CYGWIN_NT-6.1-WOW64-1.7.20-0.266-5-3-i686-32bit
Comment 11 Brent Fulgham 2013-06-21 09:30:27 PDT
This EWS failure does not occur on local Windows builds.
Comment 12 Brent Fulgham 2013-06-21 09:37:05 PDT
Committed r151841: <http://trac.webkit.org/changeset/151841>