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
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: chris fleizach
Keywords: InRadar
Depends on:
Reported: 2013-09-15 23:01 PDT by chris fleizach
Modified: 2013-09-16 15:56 PDT (History)
10 users (show)

See Also:

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

"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.

Comment 1 chris fleizach 2013-09-15 23:36:35 PDT
Created attachment 211741 [details]
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]
Comment 4 Build Bot 2013-09-16 08:57:39 PDT
Comment on attachment 211794 [details]

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]
Comment 6 Darin Adler 2013-09-16 14:54:42 PDT
Comment on attachment 211798 [details]

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