haikuwebkit/Source/WebCore/accessibility/AccessibilityAttachment.h

60 lines
2.3 KiB
C
Raw Permalink Normal View History

AX: <attachment> element not accessible https://bugs.webkit.org/show_bug.cgi?id=156045 Reviewed by Joanmarie Diggs. Source/WebCore: Make this element accessible by exposing title, subtitle, action, progress to accessibility. Test: accessibility/attachment-element.html * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAttachment.cpp: Added. (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): (WebCore::AccessibilityAttachment::hasProgress): (WebCore::AccessibilityAttachment::valueForRange): (WebCore::AccessibilityAttachment::attachmentElement): (WebCore::AccessibilityAttachment::roleDescription): (WebCore::AccessibilityAttachment::computeAccessibilityIsIgnored): (WebCore::AccessibilityAttachment::accessibilityText): (WebCore::AccessibilityAttachment::accessibilityDescription): * accessibility/AccessibilityAttachment.h: Added. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::hasHighlighting): (WebCore::AccessibilityObject::roleDescription): (WebCore::AccessibilityObject::supportsRangeValue): (WebCore::AccessibilityObject::supportsARIASetSize): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAttachmentElement): (WebCore::AccessibilityObject::isHeading): (WebCore::AccessibilityObject::isLink): (WebCore::AccessibilityObject::isImage): (WebCore::AccessibilityObject::isRadioButton): (WebCore::AccessibilityObject::isListBox): (WebCore::AccessibilityObject::isListBoxOption): (WebCore::AccessibilityObject::isAttachment): (WebCore::AccessibilityObject::isMediaTimeline): (WebCore::AccessibilityObject::isMenuRelated): (WebCore::AccessibilityObject::isMenu): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityValue]): LayoutTests: * accessibility/attachment-element-expected.txt: Added. * accessibility/attachment-element.html: Added. * platform/efl/TestExpectations: * platform/gtk/TestExpectations: Canonical link: https://commits.webkit.org/174229@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-01 06:31:37 +00:00
/*
* Copyright (C) 2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
AX: <attachment> element not accessible https://bugs.webkit.org/show_bug.cgi?id=156045 Reviewed by Joanmarie Diggs. Source/WebCore: Make this element accessible by exposing title, subtitle, action, progress to accessibility. Test: accessibility/attachment-element.html * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAttachment.cpp: Added. (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): (WebCore::AccessibilityAttachment::hasProgress): (WebCore::AccessibilityAttachment::valueForRange): (WebCore::AccessibilityAttachment::attachmentElement): (WebCore::AccessibilityAttachment::roleDescription): (WebCore::AccessibilityAttachment::computeAccessibilityIsIgnored): (WebCore::AccessibilityAttachment::accessibilityText): (WebCore::AccessibilityAttachment::accessibilityDescription): * accessibility/AccessibilityAttachment.h: Added. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::hasHighlighting): (WebCore::AccessibilityObject::roleDescription): (WebCore::AccessibilityObject::supportsRangeValue): (WebCore::AccessibilityObject::supportsARIASetSize): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAttachmentElement): (WebCore::AccessibilityObject::isHeading): (WebCore::AccessibilityObject::isLink): (WebCore::AccessibilityObject::isImage): (WebCore::AccessibilityObject::isRadioButton): (WebCore::AccessibilityObject::isListBox): (WebCore::AccessibilityObject::isListBoxOption): (WebCore::AccessibilityObject::isAttachment): (WebCore::AccessibilityObject::isMediaTimeline): (WebCore::AccessibilityObject::isMenuRelated): (WebCore::AccessibilityObject::isMenu): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityValue]): LayoutTests: * accessibility/attachment-element-expected.txt: Added. * accessibility/attachment-element.html: Added. * platform/efl/TestExpectations: * platform/gtk/TestExpectations: Canonical link: https://commits.webkit.org/174229@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-01 06:31:37 +00:00
#if ENABLE(ATTACHMENT_ELEMENT)
#include "AccessibilityRenderObject.h"
namespace WebCore {
class HTMLAttachmentElement;
class RenderAttachment;
class AccessibilityAttachment final : public AccessibilityRenderObject {
public:
static Ref<AccessibilityAttachment> create(RenderAttachment*);
HTMLAttachmentElement* attachmentElement() const;
bool hasProgress(float* progress = nullptr) const;
private:
Modernize AccessibilityObject.h https://bugs.webkit.org/show_bug.cgi?id=178892 Reviewed by Tim Horton. The enums in AccessibilityObject.h are causing naming collisions with unified builds. This is what enum classes are for. HashMaps of enum classes still need a few casts to/from int. I also made some RefPtr's Ref's, use some initializer lists instead of values in the constructor implementation, and indentation fixing. No change in behavior. * accessibility/AXObjectCache.cpp: (WebCore::AXComputedObjectAttributeCache::getIgnored const): (WebCore::AXObjectCache::~AXObjectCache): (WebCore::AXObjectCache::getOrCreate): (WebCore::AXObjectCache::remove): (WebCore::AXObjectCache::notificationPostTimerFired): * accessibility/AXObjectCache.h: (WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes): (WebCore::AXComputedObjectAttributeCache::getIgnored const): * accessibility/AccessibilityARIAGrid.cpp: (WebCore::AccessibilityARIAGrid::addChildren): * accessibility/AccessibilityARIAGridCell.cpp: (WebCore::AccessibilityARIAGridCell::parentRowGroup const): * accessibility/AccessibilityARIAGridRow.cpp: (WebCore::AccessibilityARIAGridRow::headerObject): * accessibility/AccessibilityAttachment.cpp: (WebCore::AccessibilityAttachment::accessibilityText): * accessibility/AccessibilityAttachment.h: * accessibility/AccessibilityImageMapLink.cpp: (WebCore::AccessibilityImageMapLink::roleValue const): (WebCore::AccessibilityImageMapLink::accessibilityText): * accessibility/AccessibilityLabel.cpp: (WebCore::childrenContainOnlyStaticText): * accessibility/AccessibilityLabel.h: * accessibility/AccessibilityList.cpp: (WebCore::AccessibilityList::isUnorderedList const): (WebCore::AccessibilityList::isOrderedList const): (WebCore::AccessibilityList::determineAccessibilityRole): (WebCore::AccessibilityList::roleValue const): * accessibility/AccessibilityListBox.cpp: (WebCore::AccessibilityListBox::setSelectedChildren): (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const): * accessibility/AccessibilityListBox.h: * accessibility/AccessibilityListBoxOption.h: * accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::determineAccessibilityRole): (WebCore::AccessibilityMathMLElement::isMathScriptObject const): (WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const): * accessibility/AccessibilityMediaControls.cpp: (WebCore::AccessibilityMediaControl::accessibilityText): (WebCore::AccessibilityMediaControl::roleValue const): * accessibility/AccessibilityMediaControls.h: * accessibility/AccessibilityMenuList.cpp: (WebCore::AccessibilityMenuList::addChildren): * accessibility/AccessibilityMenuList.h: * accessibility/AccessibilityMenuListOption.h: * accessibility/AccessibilityMenuListPopup.cpp: (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const): * accessibility/AccessibilityMenuListPopup.h: * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::determineAccessibilityRole): (WebCore::AccessibilityNodeObject::canHaveChildren const): (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const): (WebCore::AccessibilityNodeObject::isSearchField const): (WebCore::AccessibilityNodeObject::isImage const): (WebCore::AccessibilityNodeObject::isPasswordField const): (WebCore::AccessibilityNodeObject::isInputImage const): (WebCore::AccessibilityNodeObject::isProgressIndicator const): (WebCore::AccessibilityNodeObject::isSlider const): (WebCore::AccessibilityNodeObject::isMenuRelated const): (WebCore::AccessibilityNodeObject::isMenu const): (WebCore::AccessibilityNodeObject::isMenuBar const): (WebCore::AccessibilityNodeObject::isMenuButton const): (WebCore::AccessibilityNodeObject::isMenuItem const): (WebCore::AccessibilityNodeObject::isEnabled const): (WebCore::AccessibilityNodeObject::isChecked const): (WebCore::AccessibilityNodeObject::supportsRequiredAttribute const): (WebCore::AccessibilityNodeObject::headingLevel const): (WebCore::AccessibilityNodeObject::isHeading const): (WebCore::AccessibilityNodeObject::isLink const): (WebCore::AccessibilityNodeObject::isGroup const): (WebCore::AccessibilityNodeObject::selectedRadioButton): (WebCore::AccessibilityNodeObject::checkboxOrRadioValue const): (WebCore::AccessibilityNodeObject::actionElement const): (WebCore::AccessibilityNodeObject::alterSliderValue): (WebCore::AccessibilityNodeObject::isGenericFocusableElement const): (WebCore::AccessibilityNodeObject::menuElementForMenuButton const): (WebCore::AccessibilityNodeObject::menuItemElementForMenu const): (WebCore::AccessibilityNodeObject::titleElementText const): (WebCore::AccessibilityNodeObject::alternativeText const): (WebCore::AccessibilityNodeObject::visibleText const): (WebCore::AccessibilityNodeObject::helpText const): (WebCore::AccessibilityNodeObject::accessibilityText): (WebCore::AccessibilityNodeObject::ariaLabeledByText const): (WebCore::AccessibilityNodeObject::accessibilityDescription const): (WebCore::AccessibilityNodeObject::roleIgnoresTitle const): (WebCore::AccessibilityNodeObject::hierarchicalLevel const): (WebCore::AccessibilityNodeObject::title const): (WebCore::AccessibilityNodeObject::text const): (WebCore::AccessibilityNodeObject::stringValue const): (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const): (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent const): (WebCore::AccessibilityNodeObject::canSetSelectedAttribute const): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::detach): (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex): (WebCore::AccessibilityObject::accessibleNameDerivesFromContent const): (WebCore::AccessibilityObject::isBlockquote const): (WebCore::AccessibilityObject::isTextControl const): (WebCore::AccessibilityObject::isARIATextControl const): (WebCore::AccessibilityObject::isLandmark const): (WebCore::AccessibilityObject::findMatchingObjects): (WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const): (WebCore::AccessibilityObject::selectText): (WebCore::AccessibilityObject::isARIAInput): (WebCore::AccessibilityObject::isARIAControl): (WebCore::AccessibilityObject::isRangeControl const): (WebCore::AccessibilityObject::visiblePositionForBounds const): (WebCore::AccessibilityObject::supportsARIAReadOnly const): (WebCore::AccessibilityObject::ariaReadOnlyValue const): (WebCore::AccessibilityObject::headingElementForNode): (WebCore::AccessibilityObject::ariaTreeRows): (WebCore::AccessibilityObject::ariaTreeItemContent): (WebCore::AccessibilityObject::ariaTreeItemDisclosedRows): (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole): (WebCore::AccessibilityObject::actionVerb const): (WebCore::AccessibilityObject::ariaCurrentState const): (WebCore::AccessibilityObject::ariaCurrentValue const): (WebCore::AccessibilityObject::orientation const): (WebCore::initializeRoleMap): (WebCore::AccessibilityObject::ariaRoleToWebCoreRole): (WebCore::AccessibilityObject::computedRoleString const): (WebCore::AccessibilityObject::supportsPressAction const): (WebCore::AccessibilityObject::sortDirection const): (WebCore::AccessibilityObject::supportsExpanded const): (WebCore::AccessibilityObject::isExpanded const): (WebCore::AccessibilityObject::supportsChecked const): (WebCore::AccessibilityObject::checkboxOrRadioValue const): (WebCore::AccessibilityObject::scrollByPage const): (WebCore::AccessibilityObject::lastKnownIsIgnoredValue): (WebCore::AccessibilityObject::setLastKnownIsIgnoredValue): (WebCore::AccessibilityObject::buttonRoleType const): (WebCore::AccessibilityObject::isButton const): (WebCore::AccessibilityObject::accessibilityIsIgnoredByDefault const): (WebCore::AccessibilityObject::defaultObjectInclusion const): (WebCore::AccessibilityObject::accessibilityIsIgnored const): (WebCore::AccessibilityObject::isContainedByPasswordField const): (WebCore::AccessibilityObject::AccessibilityObject): Deleted. * accessibility/AccessibilityObject.h: (WebCore::AccessibilityText::AccessibilityText): (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData): (WebCore::AccessibilityObject::isImageMap const): (WebCore::AccessibilityObject::isWebArea const): (WebCore::AccessibilityObject::isCheckbox const): (WebCore::AccessibilityObject::isRadioButton const): (WebCore::AccessibilityObject::isListBox const): (WebCore::AccessibilityObject::isSpinButton const): (WebCore::AccessibilityObject::isSwitch const): (WebCore::AccessibilityObject::isToggleButton const): (WebCore::AccessibilityObject::isTabList const): (WebCore::AccessibilityObject::isTabItem const): (WebCore::AccessibilityObject::isRadioGroup const): (WebCore::AccessibilityObject::isComboBox const): (WebCore::AccessibilityObject::isTree const): (WebCore::AccessibilityObject::isTreeGrid const): (WebCore::AccessibilityObject::isTreeItem const): (WebCore::AccessibilityObject::isScrollbar const): (WebCore::AccessibilityObject::isListItem const): (WebCore::AccessibilityObject::isScrollView const): (WebCore::AccessibilityObject::isCanvas const): (WebCore::AccessibilityObject::isPopUpButton const): (WebCore::AccessibilityObject::isColorWell const): (WebCore::AccessibilityObject::isSplitter const): (WebCore::AccessibilityObject::isToolbar const): (WebCore::AccessibilityObject::isSummary const): (WebCore::AccessibilityObject::isStaticText const): (WebCore::AccessibilityObject::ariaRoleAttribute const): (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): * accessibility/AccessibilityProgressIndicator.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::parentObject const): (WebCore::AccessibilityRenderObject::isAttachment const): (WebCore::AccessibilityRenderObject::helpText const): (WebCore::AccessibilityRenderObject::stringValue const): (WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const): (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers const): (WebCore::AccessibilityRenderObject::linkedUIElements const): (WebCore::AccessibilityRenderObject::isAllowedChildOfTree const): (WebCore::objectInclusionFromAltText): (WebCore::AccessibilityRenderObject::defaultObjectInclusion const): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const): (WebCore::AccessibilityRenderObject::selectedTextRange const): (WebCore::AccessibilityRenderObject::isTabItemSelected const): (WebCore::AccessibilityRenderObject::isFocused const): (WebCore::AccessibilityRenderObject::setSelectedRows): (WebCore::AccessibilityRenderObject::getDocumentLinks): (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const): (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged): (WebCore::AccessibilityRenderObject::supportsExpandedTextValue const): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::orientation const): (WebCore::AccessibilityRenderObject::inheritsPresentationalRole const): (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren const): (WebCore::AccessibilityRenderObject::canSetExpandedAttribute const): (WebCore::AccessibilityRenderObject::addImageMapChildren): (WebCore::AccessibilityRenderObject::addTextFieldChildren): (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation): (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic const): (WebCore::AccessibilityRenderObject::canHaveSelectedChildren const): (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren): (WebCore::AccessibilityRenderObject::selectedChildren): (WebCore::AccessibilityRenderObject::visibleChildren): (WebCore::AccessibilityRenderObject::tabChildren): (WebCore::AccessibilityRenderObject::actionVerb const): (WebCore::msaaRoleForRenderer): (WebCore::AccessibilityRenderObject::roleValueForMSAA const): * accessibility/AccessibilitySVGElement.cpp: (WebCore::AccessibilitySVGElement::accessibilityText): (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const): (WebCore::AccessibilitySVGElement::inheritsPresentationalRole const): (WebCore::AccessibilitySVGElement::determineAriaRoleAttribute const): (WebCore::AccessibilitySVGElement::determineAccessibilityRole): * accessibility/AccessibilitySVGRoot.h: * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::scrollBar): * accessibility/AccessibilityScrollView.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::orientation const): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::orientation const): (WebCore::AccessibilitySlider::addChildren): * accessibility/AccessibilitySlider.h: * accessibility/AccessibilitySpinButton.cpp: (WebCore::AccessibilitySpinButton::addChildren): * accessibility/AccessibilitySpinButton.h: * accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::hasARIARole const): (WebCore::AccessibilityTable::addChildren): (WebCore::AccessibilityTable::headerContainer): (WebCore::AccessibilityTable::roleValue const): (WebCore::AccessibilityTable::computeAccessibilityIsIgnored const): (WebCore::AccessibilityTable::titleElementText const): * accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const): (WebCore::AccessibilityTableCell::determineAccessibilityRole): * accessibility/AccessibilityTableColumn.cpp: (WebCore::AccessibilityTableColumn::headerObject): * accessibility/AccessibilityTableColumn.h: * accessibility/AccessibilityTableHeaderContainer.h: * accessibility/AccessibilityTableRow.cpp: (WebCore::AccessibilityTableRow::determineAccessibilityRole): (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored const): * accessibility/AccessibilityTree.cpp: (WebCore::AccessibilityTree::determineAccessibilityRole): * accessibility/ios/AccessibilityObjectIOS.mm: (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): (WebCore::AccessibilityObject::isInputTypePopupButton const): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]): (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]): (-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]): (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]): (-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]): (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]): (-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]): (-[WebAccessibilityObjectWrapper accessibilityTraits]): (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]): (-[WebAccessibilityObjectWrapper accessibilityLabel]): (-[WebAccessibilityObjectWrapper accessibilityValue]): (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]): (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]): (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]): (-[WebAccessibilityObjectWrapper treeItemParentForObject:]): (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]): (-[WebAccessibilityObjectWrapper accessibilitySortDirection]): * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]): (-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]): (-[WebAccessibilityObjectWrapperBase baseAccessibilityHelpText]): (-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]): (createAccessibilitySearchKeyMap): (accessibilitySearchKeyForString): (accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute): (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]): (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]): (createAccessibilityRoleMap): (roleValueToNSString): (-[WebAccessibilityObjectWrapper role]): (-[WebAccessibilityObjectWrapper subrole]): (-[WebAccessibilityObjectWrapper roleDescription]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]): (-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): Canonical link: https://commits.webkit.org/195062@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224074 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-27 00:37:06 +00:00
AccessibilityRole roleValue() const override { return AccessibilityRole::Button; }
AX: <attachment> element not accessible https://bugs.webkit.org/show_bug.cgi?id=156045 Reviewed by Joanmarie Diggs. Source/WebCore: Make this element accessible by exposing title, subtitle, action, progress to accessibility. Test: accessibility/attachment-element.html * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAttachment.cpp: Added. (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): (WebCore::AccessibilityAttachment::hasProgress): (WebCore::AccessibilityAttachment::valueForRange): (WebCore::AccessibilityAttachment::attachmentElement): (WebCore::AccessibilityAttachment::roleDescription): (WebCore::AccessibilityAttachment::computeAccessibilityIsIgnored): (WebCore::AccessibilityAttachment::accessibilityText): (WebCore::AccessibilityAttachment::accessibilityDescription): * accessibility/AccessibilityAttachment.h: Added. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::hasHighlighting): (WebCore::AccessibilityObject::roleDescription): (WebCore::AccessibilityObject::supportsRangeValue): (WebCore::AccessibilityObject::supportsARIASetSize): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAttachmentElement): (WebCore::AccessibilityObject::isHeading): (WebCore::AccessibilityObject::isLink): (WebCore::AccessibilityObject::isImage): (WebCore::AccessibilityObject::isRadioButton): (WebCore::AccessibilityObject::isListBox): (WebCore::AccessibilityObject::isListBoxOption): (WebCore::AccessibilityObject::isAttachment): (WebCore::AccessibilityObject::isMediaTimeline): (WebCore::AccessibilityObject::isMenuRelated): (WebCore::AccessibilityObject::isMenu): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityValue]): LayoutTests: * accessibility/attachment-element-expected.txt: Added. * accessibility/attachment-element.html: Added. * platform/efl/TestExpectations: * platform/gtk/TestExpectations: Canonical link: https://commits.webkit.org/174229@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-01 06:31:37 +00:00
bool isAttachmentElement() const override { return true; }
String roleDescription() const override;
float valueForRange() const override;
bool computeAccessibilityIsIgnored() const override;
AX: IsolatedTree: Implement more attributes https://bugs.webkit.org/show_bug.cgi?id=193911 <rdar://problem/47599217> Reviewed by Daniel Bates. Source/WebCore: Make use of new HIServices SPI to use a secondary AX thread. Store root node/focused node status in IsolatedTree rather than on the element. Implement the following attributes: children, parent, isIgnored, isTree, isTreeItem, relativeFrame, speechHint, title, description. Implement hit-testing using relative-frames. Ensure that WKAccessibilityWebPageObject queries happen on main thread when they need to. * SourcesCocoa.txt: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::generateIsolatedAccessibilityTree): * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::focusedUIElementForPage): * accessibility/AccessibilityAttachment.cpp: (WebCore::AccessibilityAttachment::accessibilityText const): (WebCore::AccessibilityAttachment::accessibilityText): Deleted. * accessibility/AccessibilityAttachment.h: * accessibility/AccessibilityImageMapLink.cpp: (WebCore::AccessibilityImageMapLink::accessibilityText const): (WebCore::AccessibilityImageMapLink::accessibilityText): Deleted. * accessibility/AccessibilityImageMapLink.h: * accessibility/AccessibilityMediaControls.cpp: (WebCore::AccessibilityMediaControl::accessibilityText const): (WebCore::AccessibilityMediaControl::accessibilityText): Deleted. * accessibility/AccessibilityMediaControls.h: * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::accessibilityText const): (WebCore::AccessibilityNodeObject::accessibilityText): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::convertFrameToSpace const): (WebCore::AccessibilityObject::relativeFrame const): (WebCore::AccessibilityObject::elementAccessibilityHitTest const): (WebCore::AccessibilityObject::focusedUIElement const): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::accessibilityText const): (WebCore::AccessibilityObject::isLink const): Deleted. (WebCore::AccessibilityObject::isImage const): Deleted. (WebCore::AccessibilityObject::isAttachment const): Deleted. (WebCore::AccessibilityObject::isFileUploadButton const): Deleted. (WebCore::AccessibilityObject::isImageMapLink const): Deleted. (WebCore::AccessibilityObject::isMediaControlLabel const): Deleted. (WebCore::AccessibilityObject::isTree const): Deleted. (WebCore::AccessibilityObject::isTreeItem const): Deleted. (WebCore::AccessibilityObject::isScrollbar const): Deleted. (WebCore::AccessibilityObject::accessibilityHitTest const): Deleted. (WebCore::AccessibilityObject::accessibilityText): Deleted. (WebCore::AccessibilityObject::roleValue const): Deleted. (WebCore::AccessibilityObject::wrapper const): Deleted. * accessibility/AccessibilityObjectInterface.h: Replaced. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isTabItemSelected const): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest const): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest const): (WebCore::AccessibilityRenderObject::accessibilityHitTest const): (WebCore::AccessibilityRenderObject::selectedChildren): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilitySVGElement.cpp: (WebCore::AccessibilitySVGElement::accessibilityText const): (WebCore::AccessibilitySVGElement::accessibilityText): Deleted. * accessibility/AccessibilitySVGElement.h: * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::accessibilityHitTest const): * accessibility/AccessibilityScrollView.h: * accessibility/ios/AccessibilityObjectIOS.mm: (WebCore::AccessibilityObject::fileUploadButtonReturnsValueInTitle const): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper fileUploadButtonReturnsValueInTitle]): Deleted. * accessibility/isolatedtree: Replaced. * accessibility/isolatedtree/AXIsolatedTree.cpp: Added. (WebCore::AXIsolatedTree::treePageCache): (WebCore::AXIsolatedTree::AXIsolatedTree): (WebCore::AXIsolatedTree::nodeInTreeForID): (WebCore::AXIsolatedTree::nodeForID const): (WebCore::AXIsolatedTree::focusedUIElement): (WebCore::AXIsolatedTree::setRootNodeID): (WebCore::AXIsolatedTree::setFocusedNodeID): (WebCore::AXIsolatedTree::setInitialRequestInProgress): (WebCore::AXIsolatedTree::applyPendingChanges): * accessibility/isolatedtree/AXIsolatedTree.h: Added. * accessibility/isolatedtree/AXIsolatedTreeNode.cpp: Added. (WebCore::AXIsolatedTreeNode::AXIsolatedTreeNode): (WebCore::AXIsolatedTreeNode::~AXIsolatedTreeNode): (WebCore::AXIsolatedTreeNode::initializeAttributeData): (WebCore::AXIsolatedTreeNode::setProperty): (WebCore::AXIsolatedTreeNode::setParent): (WebCore::AXIsolatedTreeNode::setTreeIdentifier): (WebCore::AXIsolatedTreeNode::focusedUIElement const): (WebCore::AXIsolatedTreeNode::parentObjectInterfaceUnignored const): (WebCore::AXIsolatedTreeNode::accessibilityHitTest const): (WebCore::AXIsolatedTreeNode::tree const): (WebCore::AXIsolatedTreeNode::rectAttributeValue const): (WebCore::AXIsolatedTreeNode::stringAttributeValue const): * accessibility/isolatedtree/AXIsolatedTreeNode.h: Added. * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::associateIsolatedTreeNode): * accessibility/mac/AccessibilityObjectBase.mm: Added. (WebCore::AccessibilityObject::speechHintAttributeValue const): (WebCore::AccessibilityObject::descriptionAttributeValue const): (WebCore::AccessibilityObject::titleAttributeValue const): (WebCore::AccessibilityObject::helpTextAttributeValue const): * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::fileUploadButtonReturnsValueInTitle const): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (addChildToArray): (convertToNSArray): (-[WebAccessibilityObjectWrapperBase isolatedTreeNode]): (-[WebAccessibilityObjectWrapperBase detach]): (-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]): (-[WebAccessibilityObjectWrapperBase accessibilityObject]): (-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]): (-[WebAccessibilityObjectWrapperBase axBackingObject]): (-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]): (-[WebAccessibilityObjectWrapperBase baseAccessibilitySpeechHint]): (-[WebAccessibilityObjectWrapperBase baseAccessibilityHelpText]): (convertPathToScreenSpaceFunction): (-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]): (-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]): (-[WebAccessibilityObjectWrapperBase titleTagShouldBeUsedInDescriptionField]): Deleted. (-[WebAccessibilityObjectWrapperBase fileUploadButtonReturnsValueInTitle]): Deleted. * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper IGNORE_WARNINGS_END]): (-[WebAccessibilityObjectWrapper childrenVectorSize]): (-[WebAccessibilityObjectWrapper childrenVectorArray]): (-[WebAccessibilityObjectWrapper position]): (-[WebAccessibilityObjectWrapper subrole]): (-[WebAccessibilityObjectWrapper roleDescription]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]): (-[WebAccessibilityObjectWrapper accessibilityHitTest:]): (-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]): Source/WebCore/PAL: * pal/spi/mac/HIServicesSPI.h: Source/WebKit: * Platform/spi/mac/AccessibilityPrivSPI.h: Added. * WebKit.xcodeproj/project.pbxproj: * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: (-[WKAccessibilityWebPageObjectBase clientSupportsIsolatedTree]): (-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): (-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]): * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: (-[WKAccessibilityWebPageObject IGNORE_WARNINGS_END]): (-[WKAccessibilityWebPageObject convertScreenPointToRootView:]): (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): (-[WKAccessibilityWebPageObject accessibilityAttributeSizeValue]): (-[WKAccessibilityWebPageObject accessibilityAttributePositionValue]): (-[WKAccessibilityWebPageObject accessibilityDataDetectorValue:point:]): (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): (-[WKAccessibilityWebPageObject accessibilityHitTest:]): Canonical link: https://commits.webkit.org/208976@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241321 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-12 22:55:33 +00:00
void accessibilityText(Vector<AccessibilityText>&) const override;
AX: <attachment> element not accessible https://bugs.webkit.org/show_bug.cgi?id=156045 Reviewed by Joanmarie Diggs. Source/WebCore: Make this element accessible by exposing title, subtitle, action, progress to accessibility. Test: accessibility/attachment-element.html * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAttachment.cpp: Added. (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): (WebCore::AccessibilityAttachment::hasProgress): (WebCore::AccessibilityAttachment::valueForRange): (WebCore::AccessibilityAttachment::attachmentElement): (WebCore::AccessibilityAttachment::roleDescription): (WebCore::AccessibilityAttachment::computeAccessibilityIsIgnored): (WebCore::AccessibilityAttachment::accessibilityText): (WebCore::AccessibilityAttachment::accessibilityDescription): * accessibility/AccessibilityAttachment.h: Added. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::hasHighlighting): (WebCore::AccessibilityObject::roleDescription): (WebCore::AccessibilityObject::supportsRangeValue): (WebCore::AccessibilityObject::supportsARIASetSize): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAttachmentElement): (WebCore::AccessibilityObject::isHeading): (WebCore::AccessibilityObject::isLink): (WebCore::AccessibilityObject::isImage): (WebCore::AccessibilityObject::isRadioButton): (WebCore::AccessibilityObject::isListBox): (WebCore::AccessibilityObject::isListBoxOption): (WebCore::AccessibilityObject::isAttachment): (WebCore::AccessibilityObject::isMediaTimeline): (WebCore::AccessibilityObject::isMenuRelated): (WebCore::AccessibilityObject::isMenu): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityValue]): LayoutTests: * accessibility/attachment-element-expected.txt: Added. * accessibility/attachment-element.html: Added. * platform/efl/TestExpectations: * platform/gtk/TestExpectations: Canonical link: https://commits.webkit.org/174229@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-01 06:31:37 +00:00
explicit AccessibilityAttachment(RenderAttachment*);
};
} // namespace WebCore
SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(AccessibilityAttachment, isAttachmentElement())
#endif // ENABLE(ATTACHMENT_ELEMENT)