AX: aria-hidden on container does not hide descendant popup buttons
authorcfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Mar 2013 08:51:52 +0000 (08:51 +0000)
committercfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Mar 2013 08:51:52 +0000 (08:51 +0000)
commit0b2a30743eeb78063991a051a179679d3c797807
treeeae0a3e6b2458571cf9151f0bef6a0f3888ef825
parent4ef0fbafe0cf5e1fc950c2bcea4f7fe320a47266
AX: aria-hidden on container does not hide descendant popup buttons
https://bugs.webkit.org/show_bug.cgi?id=112373

Reviewed by Ryosuke Niwa.

Source/WebCore:

There are a number of subclass AX objects that implement accessibilityIsIgnored()
to always return false. This means that even if their parent is aria-hidden=true
they still show up in the tree.

This re-organizes this base case of aria-hidden into AccessibilityObject so that
it can be re-used by these special subclasses where appropriate.

Test: accessibility/aria-hidden-hides-all-elements.html

* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::isImageMapLink):
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::computeAccessibilityIsIgnored):
* accessibility/AccessibilityListBox.cpp:
(WebCore):
* accessibility/AccessibilityListBox.h:
(AccessibilityListBox):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
(WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
(WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMediaControls.h:
(AccessibilityMediaControlsContainer):
* accessibility/AccessibilityMenuList.h:
(WebCore::AccessibilityMenuList::roleValue):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::computeAccessibilityIsIgnored):
(WebCore):
* accessibility/AccessibilityMockObject.h:
(AccessibilityMockObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibilityIsIgnoredDefaultForObject):
(WebCore):
(WebCore::AccessibilityObject::ariaIsHidden):
(WebCore::AccessibilityObject::accessibilityIsIgnoredBase):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollbar.h:
(AccessibilityScrollbar):
* accessibility/AccessibilitySlider.cpp:
(WebCore):
(WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
* accessibility/AccessibilitySlider.h:
(AccessibilitySlider):
* accessibility/AccessibilitySpinButton.h:
(WebCore::AccessibilitySpinButton::roleValue):
(AccessibilitySpinButtonPart):

LayoutTests:

* accessibility/aria-hidden-hides-all-elements-expected.txt: Added.
* accessibility/aria-hidden-hides-all-elements.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@145988 268f45cc-cd09-0410-ab3c-d52691b4dbfc
29 files changed:
LayoutTests/ChangeLog
LayoutTests/accessibility/aria-hidden-hides-all-elements-expected.txt [new file with mode: 0644]
LayoutTests/accessibility/aria-hidden-hides-all-elements.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityImageMapLink.h
Source/WebCore/accessibility/AccessibilityList.cpp
Source/WebCore/accessibility/AccessibilityListBox.cpp
Source/WebCore/accessibility/AccessibilityListBox.h
Source/WebCore/accessibility/AccessibilityListBoxOption.cpp
Source/WebCore/accessibility/AccessibilityMediaControls.cpp
Source/WebCore/accessibility/AccessibilityMediaControls.h
Source/WebCore/accessibility/AccessibilityMenuList.cpp
Source/WebCore/accessibility/AccessibilityMenuList.h
Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
Source/WebCore/accessibility/AccessibilityMockObject.cpp
Source/WebCore/accessibility/AccessibilityMockObject.h
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/AccessibilityRenderObject.h
Source/WebCore/accessibility/AccessibilityScrollbar.h
Source/WebCore/accessibility/AccessibilitySlider.cpp
Source/WebCore/accessibility/AccessibilitySlider.h
Source/WebCore/accessibility/AccessibilitySpinButton.h
Source/WebCore/accessibility/AccessibilityTable.cpp
Source/WebCore/accessibility/AccessibilityTableCell.cpp
Source/WebCore/accessibility/AccessibilityTableRow.cpp