Bug 121408 - AX: ARIA tablist is disabled, but VoiceOver does not speak the tabs as dimmed
Summary: AX: ARIA tablist is disabled, but VoiceOver does not speak the tabs as dimmed
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2013-09-15 23:01 PDT by chris fleizach
Modified: 2013-09-16 15:56 PDT (History)
10 users (show)

See Also:


Attachments
patch (4.83 KB, patch)
2013-09-15 23:36 PDT, chris fleizach
no flags Details | Formatted Diff | Diff
patch (7.73 KB, patch)
2013-09-16 08:51 PDT, chris fleizach
buildbot: commit-queue-
Details | Formatted Diff | Diff
patch (4.82 KB, patch)
2013-09-16 09:06 PDT, chris fleizach
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description chris fleizach 2013-09-15 23:01:29 PDT
When a tablist is disabled, but VoiceOver does not speak the tabs as dimmed

http://www.w3.org/WAI/PF/aria/complete#aria-disabled
"The state of being disabled applies to the current element and all focusable descendant elements of the element on which the aria-disabled attribute is applied."

According to that, I think the safest thing to do would be to have WebKit expose AXEnabled: NO on the descendant elements as well. The current explicit "AXEnabled:YES" seems wrong.


<rdar://problem/13634680>
Comment 1 chris fleizach 2013-09-15 23:36:35 PDT
Created attachment 211741 [details]
patch
Comment 2 WebKit Commit Bot 2013-09-15 23:39:01 PDT
Attachment 211741 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/accessibility/aria-disabled-propagated-to-children-expected.txt', u'LayoutTests/accessibility/aria-disabled-propagated-to-children.html', u'Source/WebCore/ChangeLog', u'Source/WebCore/accessibility/AccessibilityNodeObject.cpp']" exit_code: 1
Source/WebCore/accessibility/AccessibilityNodeObject.cpp:610:  An else if statement should be written as an if statement when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 chris fleizach 2013-09-16 08:51:57 PDT
Created attachment 211794 [details]
patch
Comment 4 Build Bot 2013-09-16 08:57:39 PDT
Comment on attachment 211794 [details]
patch

Attachment 211794 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1810254
Comment 5 chris fleizach 2013-09-16 09:06:27 PDT
Created attachment 211798 [details]
patch
Comment 6 Darin Adler 2013-09-16 14:54:42 PDT
Comment on attachment 211798 [details]
patch

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

> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:598
> +    for (AccessibilityObject* object = static_cast<AccessibilityObject*>(const_cast<AccessibilityNodeObject*>(this)); object; object = object->parentObject()) {

The const_cast is needed, but the static_cast is not.
Comment 7 chris fleizach 2013-09-16 15:56:31 PDT
http://trac.webkit.org/changeset/155909