Create base class common to AccessibilityObject and AXIsolatedTreeNode.
authorandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Oct 2019 20:44:34 +0000 (20:44 +0000)
committerandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Oct 2019 20:44:34 +0000 (20:44 +0000)
https://bugs.webkit.org/show_bug.cgi?id=203408

Reviewed by Chris Fleizach.

Source/WebCore:

No new tests needed since this doesn't change any functionality.

AXCoreObject is now a common base class for both AccessibilityObject and
AXIsolatedTreeNode. All client code should use AXCoreObject instead of
any of the derived classes. This will allow to seamlessly switch
between using AXIsolatedTreeNode in the secondary thread and
AccessibilityObject in the main thread when needed. This change also
allows for cleaner client code, encapsulating the decision whether
AXIsolatedTreeNode can respond to a request or need to resort to its
corresponding AccessibilityObject, and reducing the number of compile
time flag checks for ENABLE(ACCESSIBILITY_ISOLATED_TREE).

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::focusedImageMapUIElement):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::getAXID):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::setTextMarkerDataWithCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addRowDescendant):
* accessibility/AccessibilityARIAGrid.h:
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::parentTable const):
(WebCore::AccessibilityARIAGridCell::rowIndexRange const):
(WebCore::AccessibilityARIAGridCell::axRowSpanWithRowIndex const):
(WebCore::AccessibilityARIAGridCell::columnIndexRange const):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow const):
(WebCore::AccessibilityARIAGridRow::headerObject):
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityLabel.cpp:
(WebCore::AccessibilityLabel::insertChild):
* accessibility/AccessibilityLabel.h:
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::elementAccessibilityHitTest const):
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityMathMLElement.cpp:
(WebCore::AccessibilityMathMLElement::isMathScriptObject const):
(WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):
(WebCore::AccessibilityMathMLElement::mathRadicandObject):
(WebCore::AccessibilityMathMLElement::mathRootIndexObject):
(WebCore::AccessibilityMathMLElement::mathNumeratorObject):
(WebCore::AccessibilityMathMLElement::mathDenominatorObject):
(WebCore::AccessibilityMathMLElement::mathUnderObject):
(WebCore::AccessibilityMathMLElement::mathOverObject):
(WebCore::AccessibilityMathMLElement::mathBaseObject):
(WebCore::AccessibilityMathMLElement::mathSubscriptObject):
(WebCore::AccessibilityMathMLElement::mathSuperscriptObject):
* accessibility/AccessibilityMathMLElement.h:
* accessibility/AccessibilityMediaControls.h:
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::addChildren):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::childrenChanged):
(WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::selectedRadioButton):
(WebCore::AccessibilityNodeObject::selectedTabItem):
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
(WebCore::AccessibilityObject::isAccessibilityTextSearchMatch):
(WebCore::AccessibilityObject::containsText const):
(WebCore::AccessibilityObject::parentObjectUnignored const):
(WebCore::appendAccessibilityObject):
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
(WebCore::appendChildrenToArray):
(WebCore::AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::isDescendantOfObject const):
(WebCore::AccessibilityObject::isAncestorOfObject const):
(WebCore::AccessibilityObject::elementAccessibilityHitTest const):
(WebCore::AccessibilityObject::focusedUIElement const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::isOnScreen const):
(WebCore::AccessibilityObject::accessibilityIsIgnored const):
(WebCore::AccessibilityObject::selectedListItem):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
(WebCore::AccessibilityObject::accessibilityObjectContainsText const): Deleted.
(WebCore::AccessibilityObject::isOnscreen const): Deleted.
* accessibility/AccessibilityObject.h:
(isType):
(WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode): Deleted.
(WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData): Deleted.
(WebCore::AccessibilityIsIgnoredFromParentData::isNull const): Deleted.
(WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria): Deleted.
(WebCore::VisiblePositionRange::VisiblePositionRange): Deleted.
(WebCore::VisiblePositionRange::isNull const): Deleted.
(WebCore::PlainTextRange::PlainTextRange): Deleted.
(WebCore::PlainTextRange::isNull const): Deleted.
(WebCore::AccessibilitySearchTextCriteria::AccessibilitySearchTextCriteria): Deleted.
(WebCore::AccessibilityTextOperation::AccessibilityTextOperation): Deleted.
(WebCore::AccessibilityObject::setAXObjectID): Deleted.
(WebCore::AccessibilityObject::init): Deleted.
(WebCore::AccessibilityObject::isAccessibilityNodeObject const): Deleted.
(WebCore::AccessibilityObject::isAccessibilityRenderObject const): Deleted.
(WebCore::AccessibilityObject::isAccessibilityScrollbar const): Deleted.
(WebCore::AccessibilityObject::isAccessibilityScrollView const): Deleted.
(WebCore::AccessibilityObject::isAccessibilitySVGRoot const): Deleted.
(WebCore::AccessibilityObject::isAccessibilitySVGElement const): Deleted.
(WebCore::AccessibilityObject::isAttachmentElement const): Deleted.
(WebCore::AccessibilityObject::isHeading const): Deleted.
(WebCore::AccessibilityObject::isImageMap const): Deleted.
(WebCore::AccessibilityObject::isNativeImage const): Deleted.
(WebCore::AccessibilityObject::isImageButton const): Deleted.
(WebCore::AccessibilityObject::isPasswordField const): Deleted.
(WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): Deleted.
(WebCore::AccessibilityObject::isNativeTextControl const): Deleted.
(WebCore::AccessibilityObject::isSearchField const): Deleted.
(WebCore::AccessibilityObject::isWebArea const): Deleted.
(WebCore::AccessibilityObject::isCheckbox const): Deleted.
(WebCore::AccessibilityObject::isRadioButton const): Deleted.
(WebCore::AccessibilityObject::isNativeListBox const): Deleted.
(WebCore::AccessibilityObject::isListBox const): Deleted.
(WebCore::AccessibilityObject::isListBoxOption const): Deleted.
(WebCore::AccessibilityObject::isMediaTimeline const): Deleted.
(WebCore::AccessibilityObject::isMenuRelated const): Deleted.
(WebCore::AccessibilityObject::isMenu const): Deleted.
(WebCore::AccessibilityObject::isMenuBar const): Deleted.
(WebCore::AccessibilityObject::isMenuButton const): Deleted.
(WebCore::AccessibilityObject::isMenuItem const): Deleted.
(WebCore::AccessibilityObject::isInputImage const): Deleted.
(WebCore::AccessibilityObject::isProgressIndicator const): Deleted.
(WebCore::AccessibilityObject::isSlider const): Deleted.
(WebCore::AccessibilityObject::isSliderThumb const): Deleted.
(WebCore::AccessibilityObject::isInputSlider const): Deleted.
(WebCore::AccessibilityObject::isControl const): Deleted.
(WebCore::AccessibilityObject::isLabel const): Deleted.
(WebCore::AccessibilityObject::isList const): Deleted.
(WebCore::AccessibilityObject::isTable const): Deleted.
(WebCore::AccessibilityObject::isDataTable const): Deleted.
(WebCore::AccessibilityObject::isTableRow const): Deleted.
(WebCore::AccessibilityObject::isTableColumn const): Deleted.
(WebCore::AccessibilityObject::isTableCell const): Deleted.
(WebCore::AccessibilityObject::isFieldset const): Deleted.
(WebCore::AccessibilityObject::isGroup const): Deleted.
(WebCore::AccessibilityObject::isARIATreeGridRow const): Deleted.
(WebCore::AccessibilityObject::isMenuList const): Deleted.
(WebCore::AccessibilityObject::isMenuListPopup const): Deleted.
(WebCore::AccessibilityObject::isMenuListOption const): Deleted.
(WebCore::AccessibilityObject::isSpinButton const): Deleted.
(WebCore::AccessibilityObject::isNativeSpinButton const): Deleted.
(WebCore::AccessibilityObject::isSpinButtonPart const): Deleted.
(WebCore::AccessibilityObject::isMockObject const): Deleted.
(WebCore::AccessibilityObject::isMediaObject const): Deleted.
(WebCore::AccessibilityObject::isSwitch const): Deleted.
(WebCore::AccessibilityObject::isToggleButton const): Deleted.
(WebCore::AccessibilityObject::isTabList const): Deleted.
(WebCore::AccessibilityObject::isTabItem const): Deleted.
(WebCore::AccessibilityObject::isRadioGroup const): Deleted.
(WebCore::AccessibilityObject::isComboBox const): Deleted.
(WebCore::AccessibilityObject::isTreeGrid const): Deleted.
(WebCore::AccessibilityObject::isListItem const): Deleted.
(WebCore::AccessibilityObject::isCheckboxOrRadio const): Deleted.
(WebCore::AccessibilityObject::isScrollView const): Deleted.
(WebCore::AccessibilityObject::isCanvas const): Deleted.
(WebCore::AccessibilityObject::isPopUpButton const): Deleted.
(WebCore::AccessibilityObject::isColorWell const): Deleted.
(WebCore::AccessibilityObject::isSplitter const): Deleted.
(WebCore::AccessibilityObject::isToolbar const): Deleted.
(WebCore::AccessibilityObject::isSummary const): Deleted.
(WebCore::AccessibilityObject::isChecked const): Deleted.
(WebCore::AccessibilityObject::isEnabled const): Deleted.
(WebCore::AccessibilityObject::isSelected const): Deleted.
(WebCore::AccessibilityObject::isFocused const): Deleted.
(WebCore::AccessibilityObject::isHovered const): Deleted.
(WebCore::AccessibilityObject::isIndeterminate const): Deleted.
(WebCore::AccessibilityObject::isLoaded const): Deleted.
(WebCore::AccessibilityObject::isMultiSelectable const): Deleted.
(WebCore::AccessibilityObject::isOffScreen const): Deleted.
(WebCore::AccessibilityObject::isPressed const): Deleted.
(WebCore::AccessibilityObject::isUnvisited const): Deleted.
(WebCore::AccessibilityObject::isVisited const): Deleted.
(WebCore::AccessibilityObject::isRequired const): Deleted.
(WebCore::AccessibilityObject::supportsRequiredAttribute const): Deleted.
(WebCore::AccessibilityObject::isLinked const): Deleted.
(WebCore::AccessibilityObject::isVisible const): Deleted.
(WebCore::AccessibilityObject::isCollapsed const): Deleted.
(WebCore::AccessibilityObject::setIsExpanded): Deleted.
(WebCore::AccessibilityObject::isSelectedOptionActive const): Deleted.
(WebCore::AccessibilityObject::hasBoldFont const): Deleted.
(WebCore::AccessibilityObject::hasItalicFont const): Deleted.
(WebCore::AccessibilityObject::hasPlainText const): Deleted.
(WebCore::AccessibilityObject::hasSameFont const): Deleted.
(WebCore::AccessibilityObject::hasSameFontColor const): Deleted.
(WebCore::AccessibilityObject::hasSameStyle const): Deleted.
(WebCore::AccessibilityObject::isStaticText const): Deleted.
(WebCore::AccessibilityObject::hasUnderline const): Deleted.
(WebCore::AccessibilityObject::canSetFocusAttribute const): Deleted.
(WebCore::AccessibilityObject::canSetTextRangeAttributes const): Deleted.
(WebCore::AccessibilityObject::canSetValueAttribute const): Deleted.
(WebCore::AccessibilityObject::canSetNumericValue const): Deleted.
(WebCore::AccessibilityObject::canSetSelectedAttribute const): Deleted.
(WebCore::AccessibilityObject::canSetSelectedChildrenAttribute const): Deleted.
(WebCore::AccessibilityObject::canSetExpandedAttribute const): Deleted.
(WebCore::AccessibilityObject::node const): Deleted.
(WebCore::AccessibilityObject::renderer const): Deleted.
(WebCore::AccessibilityObject::headingLevel const): Deleted.
(WebCore::AccessibilityObject::tableLevel const): Deleted.
(WebCore::AccessibilityObject::valueDescription const): Deleted.
(WebCore::AccessibilityObject::valueForRange const): Deleted.
(WebCore::AccessibilityObject::maxValueForRange const): Deleted.
(WebCore::AccessibilityObject::minValueForRange const): Deleted.
(WebCore::AccessibilityObject::stepValueForRange const): Deleted.
(WebCore::AccessibilityObject::selectedRadioButton): Deleted.
(WebCore::AccessibilityObject::selectedTabItem): Deleted.
(WebCore::AccessibilityObject::layoutCount const): Deleted.
(WebCore::AccessibilityObject::estimatedLoadingProgress const): Deleted.
(WebCore::AccessibilityObject::supportsARIAOwns const): Deleted.
(WebCore::AccessibilityObject::hasPopup const): Deleted.
(WebCore::AccessibilityObject::canvasHasFallbackContent const): Deleted.
(WebCore::AccessibilityObject::supportsARIADropping const): Deleted.
(WebCore::AccessibilityObject::supportsARIADragging const): Deleted.
(WebCore::AccessibilityObject::isARIAGrabbed): Deleted.
(WebCore::AccessibilityObject::setARIAGrabbed): Deleted.
(WebCore::AccessibilityObject::determineARIADropEffects): Deleted.
(WebCore::AccessibilityObject::firstChild const): Deleted.
(WebCore::AccessibilityObject::lastChild const): Deleted.
(WebCore::AccessibilityObject::previousSibling const): Deleted.
(WebCore::AccessibilityObject::nextSibling const): Deleted.
(WebCore::AccessibilityObject::parentObject const): Deleted.
(WebCore::AccessibilityObject::parentObjectIfExists const): Deleted.
(WebCore::AccessibilityObject::isDescendantOfBarrenParent const): Deleted.
(WebCore::AccessibilityObject::observableObject const): Deleted.
(WebCore::AccessibilityObject::linkedUIElements const): Deleted.
(WebCore::AccessibilityObject::titleUIElement const): Deleted.
(WebCore::AccessibilityObject::exposesTitleUIElement const): Deleted.
(WebCore::AccessibilityObject::correspondingLabelForControlElement const): Deleted.
(WebCore::AccessibilityObject::correspondingControlForLabelElement const): Deleted.
(WebCore::AccessibilityObject::scrollBar): Deleted.
(WebCore::AccessibilityObject::ariaRoleAttribute const): Deleted.
(WebCore::AccessibilityObject::isPresentationalChildOfAriaRole const): Deleted.
(WebCore::AccessibilityObject::ariaRoleHasPresentationalChildren const): Deleted.
(WebCore::AccessibilityObject::inheritsPresentationalRole const): Deleted.
(WebCore::AccessibilityObject::accessibilityText const): Deleted.
(WebCore::AccessibilityObject::setAccessibleName): Deleted.
(WebCore::AccessibilityObject::accessibilityDescription const): Deleted.
(WebCore::AccessibilityObject::title const): Deleted.
(WebCore::AccessibilityObject::helpText const): Deleted.
(WebCore::AccessibilityObject::isARIAStaticText const): Deleted.
(WebCore::AccessibilityObject::stringValue const): Deleted.
(WebCore::AccessibilityObject::textUnderElement const): Deleted.
(WebCore::AccessibilityObject::text const): Deleted.
(WebCore::AccessibilityObject::textLength const): Deleted.
(WebCore::AccessibilityObject::ariaLabeledByAttribute const): Deleted.
(WebCore::AccessibilityObject::ariaDescribedByAttribute const): Deleted.
(WebCore::AccessibilityObject::expandedTextValue const): Deleted.
(WebCore::AccessibilityObject::supportsExpandedTextValue const): Deleted.
(WebCore::AccessibilityObject::colorValue const): Deleted.
(WebCore::AccessibilityObject::axObjectID const): Deleted.
(WebCore::AccessibilityObject::anchorElement const): Deleted.
(WebCore::AccessibilityObject::actionElement const): Deleted.
(WebCore::AccessibilityObject::boundingBoxRect const): Deleted.
(WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect const): Deleted.
(WebCore::AccessibilityObject::size const): Deleted.
(WebCore::AccessibilityObject::elementPath const): Deleted.
(WebCore::AccessibilityObject::supportsPath const): Deleted.
(WebCore::AccessibilityObject::selectedTextRange const): Deleted.
(WebCore::AccessibilityObject::selectionStart const): Deleted.
(WebCore::AccessibilityObject::selectionEnd const): Deleted.
(WebCore::AccessibilityObject::url const): Deleted.
(WebCore::AccessibilityObject::selection const): Deleted.
(WebCore::AccessibilityObject::selectedText const): Deleted.
(WebCore::AccessibilityObject::accessKey const): Deleted.
(WebCore::AccessibilityObject::widget const): Deleted.
(WebCore::AccessibilityObject::widgetForAttachmentView const): Deleted.
(WebCore::AccessibilityObject::hierarchicalLevel const): Deleted.
(WebCore::AccessibilityObject::setFocused): Deleted.
(WebCore::AccessibilityObject::setSelectedText): Deleted.
(WebCore::AccessibilityObject::setSelectedTextRange): Deleted.
(WebCore::AccessibilityObject::setValue): Deleted.
(WebCore::AccessibilityObject::setSelected): Deleted.
(WebCore::AccessibilityObject::setSelectedRows): Deleted.
(WebCore::AccessibilityObject::makeRangeVisible): Deleted.
(WebCore::AccessibilityObject::performDefaultAction): Deleted.
(WebCore::AccessibilityObject::increment): Deleted.
(WebCore::AccessibilityObject::decrement): Deleted.
(WebCore::AccessibilityObject::childrenChanged): Deleted.
(WebCore::AccessibilityObject::textChanged): Deleted.
(WebCore::AccessibilityObject::updateAccessibilityRole): Deleted.
(WebCore::AccessibilityObject::addChildren): Deleted.
(WebCore::AccessibilityObject::shouldIgnoreAttributeRole const): Deleted.
(WebCore::AccessibilityObject::canHaveChildren const): Deleted.
(WebCore::AccessibilityObject::hasChildren const): Deleted.
(WebCore::AccessibilityObject::setNeedsToUpdateChildren): Deleted.
(WebCore::AccessibilityObject::setNeedsToUpdateSubtree): Deleted.
(WebCore::AccessibilityObject::needsToUpdateChildren const): Deleted.
(WebCore::AccessibilityObject::detachFromParent): Deleted.
(WebCore::AccessibilityObject::isDetachedFromParent): Deleted.
(WebCore::AccessibilityObject::canHaveSelectedChildren const): Deleted.
(WebCore::AccessibilityObject::selectedChildren): Deleted.
(WebCore::AccessibilityObject::visibleChildren): Deleted.
(WebCore::AccessibilityObject::tabChildren): Deleted.
(WebCore::AccessibilityObject::shouldFocusActiveDescendant const): Deleted.
(WebCore::AccessibilityObject::activeDescendant const): Deleted.
(WebCore::AccessibilityObject::handleActiveDescendantChanged): Deleted.
(WebCore::AccessibilityObject::handleAriaExpandedChanged): Deleted.
(WebCore::AccessibilityObject::visiblePositionRange const): Deleted.
(WebCore::AccessibilityObject::visiblePositionRangeForLine const): Deleted.
(WebCore::AccessibilityObject::boundsForVisiblePositionRange const): Deleted.
(WebCore::AccessibilityObject::boundsForRange const): Deleted.
(WebCore::AccessibilityObject::setSelectedVisiblePositionRange const): Deleted.
(WebCore::AccessibilityObject::visiblePositionForPoint const): Deleted.
(WebCore::AccessibilityObject::nextVisiblePosition const): Deleted.
(WebCore::AccessibilityObject::previousVisiblePosition const): Deleted.
(WebCore::AccessibilityObject::visiblePositionForIndex const): Deleted.
(WebCore::AccessibilityObject::indexForVisiblePosition const): Deleted.
(WebCore::AccessibilityObject::index const): Deleted.
(WebCore::AccessibilityObject::lineBreaks const): Deleted.
(WebCore::AccessibilityObject::doAXRangeForLine const): Deleted.
(WebCore::AccessibilityObject::doAXRangeForIndex const): Deleted.
(WebCore::AccessibilityObject::doAXStringForRange const): Deleted.
(WebCore::AccessibilityObject::doAXBoundsForRange const): Deleted.
(WebCore::AccessibilityObject::doAXBoundsForRangeUsingCharacterOffset const): Deleted.
(WebCore::AccessibilityObject::stringValueForMSAA const): Deleted.
(WebCore::AccessibilityObject::stringRoleForMSAA const): Deleted.
(WebCore::AccessibilityObject::nameForMSAA const): Deleted.
(WebCore::AccessibilityObject::descriptionForMSAA const): Deleted.
(WebCore::AccessibilityObject::roleValueForMSAA const): Deleted.
(WebCore::AccessibilityObject::passwordFieldValue const): Deleted.
(WebCore::AccessibilityObject::liveRegionStatus const): Deleted.
(WebCore::AccessibilityObject::liveRegionRelevant const): Deleted.
(WebCore::AccessibilityObject::liveRegionAtomic const): Deleted.
(WebCore::AccessibilityObject::isBusy const): Deleted.
(WebCore::AccessibilityObject::speakAsProperty const): Deleted.
(WebCore::AccessibilityObject::isMathElement const): Deleted.
(WebCore::AccessibilityObject::isMathFraction const): Deleted.
(WebCore::AccessibilityObject::isMathFenced const): Deleted.
(WebCore::AccessibilityObject::isMathSubscriptSuperscript const): Deleted.
(WebCore::AccessibilityObject::isMathRow const): Deleted.
(WebCore::AccessibilityObject::isMathUnderOver const): Deleted.
(WebCore::AccessibilityObject::isMathRoot const): Deleted.
(WebCore::AccessibilityObject::isMathSquareRoot const): Deleted.
(WebCore::AccessibilityObject::isMathText const): Deleted.
(WebCore::AccessibilityObject::isMathNumber const): Deleted.
(WebCore::AccessibilityObject::isMathOperator const): Deleted.
(WebCore::AccessibilityObject::isMathFenceOperator const): Deleted.
(WebCore::AccessibilityObject::isMathSeparatorOperator const): Deleted.
(WebCore::AccessibilityObject::isMathIdentifier const): Deleted.
(WebCore::AccessibilityObject::isMathTable const): Deleted.
(WebCore::AccessibilityObject::isMathTableRow const): Deleted.
(WebCore::AccessibilityObject::isMathTableCell const): Deleted.
(WebCore::AccessibilityObject::isMathMultiscript const): Deleted.
(WebCore::AccessibilityObject::isMathToken const): Deleted.
(WebCore::AccessibilityObject::isMathScriptObject const): Deleted.
(WebCore::AccessibilityObject::isMathMultiscriptObject const): Deleted.
(WebCore::AccessibilityObject::mathRadicandObject): Deleted.
(WebCore::AccessibilityObject::mathRootIndexObject): Deleted.
(WebCore::AccessibilityObject::mathUnderObject): Deleted.
(WebCore::AccessibilityObject::mathOverObject): Deleted.
(WebCore::AccessibilityObject::mathNumeratorObject): Deleted.
(WebCore::AccessibilityObject::mathDenominatorObject): Deleted.
(WebCore::AccessibilityObject::mathBaseObject): Deleted.
(WebCore::AccessibilityObject::mathSubscriptObject): Deleted.
(WebCore::AccessibilityObject::mathSuperscriptObject): Deleted.
(WebCore::AccessibilityObject::mathFencedOpenString const): Deleted.
(WebCore::AccessibilityObject::mathFencedCloseString const): Deleted.
(WebCore::AccessibilityObject::mathLineThickness const): Deleted.
(WebCore::AccessibilityObject::isAnonymousMathOperator const): Deleted.
(WebCore::AccessibilityObject::mathPrescripts): Deleted.
(WebCore::AccessibilityObject::mathPostscripts): Deleted.
(WebCore::AccessibilityObject::isHidden const): Deleted.
(WebCore::AccessibilityObject::setWrapper): Deleted.
(WebCore::AccessibilityObject::overrideAttachmentParent): Deleted.
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): Deleted.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Deleted.
(WebCore::AccessibilityObject::clearIsIgnoredFromParentData): Deleted.
(WebCore::AccessibilityObject::setIsIgnoredFromParentData): Deleted.
(WebCore::AccessibilityObject::children): Deleted.
(WebCore::AccessibilityObject::updateBackingStore): Deleted.
* accessibility/AccessibilityObjectInterface.h:
(WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
(WebCore::AccessibilitySearchTextCriteria::AccessibilitySearchTextCriteria):
(WebCore::AccessibilityTextOperation::AccessibilityTextOperation):
(WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode):
(WebCore::PlainTextRange::PlainTextRange):
(WebCore::PlainTextRange::isNull const):
(WebCore::VisiblePositionRange::VisiblePositionRange):
(WebCore::VisiblePositionRange::isNull const):
(WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData):
(WebCore::AccessibilityIsIgnoredFromParentData::isNull const):
(WebCore::AccessibilityObjectInterface::isAccessibilityObject const): Deleted.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest const):
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest const):
(WebCore::AccessibilityRenderObject::elementAccessibilityHitTest const):
(WebCore::AccessibilityRenderObject::accessibilityHitTest const):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::accessibilityHitTest const):
* accessibility/AccessibilityScrollView.h:
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
(WebCore::AccessibilitySlider::elementAccessibilityHitTest const):
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
* accessibility/AccessibilitySpinButton.h:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::rowHeaders):
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentRow const):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::headerObject):
* accessibility/AccessibilityTableRow.h:
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::getListObject):
(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
* accessibility/atk/WebKitAccessible.cpp:
(interfaceMaskFromObject):
* accessibility/atk/WebKitAccessibleHyperlink.cpp:
(rangeLengthForObject):
(webkitAccessibleHyperlinkGetStartIndex):
(webkitAccessibleHyperlinkGetEndIndex):
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
(webkitAccessibleHypertextGetLink):
(webkitAccessibleHypertextGetNLinks):
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(listObjectForCoreSelection):
(optionFromList):
(optionFromSelection):
(webkitAccessibleSelectionAddSelection):
(webkitAccessibleSelectionRefSelection):
(webkitAccessibleSelectionIsChildSelected):
(webkitAccessibleSelectionRemoveSelection):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(offsetAdjustmentForListItem):
(webCoreOffsetToAtkOffset):
(webkitAccessibleTextGetCaretOffset):
* accessibility/atk/WebKitAccessibleUtil.cpp:
(objectFocusedAndCaretOffsetUnignored):
* accessibility/atk/WebKitAccessibleUtil.h:
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::overrideAttachmentParent):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AccessibilityUnignoredAncestor):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityContainer]):
(-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
* accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedTreeNode::focusedUIElement const):
(WebCore::AXIsolatedTreeNode::parentObjectInterfaceUnignored const):
(WebCore::AXIsolatedTreeNode::accessibilityHitTest const):
* accessibility/isolatedtree/AXIsolatedTreeNode.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::overrideAttachmentParent):
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(addChildToArray):
(-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapperBase axBackingObject]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
* accessibility/win/AXObjectCacheWin.cpp:
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::emitTextSelectionChange):
(WebCore::maybeEmitTextFocusChange):
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* inspector/InspectorAuditAccessibilityObject.cpp:
(WebCore::accessiblityObjectForNode):
(WebCore::InspectorAuditAccessibilityObject::getElementsByComputedRole):
(WebCore::InspectorAuditAccessibilityObject::getActiveDescendant):
(WebCore::addChildren):
(WebCore::InspectorAuditAccessibilityObject::getChildNodes):
(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):
(WebCore::InspectorAuditAccessibilityObject::getControlledNodes):
(WebCore::InspectorAuditAccessibilityObject::getFlowedNodes):
(WebCore::InspectorAuditAccessibilityObject::getMouseEventNode):
(WebCore::InspectorAuditAccessibilityObject::getOwnedNodes):
(WebCore::InspectorAuditAccessibilityObject::getParentNode):
(WebCore::InspectorAuditAccessibilityObject::getSelectedChildNodes):
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::processAccessibilityChildren):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/agents/InspectorDOMAgent.h:

Source/WebKit:

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityRootObject):
(WKAccessibilityFocusedObject):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

62 files changed:
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AXObjectCache.cpp
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/accessibility/AccessibilityARIAGrid.cpp
Source/WebCore/accessibility/AccessibilityARIAGrid.h
Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp
Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp
Source/WebCore/accessibility/AccessibilityARIAGridRow.h
Source/WebCore/accessibility/AccessibilityLabel.cpp
Source/WebCore/accessibility/AccessibilityLabel.h
Source/WebCore/accessibility/AccessibilityListBox.cpp
Source/WebCore/accessibility/AccessibilityListBox.h
Source/WebCore/accessibility/AccessibilityMathMLElement.cpp
Source/WebCore/accessibility/AccessibilityMathMLElement.h
Source/WebCore/accessibility/AccessibilityMediaControls.h
Source/WebCore/accessibility/AccessibilityMenuList.cpp
Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
Source/WebCore/accessibility/AccessibilityNodeObject.cpp
Source/WebCore/accessibility/AccessibilityNodeObject.h
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityObjectInterface.h
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/AccessibilityRenderObject.h
Source/WebCore/accessibility/AccessibilityScrollView.cpp
Source/WebCore/accessibility/AccessibilityScrollView.h
Source/WebCore/accessibility/AccessibilitySlider.cpp
Source/WebCore/accessibility/AccessibilitySlider.h
Source/WebCore/accessibility/AccessibilitySpinButton.cpp
Source/WebCore/accessibility/AccessibilitySpinButton.h
Source/WebCore/accessibility/AccessibilityTable.cpp
Source/WebCore/accessibility/AccessibilityTableCell.cpp
Source/WebCore/accessibility/AccessibilityTableColumn.cpp
Source/WebCore/accessibility/AccessibilityTableColumn.h
Source/WebCore/accessibility/AccessibilityTableRow.cpp
Source/WebCore/accessibility/AccessibilityTableRow.h
Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
Source/WebCore/accessibility/atk/WebKitAccessible.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleHyperlink.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleUtil.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h
Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm
Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp
Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.h
Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
Source/WebCore/accessibility/win/AXObjectCacheWin.cpp
Source/WebCore/editing/atk/FrameSelectionAtk.cpp
Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp
Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
Source/WebCore/inspector/agents/InspectorDOMAgent.h
Source/WebKit/ChangeLog
Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
Source/WebKitLegacy/win/AccessibleBase.cpp

index e46641b..eca58e3 100644 (file)
@@ -1,3 +1,520 @@
+2019-10-30  Andres Gonzalez  <andresg_22@apple.com>
+
+        Create base class common to AccessibilityObject and AXIsolatedTreeNode.
+        https://bugs.webkit.org/show_bug.cgi?id=203408
+
+        Reviewed by Chris Fleizach.
+
+        No new tests needed since this doesn't change any functionality.
+
+        AXCoreObject is now a common base class for both AccessibilityObject and
+        AXIsolatedTreeNode. All client code should use AXCoreObject instead of
+        any of the derived classes. This will allow to seamlessly switch
+        between using AXIsolatedTreeNode in the secondary thread and
+        AccessibilityObject in the main thread when needed. This change also
+        allows for cleaner client code, encapsulating the decision whether
+        AXIsolatedTreeNode can respond to a request or need to resort to its
+        corresponding AccessibilityObject, and reducing the number of compile
+        time flag checks for ENABLE(ACCESSIBILITY_ISOLATED_TREE).
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::~AXObjectCache):
+        (WebCore::AXObjectCache::focusedImageMapUIElement):
+        (WebCore::AXObjectCache::focusedUIElementForPage):
+        (WebCore::AXObjectCache::getOrCreate):
+        (WebCore::AXObjectCache::remove):
+        (WebCore::AXObjectCache::getAXID):
+        (WebCore::AXObjectCache::childrenChanged):
+        (WebCore::AXObjectCache::notificationPostTimerFired):
+        (WebCore::AXObjectCache::postNotification):
+        (WebCore::AXObjectCache::setTextMarkerDataWithCharacterOffset):
+        (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
+        (WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
+        (WebCore::AXObjectCache::performDeferredCacheUpdate):
+        * accessibility/AXObjectCache.h:
+        (WebCore::AXObjectCache::childrenChanged):
+        * accessibility/AccessibilityARIAGrid.cpp:
+        (WebCore::AccessibilityARIAGrid::addTableCellChild):
+        (WebCore::AccessibilityARIAGrid::addRowDescendant):
+        * accessibility/AccessibilityARIAGrid.h:
+        * accessibility/AccessibilityARIAGridCell.cpp:
+        (WebCore::AccessibilityARIAGridCell::parentTable const):
+        (WebCore::AccessibilityARIAGridCell::rowIndexRange const):
+        (WebCore::AccessibilityARIAGridCell::axRowSpanWithRowIndex const):
+        (WebCore::AccessibilityARIAGridCell::columnIndexRange const):
+        * accessibility/AccessibilityARIAGridRow.cpp:
+        (WebCore::AccessibilityARIAGridRow::disclosedRows):
+        (WebCore::AccessibilityARIAGridRow::disclosedByRow const):
+        (WebCore::AccessibilityARIAGridRow::headerObject):
+        * accessibility/AccessibilityARIAGridRow.h:
+        * accessibility/AccessibilityLabel.cpp:
+        (WebCore::AccessibilityLabel::insertChild):
+        * accessibility/AccessibilityLabel.h:
+        * accessibility/AccessibilityListBox.cpp:
+        (WebCore::AccessibilityListBox::elementAccessibilityHitTest const):
+        * accessibility/AccessibilityListBox.h:
+        * accessibility/AccessibilityMathMLElement.cpp:
+        (WebCore::AccessibilityMathMLElement::isMathScriptObject const):
+        (WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):
+        (WebCore::AccessibilityMathMLElement::mathRadicandObject):
+        (WebCore::AccessibilityMathMLElement::mathRootIndexObject):
+        (WebCore::AccessibilityMathMLElement::mathNumeratorObject):
+        (WebCore::AccessibilityMathMLElement::mathDenominatorObject):
+        (WebCore::AccessibilityMathMLElement::mathUnderObject):
+        (WebCore::AccessibilityMathMLElement::mathOverObject):
+        (WebCore::AccessibilityMathMLElement::mathBaseObject):
+        (WebCore::AccessibilityMathMLElement::mathSubscriptObject):
+        (WebCore::AccessibilityMathMLElement::mathSuperscriptObject):
+        * accessibility/AccessibilityMathMLElement.h:
+        * accessibility/AccessibilityMediaControls.h:
+        * accessibility/AccessibilityMenuList.cpp:
+        (WebCore::AccessibilityMenuList::addChildren):
+        * accessibility/AccessibilityMenuListPopup.cpp:
+        (WebCore::AccessibilityMenuListPopup::childrenChanged):
+        (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::selectedRadioButton):
+        (WebCore::AccessibilityNodeObject::selectedTabItem):
+        * accessibility/AccessibilityNodeObject.h:
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
+        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
+        (WebCore::AccessibilityObject::isAccessibilityTextSearchMatch):
+        (WebCore::AccessibilityObject::containsText const):
+        (WebCore::AccessibilityObject::parentObjectUnignored const):
+        (WebCore::appendAccessibilityObject):
+        (WebCore::AccessibilityObject::insertChild):
+        (WebCore::AccessibilityObject::addChild):
+        (WebCore::appendChildrenToArray):
+        (WebCore::AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit):
+        (WebCore::AccessibilityObject::findMatchingObjects):
+        (WebCore::AccessibilityObject::headingElementForNode):
+        (WebCore::AccessibilityObject::isDescendantOfObject const):
+        (WebCore::AccessibilityObject::isAncestorOfObject const):
+        (WebCore::AccessibilityObject::elementAccessibilityHitTest const):
+        (WebCore::AccessibilityObject::focusedUIElement const):
+        (WebCore::AccessibilityObject::isExpanded const):
+        (WebCore::AccessibilityObject::isOnScreen const):
+        (WebCore::AccessibilityObject::accessibilityIsIgnored const):
+        (WebCore::AccessibilityObject::selectedListItem):
+        (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
+        (WebCore::AccessibilityObject::accessibilityObjectContainsText const): Deleted.
+        (WebCore::AccessibilityObject::isOnscreen const): Deleted.
+        * accessibility/AccessibilityObject.h:
+        (isType):
+        (WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode): Deleted.
+        (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData): Deleted.
+        (WebCore::AccessibilityIsIgnoredFromParentData::isNull const): Deleted.
+        (WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria): Deleted.
+        (WebCore::VisiblePositionRange::VisiblePositionRange): Deleted.
+        (WebCore::VisiblePositionRange::isNull const): Deleted.
+        (WebCore::PlainTextRange::PlainTextRange): Deleted.
+        (WebCore::PlainTextRange::isNull const): Deleted.
+        (WebCore::AccessibilitySearchTextCriteria::AccessibilitySearchTextCriteria): Deleted.
+        (WebCore::AccessibilityTextOperation::AccessibilityTextOperation): Deleted.
+        (WebCore::AccessibilityObject::setAXObjectID): Deleted.
+        (WebCore::AccessibilityObject::init): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilityNodeObject const): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilityRenderObject const): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilityScrollbar const): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilityScrollView const): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilitySVGRoot const): Deleted.
+        (WebCore::AccessibilityObject::isAccessibilitySVGElement const): Deleted.
+        (WebCore::AccessibilityObject::isAttachmentElement const): Deleted.
+        (WebCore::AccessibilityObject::isHeading const): Deleted.
+        (WebCore::AccessibilityObject::isImageMap const): Deleted.
+        (WebCore::AccessibilityObject::isNativeImage const): Deleted.
+        (WebCore::AccessibilityObject::isImageButton const): Deleted.
+        (WebCore::AccessibilityObject::isPasswordField const): Deleted.
+        (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): Deleted.
+        (WebCore::AccessibilityObject::isNativeTextControl const): Deleted.
+        (WebCore::AccessibilityObject::isSearchField const): Deleted.
+        (WebCore::AccessibilityObject::isWebArea const): Deleted.
+        (WebCore::AccessibilityObject::isCheckbox const): Deleted.
+        (WebCore::AccessibilityObject::isRadioButton const): Deleted.
+        (WebCore::AccessibilityObject::isNativeListBox const): Deleted.
+        (WebCore::AccessibilityObject::isListBox const): Deleted.
+        (WebCore::AccessibilityObject::isListBoxOption const): Deleted.
+        (WebCore::AccessibilityObject::isMediaTimeline const): Deleted.
+        (WebCore::AccessibilityObject::isMenuRelated const): Deleted.
+        (WebCore::AccessibilityObject::isMenu const): Deleted.
+        (WebCore::AccessibilityObject::isMenuBar const): Deleted.
+        (WebCore::AccessibilityObject::isMenuButton const): Deleted.
+        (WebCore::AccessibilityObject::isMenuItem const): Deleted.
+        (WebCore::AccessibilityObject::isInputImage const): Deleted.
+        (WebCore::AccessibilityObject::isProgressIndicator const): Deleted.
+        (WebCore::AccessibilityObject::isSlider const): Deleted.
+        (WebCore::AccessibilityObject::isSliderThumb const): Deleted.
+        (WebCore::AccessibilityObject::isInputSlider const): Deleted.
+        (WebCore::AccessibilityObject::isControl const): Deleted.
+        (WebCore::AccessibilityObject::isLabel const): Deleted.
+        (WebCore::AccessibilityObject::isList const): Deleted.
+        (WebCore::AccessibilityObject::isTable const): Deleted.
+        (WebCore::AccessibilityObject::isDataTable const): Deleted.
+        (WebCore::AccessibilityObject::isTableRow const): Deleted.
+        (WebCore::AccessibilityObject::isTableColumn const): Deleted.
+        (WebCore::AccessibilityObject::isTableCell const): Deleted.
+        (WebCore::AccessibilityObject::isFieldset const): Deleted.
+        (WebCore::AccessibilityObject::isGroup const): Deleted.
+        (WebCore::AccessibilityObject::isARIATreeGridRow const): Deleted.
+        (WebCore::AccessibilityObject::isMenuList const): Deleted.
+        (WebCore::AccessibilityObject::isMenuListPopup const): Deleted.
+        (WebCore::AccessibilityObject::isMenuListOption const): Deleted.
+        (WebCore::AccessibilityObject::isSpinButton const): Deleted.
+        (WebCore::AccessibilityObject::isNativeSpinButton const): Deleted.
+        (WebCore::AccessibilityObject::isSpinButtonPart const): Deleted.
+        (WebCore::AccessibilityObject::isMockObject const): Deleted.
+        (WebCore::AccessibilityObject::isMediaObject const): Deleted.
+        (WebCore::AccessibilityObject::isSwitch const): Deleted.
+        (WebCore::AccessibilityObject::isToggleButton const): Deleted.
+        (WebCore::AccessibilityObject::isTabList const): Deleted.
+        (WebCore::AccessibilityObject::isTabItem const): Deleted.
+        (WebCore::AccessibilityObject::isRadioGroup const): Deleted.
+        (WebCore::AccessibilityObject::isComboBox const): Deleted.
+        (WebCore::AccessibilityObject::isTreeGrid const): Deleted.
+        (WebCore::AccessibilityObject::isListItem const): Deleted.
+        (WebCore::AccessibilityObject::isCheckboxOrRadio const): Deleted.
+        (WebCore::AccessibilityObject::isScrollView const): Deleted.
+        (WebCore::AccessibilityObject::isCanvas const): Deleted.
+        (WebCore::AccessibilityObject::isPopUpButton const): Deleted.
+        (WebCore::AccessibilityObject::isColorWell const): Deleted.
+        (WebCore::AccessibilityObject::isSplitter const): Deleted.
+        (WebCore::AccessibilityObject::isToolbar const): Deleted.
+        (WebCore::AccessibilityObject::isSummary const): Deleted.
+        (WebCore::AccessibilityObject::isChecked const): Deleted.
+        (WebCore::AccessibilityObject::isEnabled const): Deleted.
+        (WebCore::AccessibilityObject::isSelected const): Deleted.
+        (WebCore::AccessibilityObject::isFocused const): Deleted.
+        (WebCore::AccessibilityObject::isHovered const): Deleted.
+        (WebCore::AccessibilityObject::isIndeterminate const): Deleted.
+        (WebCore::AccessibilityObject::isLoaded const): Deleted.
+        (WebCore::AccessibilityObject::isMultiSelectable const): Deleted.
+        (WebCore::AccessibilityObject::isOffScreen const): Deleted.
+        (WebCore::AccessibilityObject::isPressed const): Deleted.
+        (WebCore::AccessibilityObject::isUnvisited const): Deleted.
+        (WebCore::AccessibilityObject::isVisited const): Deleted.
+        (WebCore::AccessibilityObject::isRequired const): Deleted.
+        (WebCore::AccessibilityObject::supportsRequiredAttribute const): Deleted.
+        (WebCore::AccessibilityObject::isLinked const): Deleted.
+        (WebCore::AccessibilityObject::isVisible const): Deleted.
+        (WebCore::AccessibilityObject::isCollapsed const): Deleted.
+        (WebCore::AccessibilityObject::setIsExpanded): Deleted.
+        (WebCore::AccessibilityObject::isSelectedOptionActive const): Deleted.
+        (WebCore::AccessibilityObject::hasBoldFont const): Deleted.
+        (WebCore::AccessibilityObject::hasItalicFont const): Deleted.
+        (WebCore::AccessibilityObject::hasPlainText const): Deleted.
+        (WebCore::AccessibilityObject::hasSameFont const): Deleted.
+        (WebCore::AccessibilityObject::hasSameFontColor const): Deleted.
+        (WebCore::AccessibilityObject::hasSameStyle const): Deleted.
+        (WebCore::AccessibilityObject::isStaticText const): Deleted.
+        (WebCore::AccessibilityObject::hasUnderline const): Deleted.
+        (WebCore::AccessibilityObject::canSetFocusAttribute const): Deleted.
+        (WebCore::AccessibilityObject::canSetTextRangeAttributes const): Deleted.
+        (WebCore::AccessibilityObject::canSetValueAttribute const): Deleted.
+        (WebCore::AccessibilityObject::canSetNumericValue const): Deleted.
+        (WebCore::AccessibilityObject::canSetSelectedAttribute const): Deleted.
+        (WebCore::AccessibilityObject::canSetSelectedChildrenAttribute const): Deleted.
+        (WebCore::AccessibilityObject::canSetExpandedAttribute const): Deleted.
+        (WebCore::AccessibilityObject::node const): Deleted.
+        (WebCore::AccessibilityObject::renderer const): Deleted.
+        (WebCore::AccessibilityObject::headingLevel const): Deleted.
+        (WebCore::AccessibilityObject::tableLevel const): Deleted.
+        (WebCore::AccessibilityObject::valueDescription const): Deleted.
+        (WebCore::AccessibilityObject::valueForRange const): Deleted.
+        (WebCore::AccessibilityObject::maxValueForRange const): Deleted.
+        (WebCore::AccessibilityObject::minValueForRange const): Deleted.
+        (WebCore::AccessibilityObject::stepValueForRange const): Deleted.
+        (WebCore::AccessibilityObject::selectedRadioButton): Deleted.
+        (WebCore::AccessibilityObject::selectedTabItem): Deleted.
+        (WebCore::AccessibilityObject::layoutCount const): Deleted.
+        (WebCore::AccessibilityObject::estimatedLoadingProgress const): Deleted.
+        (WebCore::AccessibilityObject::supportsARIAOwns const): Deleted.
+        (WebCore::AccessibilityObject::hasPopup const): Deleted.
+        (WebCore::AccessibilityObject::canvasHasFallbackContent const): Deleted.
+        (WebCore::AccessibilityObject::supportsARIADropping const): Deleted.
+        (WebCore::AccessibilityObject::supportsARIADragging const): Deleted.
+        (WebCore::AccessibilityObject::isARIAGrabbed): Deleted.
+        (WebCore::AccessibilityObject::setARIAGrabbed): Deleted.
+        (WebCore::AccessibilityObject::determineARIADropEffects): Deleted.
+        (WebCore::AccessibilityObject::firstChild const): Deleted.
+        (WebCore::AccessibilityObject::lastChild const): Deleted.
+        (WebCore::AccessibilityObject::previousSibling const): Deleted.
+        (WebCore::AccessibilityObject::nextSibling const): Deleted.
+        (WebCore::AccessibilityObject::parentObject const): Deleted.
+        (WebCore::AccessibilityObject::parentObjectIfExists const): Deleted.
+        (WebCore::AccessibilityObject::isDescendantOfBarrenParent const): Deleted.
+        (WebCore::AccessibilityObject::observableObject const): Deleted.
+        (WebCore::AccessibilityObject::linkedUIElements const): Deleted.
+        (WebCore::AccessibilityObject::titleUIElement const): Deleted.
+        (WebCore::AccessibilityObject::exposesTitleUIElement const): Deleted.
+        (WebCore::AccessibilityObject::correspondingLabelForControlElement const): Deleted.
+        (WebCore::AccessibilityObject::correspondingControlForLabelElement const): Deleted.
+        (WebCore::AccessibilityObject::scrollBar): Deleted.
+        (WebCore::AccessibilityObject::ariaRoleAttribute const): Deleted.
+        (WebCore::AccessibilityObject::isPresentationalChildOfAriaRole const): Deleted.
+        (WebCore::AccessibilityObject::ariaRoleHasPresentationalChildren const): Deleted.
+        (WebCore::AccessibilityObject::inheritsPresentationalRole const): Deleted.
+        (WebCore::AccessibilityObject::accessibilityText const): Deleted.
+        (WebCore::AccessibilityObject::setAccessibleName): Deleted.
+        (WebCore::AccessibilityObject::accessibilityDescription const): Deleted.
+        (WebCore::AccessibilityObject::title const): Deleted.
+        (WebCore::AccessibilityObject::helpText const): Deleted.
+        (WebCore::AccessibilityObject::isARIAStaticText const): Deleted.
+        (WebCore::AccessibilityObject::stringValue const): Deleted.
+        (WebCore::AccessibilityObject::textUnderElement const): Deleted.
+        (WebCore::AccessibilityObject::text const): Deleted.
+        (WebCore::AccessibilityObject::textLength const): Deleted.
+        (WebCore::AccessibilityObject::ariaLabeledByAttribute const): Deleted.
+        (WebCore::AccessibilityObject::ariaDescribedByAttribute const): Deleted.
+        (WebCore::AccessibilityObject::expandedTextValue const): Deleted.
+        (WebCore::AccessibilityObject::supportsExpandedTextValue const): Deleted.
+        (WebCore::AccessibilityObject::colorValue const): Deleted.
+        (WebCore::AccessibilityObject::axObjectID const): Deleted.
+        (WebCore::AccessibilityObject::anchorElement const): Deleted.
+        (WebCore::AccessibilityObject::actionElement const): Deleted.
+        (WebCore::AccessibilityObject::boundingBoxRect const): Deleted.
+        (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect const): Deleted.
+        (WebCore::AccessibilityObject::size const): Deleted.
+        (WebCore::AccessibilityObject::elementPath const): Deleted.
+        (WebCore::AccessibilityObject::supportsPath const): Deleted.
+        (WebCore::AccessibilityObject::selectedTextRange const): Deleted.
+        (WebCore::AccessibilityObject::selectionStart const): Deleted.
+        (WebCore::AccessibilityObject::selectionEnd const): Deleted.
+        (WebCore::AccessibilityObject::url const): Deleted.
+        (WebCore::AccessibilityObject::selection const): Deleted.
+        (WebCore::AccessibilityObject::selectedText const): Deleted.
+        (WebCore::AccessibilityObject::accessKey const): Deleted.
+        (WebCore::AccessibilityObject::widget const): Deleted.
+        (WebCore::AccessibilityObject::widgetForAttachmentView const): Deleted.
+        (WebCore::AccessibilityObject::hierarchicalLevel const): Deleted.
+        (WebCore::AccessibilityObject::setFocused): Deleted.
+        (WebCore::AccessibilityObject::setSelectedText): Deleted.
+        (WebCore::AccessibilityObject::setSelectedTextRange): Deleted.
+        (WebCore::AccessibilityObject::setValue): Deleted.
+        (WebCore::AccessibilityObject::setSelected): Deleted.
+        (WebCore::AccessibilityObject::setSelectedRows): Deleted.
+        (WebCore::AccessibilityObject::makeRangeVisible): Deleted.
+        (WebCore::AccessibilityObject::performDefaultAction): Deleted.
+        (WebCore::AccessibilityObject::increment): Deleted.
+        (WebCore::AccessibilityObject::decrement): Deleted.
+        (WebCore::AccessibilityObject::childrenChanged): Deleted.
+        (WebCore::AccessibilityObject::textChanged): Deleted.
+        (WebCore::AccessibilityObject::updateAccessibilityRole): Deleted.
+        (WebCore::AccessibilityObject::addChildren): Deleted.
+        (WebCore::AccessibilityObject::shouldIgnoreAttributeRole const): Deleted.
+        (WebCore::AccessibilityObject::canHaveChildren const): Deleted.
+        (WebCore::AccessibilityObject::hasChildren const): Deleted.
+        (WebCore::AccessibilityObject::setNeedsToUpdateChildren): Deleted.
+        (WebCore::AccessibilityObject::setNeedsToUpdateSubtree): Deleted.
+        (WebCore::AccessibilityObject::needsToUpdateChildren const): Deleted.
+        (WebCore::AccessibilityObject::detachFromParent): Deleted.
+        (WebCore::AccessibilityObject::isDetachedFromParent): Deleted.
+        (WebCore::AccessibilityObject::canHaveSelectedChildren const): Deleted.
+        (WebCore::AccessibilityObject::selectedChildren): Deleted.
+        (WebCore::AccessibilityObject::visibleChildren): Deleted.
+        (WebCore::AccessibilityObject::tabChildren): Deleted.
+        (WebCore::AccessibilityObject::shouldFocusActiveDescendant const): Deleted.
+        (WebCore::AccessibilityObject::activeDescendant const): Deleted.
+        (WebCore::AccessibilityObject::handleActiveDescendantChanged): Deleted.
+        (WebCore::AccessibilityObject::handleAriaExpandedChanged): Deleted.
+        (WebCore::AccessibilityObject::visiblePositionRange const): Deleted.
+        (WebCore::AccessibilityObject::visiblePositionRangeForLine const): Deleted.
+        (WebCore::AccessibilityObject::boundsForVisiblePositionRange const): Deleted.
+        (WebCore::AccessibilityObject::boundsForRange const): Deleted.
+        (WebCore::AccessibilityObject::setSelectedVisiblePositionRange const): Deleted.
+        (WebCore::AccessibilityObject::visiblePositionForPoint const): Deleted.
+        (WebCore::AccessibilityObject::nextVisiblePosition const): Deleted.
+        (WebCore::AccessibilityObject::previousVisiblePosition const): Deleted.
+        (WebCore::AccessibilityObject::visiblePositionForIndex const): Deleted.
+        (WebCore::AccessibilityObject::indexForVisiblePosition const): Deleted.
+        (WebCore::AccessibilityObject::index const): Deleted.
+        (WebCore::AccessibilityObject::lineBreaks const): Deleted.
+        (WebCore::AccessibilityObject::doAXRangeForLine const): Deleted.
+        (WebCore::AccessibilityObject::doAXRangeForIndex const): Deleted.
+        (WebCore::AccessibilityObject::doAXStringForRange const): Deleted.
+        (WebCore::AccessibilityObject::doAXBoundsForRange const): Deleted.
+        (WebCore::AccessibilityObject::doAXBoundsForRangeUsingCharacterOffset const): Deleted.
+        (WebCore::AccessibilityObject::stringValueForMSAA const): Deleted.
+        (WebCore::AccessibilityObject::stringRoleForMSAA const): Deleted.
+        (WebCore::AccessibilityObject::nameForMSAA const): Deleted.
+        (WebCore::AccessibilityObject::descriptionForMSAA const): Deleted.
+        (WebCore::AccessibilityObject::roleValueForMSAA const): Deleted.
+        (WebCore::AccessibilityObject::passwordFieldValue const): Deleted.
+        (WebCore::AccessibilityObject::liveRegionStatus const): Deleted.
+        (WebCore::AccessibilityObject::liveRegionRelevant const): Deleted.
+        (WebCore::AccessibilityObject::liveRegionAtomic const): Deleted.
+        (WebCore::AccessibilityObject::isBusy const): Deleted.
+        (WebCore::AccessibilityObject::speakAsProperty const): Deleted.
+        (WebCore::AccessibilityObject::isMathElement const): Deleted.
+        (WebCore::AccessibilityObject::isMathFraction const): Deleted.
+        (WebCore::AccessibilityObject::isMathFenced const): Deleted.
+        (WebCore::AccessibilityObject::isMathSubscriptSuperscript const): Deleted.
+        (WebCore::AccessibilityObject::isMathRow const): Deleted.
+        (WebCore::AccessibilityObject::isMathUnderOver const): Deleted.
+        (WebCore::AccessibilityObject::isMathRoot const): Deleted.
+        (WebCore::AccessibilityObject::isMathSquareRoot const): Deleted.
+        (WebCore::AccessibilityObject::isMathText const): Deleted.
+        (WebCore::AccessibilityObject::isMathNumber const): Deleted.
+        (WebCore::AccessibilityObject::isMathOperator const): Deleted.
+        (WebCore::AccessibilityObject::isMathFenceOperator const): Deleted.
+        (WebCore::AccessibilityObject::isMathSeparatorOperator const): Deleted.
+        (WebCore::AccessibilityObject::isMathIdentifier const): Deleted.
+        (WebCore::AccessibilityObject::isMathTable const): Deleted.
+        (WebCore::AccessibilityObject::isMathTableRow const): Deleted.
+        (WebCore::AccessibilityObject::isMathTableCell const): Deleted.
+        (WebCore::AccessibilityObject::isMathMultiscript const): Deleted.
+        (WebCore::AccessibilityObject::isMathToken const): Deleted.
+        (WebCore::AccessibilityObject::isMathScriptObject const): Deleted.
+        (WebCore::AccessibilityObject::isMathMultiscriptObject const): Deleted.
+        (WebCore::AccessibilityObject::mathRadicandObject): Deleted.
+        (WebCore::AccessibilityObject::mathRootIndexObject): Deleted.
+        (WebCore::AccessibilityObject::mathUnderObject): Deleted.
+        (WebCore::AccessibilityObject::mathOverObject): Deleted.
+        (WebCore::AccessibilityObject::mathNumeratorObject): Deleted.
+        (WebCore::AccessibilityObject::mathDenominatorObject): Deleted.
+        (WebCore::AccessibilityObject::mathBaseObject): Deleted.
+        (WebCore::AccessibilityObject::mathSubscriptObject): Deleted.
+        (WebCore::AccessibilityObject::mathSuperscriptObject): Deleted.
+        (WebCore::AccessibilityObject::mathFencedOpenString const): Deleted.
+        (WebCore::AccessibilityObject::mathFencedCloseString const): Deleted.
+        (WebCore::AccessibilityObject::mathLineThickness const): Deleted.
+        (WebCore::AccessibilityObject::isAnonymousMathOperator const): Deleted.
+        (WebCore::AccessibilityObject::mathPrescripts): Deleted.
+        (WebCore::AccessibilityObject::mathPostscripts): Deleted.
+        (WebCore::AccessibilityObject::isHidden const): Deleted.
+        (WebCore::AccessibilityObject::setWrapper): Deleted.
+        (WebCore::AccessibilityObject::overrideAttachmentParent): Deleted.
+        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): Deleted.
+        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Deleted.
+        (WebCore::AccessibilityObject::clearIsIgnoredFromParentData): Deleted.
+        (WebCore::AccessibilityObject::setIsIgnoredFromParentData): Deleted.
+        (WebCore::AccessibilityObject::children): Deleted.
+        (WebCore::AccessibilityObject::updateBackingStore): Deleted.
+        * accessibility/AccessibilityObjectInterface.h:
+        (WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
+        (WebCore::AccessibilitySearchTextCriteria::AccessibilitySearchTextCriteria):
+        (WebCore::AccessibilityTextOperation::AccessibilityTextOperation):
+        (WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode):
+        (WebCore::PlainTextRange::PlainTextRange):
+        (WebCore::PlainTextRange::isNull const):
+        (WebCore::VisiblePositionRange::VisiblePositionRange):
+        (WebCore::VisiblePositionRange::isNull const):
+        (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData):
+        (WebCore::AccessibilityIsIgnoredFromParentData::isNull const):
+        (WebCore::AccessibilityObjectInterface::isAccessibilityObject const): Deleted.
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const):
+        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
+        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest const):
+        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest const):
+        (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest const):
+        (WebCore::AccessibilityRenderObject::accessibilityHitTest const):
+        (WebCore::AccessibilityRenderObject::addImageMapChildren):
+        (WebCore::AccessibilityRenderObject::addHiddenChildren):
+        (WebCore::AccessibilityRenderObject::selectedChildren):
+        * accessibility/AccessibilityRenderObject.h:
+        * accessibility/AccessibilityScrollView.cpp:
+        (WebCore::AccessibilityScrollView::accessibilityHitTest const):
+        * accessibility/AccessibilityScrollView.h:
+        * accessibility/AccessibilitySlider.cpp:
+        (WebCore::AccessibilitySlider::addChildren):
+        (WebCore::AccessibilitySlider::elementAccessibilityHitTest const):
+        * accessibility/AccessibilitySlider.h:
+        * accessibility/AccessibilitySpinButton.cpp:
+        (WebCore::AccessibilitySpinButton::incrementButton):
+        (WebCore::AccessibilitySpinButton::decrementButton):
+        * accessibility/AccessibilitySpinButton.h:
+        * accessibility/AccessibilityTable.cpp:
+        (WebCore::AccessibilityTable::columnHeaders):
+        (WebCore::AccessibilityTable::rowHeaders):
+        (WebCore::AccessibilityTable::cellForColumnAndRow):
+        * accessibility/AccessibilityTableCell.cpp:
+        (WebCore::AccessibilityTableCell::parentRow const):
+        * accessibility/AccessibilityTableColumn.cpp:
+        (WebCore::AccessibilityTableColumn::headerObject):
+        * accessibility/AccessibilityTableColumn.h:
+        * accessibility/AccessibilityTableRow.cpp:
+        (WebCore::AccessibilityTableRow::headerObject):
+        * accessibility/AccessibilityTableRow.h:
+        * accessibility/atk/AXObjectCacheAtk.cpp:
+        (WebCore::getListObject):
+        (WebCore::notifyChildrenSelectionChange):
+        (WebCore::AXObjectCache::postPlatformNotification):
+        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
+        * accessibility/atk/WebKitAccessible.cpp:
+        (interfaceMaskFromObject):
+        * accessibility/atk/WebKitAccessibleHyperlink.cpp:
+        (rangeLengthForObject):
+        (webkitAccessibleHyperlinkGetStartIndex):
+        (webkitAccessibleHyperlinkGetEndIndex):
+        * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
+        (webkitAccessibleHypertextGetLink):
+        (webkitAccessibleHypertextGetNLinks):
+        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
+        (listObjectForCoreSelection):
+        (optionFromList):
+        (optionFromSelection):
+        (webkitAccessibleSelectionAddSelection):
+        (webkitAccessibleSelectionRefSelection):
+        (webkitAccessibleSelectionIsChildSelected):
+        (webkitAccessibleSelectionRemoveSelection):
+        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
+        (offsetAdjustmentForListItem):
+        (webCoreOffsetToAtkOffset):
+        (webkitAccessibleTextGetCaretOffset):
+        * accessibility/atk/WebKitAccessibleUtil.cpp:
+        (objectFocusedAndCaretOffsetUnignored):
+        * accessibility/atk/WebKitAccessibleUtil.h:
+        * accessibility/ios/AXObjectCacheIOS.mm:
+        (WebCore::AXObjectCache::postPlatformNotification):
+        * accessibility/ios/AccessibilityObjectIOS.mm:
+        (WebCore::AccessibilityObject::overrideAttachmentParent):
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (AccessibilityUnignoredAncestor):
+        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
+        (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
+        (-[WebAccessibilityObjectWrapper accessibilityContainer]):
+        (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
+        * accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
+        (WebCore::AXIsolatedTreeNode::focusedUIElement const):
+        (WebCore::AXIsolatedTreeNode::parentObjectInterfaceUnignored const):
+        (WebCore::AXIsolatedTreeNode::accessibilityHitTest const):
+        * accessibility/isolatedtree/AXIsolatedTreeNode.h:
+        * accessibility/mac/AXObjectCacheMac.mm:
+        (WebCore::AXObjectCache::postPlatformNotification):
+        * accessibility/mac/AccessibilityObjectMac.mm:
+        (WebCore::AccessibilityObject::overrideAttachmentParent):
+        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
+        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
+        (addChildToArray):
+        (-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
+        (-[WebAccessibilityObjectWrapperBase axBackingObject]):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
+        * accessibility/win/AXObjectCacheWin.cpp:
+        * editing/atk/FrameSelectionAtk.cpp:
+        (WebCore::emitTextSelectionChange):
+        (WebCore::maybeEmitTextFocusChange):
+        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
+        * inspector/InspectorAuditAccessibilityObject.cpp:
+        (WebCore::accessiblityObjectForNode):
+        (WebCore::InspectorAuditAccessibilityObject::getElementsByComputedRole):
+        (WebCore::InspectorAuditAccessibilityObject::getActiveDescendant):
+        (WebCore::addChildren):
+        (WebCore::InspectorAuditAccessibilityObject::getChildNodes):
+        (WebCore::InspectorAuditAccessibilityObject::getComputedProperties):
+        (WebCore::InspectorAuditAccessibilityObject::getControlledNodes):
+        (WebCore::InspectorAuditAccessibilityObject::getFlowedNodes):
+        (WebCore::InspectorAuditAccessibilityObject::getMouseEventNode):
+        (WebCore::InspectorAuditAccessibilityObject::getOwnedNodes):
+        (WebCore::InspectorAuditAccessibilityObject::getParentNode):
+        (WebCore::InspectorAuditAccessibilityObject::getSelectedChildNodes):
+        * inspector/agents/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::processAccessibilityChildren):
+        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
+        * inspector/agents/InspectorDOMAgent.h:
+
 2019-10-30  Antti Koivisto  <antti@apple.com>
 
         Move style building state to a class of its own
index aae4d86..97aef6a 100644 (file)
@@ -229,7 +229,7 @@ AXObjectCache::~AXObjectCache()
     for (const auto& object : m_objects.values()) {
         detachWrapper(object.get(), AccessibilityDetachmentType::CacheDestroyed);
         object->detach(AccessibilityDetachmentType::CacheDestroyed);
-        object->setAXObjectID(0);
+        object->setObjectID(0);
     }
 }
 
@@ -336,15 +336,15 @@ AccessibilityObject* AXObjectCache::focusedImageMapUIElement(HTMLAreaElement* ar
     for (const auto& child : axRenderImage->children()) {
         if (!is<AccessibilityImageMapLink>(*child))
             continue;
-        
+
         if (downcast<AccessibilityImageMapLink>(*child).areaElement() == areaElement)
-            return child.get();
-    }    
+            return downcast<AccessibilityImageMapLink>(child.get());
+    }
     
     return nullptr;
 }
     
-AccessibilityObject* AXObjectCache::focusedUIElementForPage(const Page* page)
+AXCoreObject* AXObjectCache::focusedUIElementForPage(const Page* page)
 {
     if (!gAccessibilityEnabled)
         return nullptr;
@@ -355,12 +355,12 @@ AccessibilityObject* AXObjectCache::focusedUIElementForPage(const Page* page)
     if (is<HTMLAreaElement>(focusedElement))
         return focusedImageMapUIElement(downcast<HTMLAreaElement>(focusedElement));
 
-    AccessibilityObject* obj = focusedDocument->axObjectCache()->getOrCreate(focusedElement ? static_cast<Node*>(focusedElement) : focusedDocument);
+    AXCoreObject* obj = focusedDocument->axObjectCache()->getOrCreate(focusedElement ? static_cast<Node*>(focusedElement) : focusedDocument);
     if (!obj)
         return nullptr;
 
     if (obj->shouldFocusActiveDescendant()) {
-        if (AccessibilityObject* descendant = obj->activeDescendant())
+        if (AXCoreObject* descendant = obj->activeDescendant())
             obj = descendant;
     }
 
@@ -560,8 +560,8 @@ AccessibilityObject* AXObjectCache::getOrCreate(Widget* widget)
 
     getAXID(newObj.get());
     
-    m_widgetObjectMapping.set(widget, newObj->axObjectID());
-    m_objects.set(newObj->axObjectID(), newObj);    
+    m_widgetObjectMapping.set(widget, newObj->objectID());
+    m_objects.set(newObj->objectID(), newObj);
     newObj->init();
     attachWrapper(newObj.get());
     return newObj.get();
@@ -608,8 +608,8 @@ AccessibilityObject* AXObjectCache::getOrCreate(Node* node)
 
     getAXID(newObj.get());
 
-    m_nodeObjectMapping.set(node, newObj->axObjectID());
-    m_objects.set(newObj->axObjectID(), newObj);
+    m_nodeObjectMapping.set(node, newObj->objectID());
+    m_objects.set(newObj->objectID(), newObj);
     newObj->init();
     attachWrapper(newObj.get());
     newObj->setLastKnownIsIgnoredValue(newObj->accessibilityIsIgnored());
@@ -636,8 +636,8 @@ AccessibilityObject* AXObjectCache::getOrCreate(RenderObject* renderer)
 
     getAXID(newObj.get());
 
-    m_renderObjectMapping.set(renderer, newObj->axObjectID());
-    m_objects.set(newObj->axObjectID(), newObj);
+    m_renderObjectMapping.set(renderer, newObj->objectID());
+    m_objects.set(newObj->objectID(), newObj);
     newObj->init();
     attachWrapper(newObj.get());
     newObj->setLastKnownIsIgnoredValue(newObj->accessibilityIsIgnored());
@@ -709,7 +709,7 @@ AccessibilityObject* AXObjectCache::getOrCreate(AccessibilityRole role)
     else
         return nullptr;
 
-    m_objects.set(obj->axObjectID(), obj);    
+    m_objects.set(obj->objectID(), obj);
     obj->init();
     attachWrapper(obj.get());
     return obj.get();
@@ -726,7 +726,7 @@ void AXObjectCache::remove(AXID axID)
 
     detachWrapper(object.get(), AccessibilityDetachmentType::ElementDestroyed);
     object->detach(AccessibilityDetachmentType::ElementDestroyed, this);
-    object->setAXObjectID(0);
+    object->setObjectID(0);
 
     m_idsInUse.remove(axID);
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
@@ -799,7 +799,7 @@ AXID AXObjectCache::platformGenerateAXID() const
 AXID AXObjectCache::getAXID(AccessibilityObject* obj)
 {
     // check for already-assigned ID
-    AXID objID = obj->axObjectID();
+    AXID objID = obj->objectID();
     if (objID) {
         ASSERT(m_idsInUse.contains(objID));
         return objID;
@@ -808,7 +808,7 @@ AXID AXObjectCache::getAXID(AccessibilityObject* obj)
     objID = platformGenerateAXID();
 
     m_idsInUse.add(objID);
-    obj->setAXObjectID(objID);
+    obj->setObjectID(objID);
     
     return objID;
 }
@@ -881,12 +881,12 @@ void AXObjectCache::childrenChanged(RenderObject* renderer, RenderObject* newChi
     childrenChanged(get(renderer));
 }
 
-void AXObjectCache::childrenChanged(AccessibilityObject* obj)
+void AXObjectCache::childrenChanged(AXCoreObject* obj)
 {
     if (!obj)
         return;
 
-    m_deferredChildredChangedList.add(obj);
+    m_deferredChildrenChangedList.add(obj);
 }
     
 void AXObjectCache::notificationPostTimerFired()
@@ -899,8 +899,8 @@ void AXObjectCache::notificationPostTimerFired()
     auto notifications = WTFMove(m_notificationsToPost);
     
     for (const auto& note : notifications) {
-        AccessibilityObject* obj = note.first.get();
-        if (!obj->axObjectID())
+        AXCoreObject* obj = note.first.get();
+        if (!obj->objectID())
             continue;
 
         if (!obj->axObjectCache())
@@ -988,7 +988,7 @@ void AXObjectCache::postNotification(Node* node, AXNotification notification, Po
     postNotification(object.get(), &node->document(), notification, postTarget, postType);
 }
 
-void AXObjectCache::postNotification(AccessibilityObject* object, Document* document, AXNotification notification, PostTarget postTarget, PostType postType)
+void AXObjectCache::postNotification(AXCoreObject* object, Document* document, AXNotification notification, PostTarget postTarget, PostType postType)
 {
     stopCachingComputedObjectAttributes();
 
@@ -1936,7 +1936,7 @@ void AXObjectCache::setTextMarkerDataWithCharacterOffset(TextMarkerData& textMar
         vpOffset = deepPos.deprecatedEditingOffset();
     }
     
-    textMarkerData.axID = obj.get()->axObjectID();
+    textMarkerData.axID = obj.get()->objectID();
     textMarkerData.node = domNode;
     textMarkerData.characterOffset = characterOffset.offset;
     textMarkerData.characterStartIndex = characterOffset.startIndex;
@@ -2230,7 +2230,7 @@ Optional<TextMarkerData> AXObjectCache::textMarkerDataForVisiblePosition(const V
     TextMarkerData textMarkerData;
     memset(static_cast<void*>(&textMarkerData), 0, sizeof(TextMarkerData));
     
-    textMarkerData.axID = obj.get()->axObjectID();
+    textMarkerData.axID = obj.get()->objectID();
     textMarkerData.node = domNode;
     textMarkerData.offset = deepPos.deprecatedEditingOffset();
     textMarkerData.affinity = visiblePos.affinity();
@@ -2262,7 +2262,7 @@ Optional<TextMarkerData> AXObjectCache::textMarkerDataForFirstPositionInTextCont
     TextMarkerData textMarkerData;
     memset(static_cast<void*>(&textMarkerData), 0, sizeof(TextMarkerData));
     
-    textMarkerData.axID = obj.get()->axObjectID();
+    textMarkerData.axID = obj.get()->objectID();
     textMarkerData.node = &textControl;
 
     cache->setNodeInUse(&textControl);
@@ -2907,9 +2907,9 @@ void AXObjectCache::performDeferredCacheUpdate()
     }
     m_deferredChildrenChangedNodeList.clear();
 
-    for (auto& child : m_deferredChildredChangedList)
+    for (auto& child : m_deferredChildrenChangedList)
         child->childrenChanged();
-    m_deferredChildredChangedList.clear();
+    m_deferredChildrenChangedList.clear();
 
     for (auto* node : m_deferredTextChangedList)
         textChanged(node);
index e52203b..88499fd 100644 (file)
@@ -148,7 +148,7 @@ public:
     explicit AXObjectCache(Document&);
     ~AXObjectCache();
 
-    WEBCORE_EXPORT static AccessibilityObject* focusedUIElementForPage(const Page*);
+    WEBCORE_EXPORT static AXCoreObject* focusedUIElementForPage(const Page*);
 
     // Returns the root object for the entire document.
     WEBCORE_EXPORT AccessibilityObject* rootObject();
@@ -177,7 +177,7 @@ public:
     void attachWrapper(AccessibilityObject*);
     void childrenChanged(Node*, Node* newChild = nullptr);
     void childrenChanged(RenderObject*, RenderObject* newChild = nullptr);
-    void childrenChanged(AccessibilityObject*);
+    void childrenChanged(AXCoreObject*);
     void checkedStateChanged(Node*);
     // Called when a node has just been attached, so we can make sure we have the right subclass of AccessibilityObject.
     void updateCacheAfterNodeIsAttached(Node*);
@@ -307,7 +307,7 @@ public:
 
     void postNotification(RenderObject*, AXNotification, PostTarget = TargetElement, PostType = PostAsynchronously);
     void postNotification(Node*, AXNotification, PostTarget = TargetElement, PostType = PostAsynchronously);
-    void postNotification(AccessibilityObject*, Document*, AXNotification, PostTarget = TargetElement, PostType = PostAsynchronously);
+    void postNotification(AXCoreObject*, Document*, AXNotification, PostTarget = TargetElement, PostType = PostAsynchronously);
 
 #ifndef NDEBUG
     void showIntent(const AXTextStateChangeIntent&);
@@ -356,7 +356,7 @@ public:
     
 
 protected:
-    void postPlatformNotification(AccessibilityObject*, AXNotification);
+    void postPlatformNotification(AXCoreObject*, AXNotification);
     void platformHandleFocusedUIElementChanged(Node* oldFocusedNode, Node* newFocusedNode);
 
     void platformPerformDeferredCacheUpdate();
@@ -458,7 +458,7 @@ private:
     HashSet<AXID> m_idsInUse;
 
     Timer m_notificationPostTimer;
-    Vector<std::pair<RefPtr<AccessibilityObject>, AXNotification>> m_notificationsToPost;
+    Vector<std::pair<RefPtr<AXCoreObject>, AXNotification>> m_notificationsToPost;
 
     Timer m_passwordNotificationPostTimer;
 
@@ -477,7 +477,7 @@ private:
     ListHashSet<Element*> m_deferredRecomputeIsIgnoredList;
     ListHashSet<Node*> m_deferredTextChangedList;
     ListHashSet<Element*> m_deferredSelectedChildredChangedList;
-    ListHashSet<RefPtr<AccessibilityObject>> m_deferredChildredChangedList;
+    ListHashSet<RefPtr<AXCoreObject>> m_deferredChildrenChangedList;
     ListHashSet<Node*> m_deferredChildrenChangedNodeList;
     HashMap<Element*, String> m_deferredTextFormControlValue;
     HashMap<Element*, QualifiedName> m_deferredAttributeChange;
@@ -532,7 +532,7 @@ inline const Element* AXObjectCache::rootAXEditableElement(const Node*) { return
 inline Node* AXObjectCache::modalNode() { return nullptr; }
 inline void AXObjectCache::attachWrapper(AccessibilityObject*) { }
 inline void AXObjectCache::checkedStateChanged(Node*) { }
-inline void AXObjectCache::childrenChanged(AccessibilityObject*) { }
+inline void AXObjectCache::childrenChanged(AXCoreObject*) { }
 inline void AXObjectCache::childrenChanged(Node*, Node*) { }
 inline void AXObjectCache::childrenChanged(RenderObject*, RenderObject*) { }
 inline void AXObjectCache::deferFocusedUIElementChangeIfNeeded(Node*, Node*) { }
index d730988..000add4 100644 (file)
@@ -51,7 +51,7 @@ Ref<AccessibilityARIAGrid> AccessibilityARIAGrid::create(RenderObject* renderer)
     return adoptRef(*new AccessibilityARIAGrid(renderer));
 }
 
-bool AccessibilityARIAGrid::addTableCellChild(AccessibilityObject* child, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount)
+bool AccessibilityARIAGrid::addTableCellChild(AXCoreObject* child, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount)
 {
     if (!child || (!is<AccessibilityTableRow>(*child) && !is<AccessibilityARIAGridRow>(*child)))
         return false;
@@ -85,7 +85,7 @@ bool AccessibilityARIAGrid::isMultiSelectable() const
     return !equalLettersIgnoringASCIICase(ariaMultiSelectable, "false");
 }
 
-void AccessibilityARIAGrid::addRowDescendant(AccessibilityObject* rowChild, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount)
+void AccessibilityARIAGrid::addRowDescendant(AXCoreObject* rowChild, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount)
 {
     if (!rowChild)
         return;
index b8e7baf..f72c906 100644 (file)
@@ -52,8 +52,8 @@ private:
     bool computeIsTableExposableThroughAccessibility() const override { return true; }
     bool isAriaTable() const override { return true; }
     
-    void addRowDescendant(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
-    bool addTableCellChild(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
+    void addRowDescendant(AXCoreObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
+    bool addTableCellChild(AXCoreObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
 };
 
 } // namespace WebCore 
index d023f8c..f819e9a 100644 (file)
@@ -55,7 +55,7 @@ AccessibilityTable* AccessibilityARIAGridCell::parentTable() const
     // ARIA gridcells may have multiple levels of unignored ancestors that are not the parent table,
     // including rows and interactive rowgroups. In addition, poorly-formed grids may contain elements
     // which pass the tests for inclusion.
-    for (AccessibilityObject* parent = parentObjectUnignored(); parent; parent = parent->parentObjectUnignored()) {
+    for (auto* parent = parentObjectUnignored(); parent; parent = parent->parentObjectUnignored()) {
         if (is<AccessibilityTable>(*parent) && downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility())
             return downcast<AccessibilityTable>(parent);
     }
@@ -65,7 +65,7 @@ AccessibilityTable* AccessibilityARIAGridCell::parentTable() const
     
 void AccessibilityARIAGridCell::rowIndexRange(std::pair<unsigned, unsigned>& rowRange) const
 {
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!parent)
         return;
 
@@ -103,7 +103,7 @@ unsigned AccessibilityARIAGridCell::axRowSpanWithRowIndex(unsigned rowIndex) con
         return std::max(static_cast<int>(range.second), 1);
     }
 
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!parent)
         return 1;
     
@@ -134,7 +134,7 @@ unsigned AccessibilityARIAGridCell::axRowSpanWithRowIndex(unsigned rowIndex) con
 
 void AccessibilityARIAGridCell::columnIndexRange(std::pair<unsigned, unsigned>& columnRange) const
 {
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!parent)
         return;
 
index f296467..3283807 100644 (file)
@@ -73,7 +73,7 @@ void AccessibilityARIAGridRow::disclosedRows(AccessibilityChildrenVector& disclo
     auto& allRows = downcast<AccessibilityTable>(*parent).rows();
     int rowCount = allRows.size();
     for (int k = index + 1; k < rowCount; ++k) {
-        AccessibilityObject* row = allRows[k].get();
+        auto* row = allRows[k].get();
         // Stop at the first row that doesn't match the correct level.
         if (row->hierarchicalLevel() != level + 1)
             break;
@@ -82,7 +82,7 @@ void AccessibilityARIAGridRow::disclosedRows(AccessibilityChildrenVector& disclo
     }
 }
     
-AccessibilityObject* AccessibilityARIAGridRow::disclosedByRow() const
+AXCoreObject* AccessibilityARIAGridRow::disclosedByRow() const
 {
     // The row that discloses this one is the row in the table
     // that is aria-level subtract 1 from this row.
@@ -103,7 +103,7 @@ AccessibilityObject* AccessibilityARIAGridRow::disclosedByRow() const
         return nullptr;
     
     for (int k = index - 1; k >= 0; --k) {
-        AccessibilityObject* row = allRows[k].get();
+        auto* row = allRows[k].get();
         if (row->hierarchicalLevel() == level - 1)
             return row;
     }
@@ -133,7 +133,7 @@ AccessibilityTable* AccessibilityARIAGridRow::parentTable() const
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityARIAGridRow::headerObject()
+AXCoreObject* AccessibilityARIAGridRow::headerObject()
 {
     for (const auto& child : children()) {
         if (child->ariaRoleAttribute() == AccessibilityRole::RowHeader)
index 7ba74f4..8540683 100644 (file)
@@ -40,9 +40,9 @@ public:
     virtual ~AccessibilityARIAGridRow();
     
     void disclosedRows(AccessibilityChildrenVector&);
-    AccessibilityObject* disclosedByRow() const;
+    AXCoreObject* disclosedByRow() const;
     
-    AccessibilityObject* headerObject() override;
+    AXCoreObject* headerObject() override;
     
 private:
     explicit AccessibilityARIAGridRow(RenderObject*);
index b45fc60..6345f3c 100644 (file)
@@ -125,7 +125,7 @@ void AccessibilityLabel::clearChildren()
     m_containsOnlyStaticTextDirty = false;
 }
 
-void AccessibilityLabel::insertChild(AccessibilityObject* object, unsigned index)
+void AccessibilityLabel::insertChild(AXCoreObject* object, unsigned index)
 {
     AccessibilityRenderObject::insertChild(object, index);
     m_containsOnlyStaticTextDirty = true;
index b13af2d..b6a41b9 100644 (file)
@@ -48,7 +48,7 @@ private:
     String stringValue() const final;
     void updateChildrenIfNecessary() final;
     void clearChildren() final;
-    void insertChild(AccessibilityObject*, unsigned) final;
+    void insertChild(AXCoreObject*, unsigned) final;
     bool m_containsOnlyStaticTextDirty : 1;
     bool m_containsOnlyStaticText : 1;
 };
index 07aedc9..95f9728 100644 (file)
@@ -142,7 +142,7 @@ AccessibilityObject* AccessibilityListBox::listBoxOptionAccessibilityObject(HTML
     return &listBoxObject;
 }
     
-AccessibilityObject* AccessibilityListBox::elementAccessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityListBox::elementAccessibilityHitTest(const IntPoint& point) const
 {
     // the internal HTMLSelectElement methods for returning a listbox option at a point
     // ignore optgroup elements.
@@ -155,7 +155,7 @@ AccessibilityObject* AccessibilityListBox::elementAccessibilityHitTest(const Int
     
     LayoutRect parentRect = boundingBoxRect();
     
-    AccessibilityObject* listBoxOption = nullptr;
+    AXCoreObject* listBoxOption = nullptr;
     unsigned length = m_children.size();
     for (unsigned i = 0; i < length; ++i) {
         LayoutRect rect = downcast<RenderListBox>(*m_renderer).itemBoundingBoxRect(parentRect.location(), i);
index 47a39ce..74e5908 100644 (file)
@@ -51,7 +51,7 @@ private:
 
     bool isNativeListBox() const override { return true; }
     AccessibilityObject* listBoxOptionAccessibilityObject(HTMLElement*) const;
-    AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* elementAccessibilityHitTest(const IntPoint&) const override;
 };
     
 } // namespace WebCore
index 7abffae..aaeafe0 100644 (file)
@@ -202,7 +202,7 @@ bool AccessibilityMathMLElement::isMathTableCell() const
 
 bool AccessibilityMathMLElement::isMathScriptObject(AccessibilityMathScriptObjectType type) const
 {
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!parent)
         return false;
 
@@ -211,7 +211,7 @@ bool AccessibilityMathMLElement::isMathScriptObject(AccessibilityMathScriptObjec
 
 bool AccessibilityMathMLElement::isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType type) const
 {
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!parent || !parent->isMathMultiscript())
         return false;
 
@@ -236,7 +236,7 @@ bool AccessibilityMathMLElement::isMathMultiscriptObject(AccessibilityMathMultis
     return false;
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathRadicandObject()
+AXCoreObject* AccessibilityMathMLElement::mathRadicandObject()
 {
     if (!isMathRoot())
         return nullptr;
@@ -250,7 +250,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathRadicandObject()
     return children[0].get();
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathRootIndexObject()
+AXCoreObject* AccessibilityMathMLElement::mathRootIndexObject()
 {
     if (!isMathRoot() || isMathSquareRoot())
         return nullptr;
@@ -262,7 +262,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathRootIndexObject()
     return children[1].get();
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathNumeratorObject()
+AXCoreObject* AccessibilityMathMLElement::mathNumeratorObject()
 {
     if (!isMathFraction())
         return nullptr;
@@ -274,7 +274,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathNumeratorObject()
     return children[0].get();
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathDenominatorObject()
+AXCoreObject* AccessibilityMathMLElement::mathDenominatorObject()
 {
     if (!isMathFraction())
         return nullptr;
@@ -286,7 +286,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathDenominatorObject()
     return children[1].get();
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathUnderObject()
+AXCoreObject* AccessibilityMathMLElement::mathUnderObject()
 {
     if (!isMathUnderOver() || !node())
         return nullptr;
@@ -301,7 +301,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathUnderObject()
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathOverObject()
+AXCoreObject* AccessibilityMathMLElement::mathOverObject()
 {
     if (!isMathUnderOver() || !node())
         return nullptr;
@@ -318,7 +318,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathOverObject()
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathBaseObject()
+AXCoreObject* AccessibilityMathMLElement::mathBaseObject()
 {
     if (!isMathSubscriptSuperscript() && !isMathUnderOver() && !isMathMultiscript())
         return nullptr;
@@ -331,7 +331,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathBaseObject()
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathSubscriptObject()
+AXCoreObject* AccessibilityMathMLElement::mathSubscriptObject()
 {
     if (!isMathSubscriptSuperscript() || !node())
         return nullptr;
@@ -346,7 +346,7 @@ AccessibilityObject* AccessibilityMathMLElement::mathSubscriptObject()
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityMathMLElement::mathSuperscriptObject()
+AXCoreObject* AccessibilityMathMLElement::mathSuperscriptObject()
 {
     if (!isMathSubscriptSuperscript() || !node())
         return nullptr;
index 580b859..8747b05 100644 (file)
@@ -77,23 +77,23 @@ private:
     bool isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType) const override;
 
     // Generic components.
-    AccessibilityObject* mathBaseObject() override;
+    AXCoreObject* mathBaseObject() override;
 
     // Root components.
-    AccessibilityObject* mathRadicandObject() override;
-    AccessibilityObject* mathRootIndexObject() override;
+    AXCoreObject* mathRadicandObject() override;
+    AXCoreObject* mathRootIndexObject() override;
 
     // Fraction components.
-    AccessibilityObject* mathNumeratorObject() override;
-    AccessibilityObject* mathDenominatorObject() override;
+    AXCoreObject* mathNumeratorObject() override;
+    AXCoreObject* mathDenominatorObject() override;
 
     // Under over components.
-    AccessibilityObject* mathUnderObject() override;
-    AccessibilityObject* mathOverObject() override;
+    AXCoreObject* mathUnderObject() override;
+    AXCoreObject* mathOverObject() override;
 
     // Subscript/superscript components.
-    AccessibilityObject* mathSubscriptObject() override;
-    AccessibilityObject* mathSuperscriptObject() override;
+    AXCoreObject* mathSubscriptObject() override;
+    AXCoreObject* mathSuperscriptObject() override;
 
     // Fenced components.
     String mathFencedOpenString() const override;
index c985fdd..f3ad6d9 100644 (file)
@@ -64,7 +64,6 @@ public:
 
     String helpText() const override;
     String valueDescription() const override;
-    const AtomString& getAttribute(const QualifiedName& attribute) const;
 
 private:
     explicit AccessibilityMediaTimeline(RenderObject*);
index ef1377b..a2cb517 100644 (file)
@@ -77,7 +77,7 @@ void AccessibilityMenuList::addChildren()
 
     downcast<AccessibilityMockObject>(*list).setParent(this);
     if (list->accessibilityIsIgnored()) {
-        cache->remove(list->axObjectID());
+        cache->remove(list->objectID());
         return;
     }
 
index ee961b5..7b02c22 100644 (file)
@@ -112,10 +112,10 @@ void AccessibilityMenuListPopup::childrenChanged()
 {
     AXObjectCache* cache = axObjectCache();
     for (size_t i = m_children.size(); i > 0 ; --i) {
-        AccessibilityObject* child = m_children[i - 1].get();
+        AXCoreObject* child = m_children[i - 1].get();
         if (child->actionElement() && !child->actionElement()->inRenderedDocument()) {
             child->detachFromParent();
-            cache->remove(child->axObjectID());
+            cache->remove(child->objectID());
         }
     }
     
@@ -130,7 +130,7 @@ void AccessibilityMenuListPopup::didUpdateActiveOption(int optionIndex)
     ASSERT_ARG(optionIndex, optionIndex < static_cast<int>(m_children.size()));
 
     AXObjectCache* cache = axObjectCache();
-    RefPtr<AccessibilityObject> child = m_children[optionIndex].get();
+    RefPtr<AXCoreObject> child = m_children[optionIndex].get();
 
     cache->postNotification(child.get(), document(), AXObjectCache::AXFocusedUIElementChanged, TargetElement, PostSynchronously);
     cache->postNotification(child.get(), document(), AXObjectCache::AXMenuListItemSelected, TargetElement, PostSynchronously);
index a2d327f..0304ec7 100644 (file)
@@ -912,7 +912,7 @@ bool AccessibilityNodeObject::isGroup() const
     return role == AccessibilityRole::Group || role == AccessibilityRole::TextGroup || role == AccessibilityRole::ApplicationGroup || role == AccessibilityRole::ApplicationTextGroup;
 }
 
-AccessibilityObject* AccessibilityNodeObject::selectedRadioButton()
+AXCoreObject* AccessibilityNodeObject::selectedRadioButton()
 {
     if (!isRadioGroup())
         return nullptr;
@@ -925,14 +925,14 @@ AccessibilityObject* AccessibilityNodeObject::selectedRadioButton()
     return nullptr;
 }
 
-AccessibilityObject* AccessibilityNodeObject::selectedTabItem()
+AXCoreObject* AccessibilityNodeObject::selectedTabItem()
 {
     if (!isTabList())
         return nullptr;
 
     // FIXME: Is this valid? ARIA tab items support aria-selected; not aria-checked.
     // Find the child tab item that is selected (ie. the intValue == 1).
-    AccessibilityObject::AccessibilityChildrenVector tabs;
+    AXCoreObject::AccessibilityChildrenVector tabs;
     tabChildren(tabs);
 
     for (const auto& child : children()) {
index a867c0c..380d997 100644 (file)
@@ -101,8 +101,8 @@ public:
     float minValueForRange() const override;
     float stepValueForRange() const override;
 
-    AccessibilityObject* selectedRadioButton() override;
-    AccessibilityObject* selectedTabItem() override;
+    AXCoreObject* selectedRadioButton() override;
+    AXCoreObject* selectedTabItem() override;
     AccessibilityButtonState checkboxOrRadioValue() const override;
 
     unsigned hierarchicalLevel() const override;
index e8aa69b..a34a5f0 100644 (file)
@@ -119,7 +119,7 @@ bool AccessibilityObject::isDetached() const
 #endif
 }
 
-bool AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex(AccessibilityObject* axObject, AccessibilitySearchCriteria* criteria, size_t index)
+bool AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex(AXCoreObject* axObject, AccessibilitySearchCriteria* criteria, size_t index)
 {
     switch (criteria->searchKeys[index]) {
     // The AccessibilitySearchKey::AnyType matches any non-null AccessibilityObject.
@@ -268,7 +268,7 @@ bool AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex(AccessibilityO
     }
 }
 
-bool AccessibilityObject::isAccessibilityObjectSearchMatch(AccessibilityObject* axObject, AccessibilitySearchCriteria* criteria)
+bool AccessibilityObject::isAccessibilityObjectSearchMatch(AXCoreObject* axObject, AccessibilitySearchCriteria* criteria)
 {
     if (!axObject || !criteria)
         return false;
@@ -276,7 +276,7 @@ bool AccessibilityObject::isAccessibilityObjectSearchMatch(AccessibilityObject*
     size_t length = criteria->searchKeys.size();
     for (size_t i = 0; i < length; ++i) {
         if (isAccessibilityObjectSearchMatchAtIndex(axObject, criteria, i)) {
-            if (criteria->visibleOnly && !axObject->isOnscreen())
+            if (criteria->visibleOnly && !axObject->isOnScreen())
                 return false;
             return true;
         }
@@ -284,15 +284,15 @@ bool AccessibilityObject::isAccessibilityObjectSearchMatch(AccessibilityObject*
     return false;
 }
 
-bool AccessibilityObject::isAccessibilityTextSearchMatch(AccessibilityObject* axObject, AccessibilitySearchCriteria* criteria)
+bool AccessibilityObject::isAccessibilityTextSearchMatch(AXCoreObject* axObject, AccessibilitySearchCriteria* criteria)
 {
     if (!axObject || !criteria)
         return false;
     
-    return axObject->accessibilityObjectContainsText(&criteria->searchText);
+    return axObject->containsText(&criteria->searchText);
 }
 
-bool AccessibilityObject::accessibilityObjectContainsText(String* text) const
+bool AccessibilityObject::containsText(String* text) const
 {
     // If text is null or empty we return true.
     return !text
@@ -522,7 +522,7 @@ unsigned AccessibilityObject::blockquoteLevel() const
     return level;
 }
 
-AccessibilityObject* AccessibilityObject::parentObjectUnignored() const
+AXCoreObject* AccessibilityObject::parentObjectUnignored() const
 {
     return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) {
         return !object.accessibilityIsIgnored();
@@ -625,7 +625,7 @@ bool AccessibilityObject::isDescendantOfRole(AccessibilityRole role) const
     }) != nullptr;
 }
 
-static void appendAccessibilityObject(AccessibilityObject* object, AccessibilityObject::AccessibilityChildrenVector& results)
+static void appendAccessibilityObject(AXCoreObject* object, AccessibilityObject::AccessibilityChildrenVector& results)
 {
     // Find the next descendant of this attachment object so search can continue through frames.
     if (object->isAttachment()) {
@@ -644,7 +644,7 @@ static void appendAccessibilityObject(AccessibilityObject* object, Accessibility
         results.append(object);
 }
     
-void AccessibilityObject::insertChild(AccessibilityObject* child, unsigned index)
+void AccessibilityObject::insertChild(AXCoreObject* child, unsigned index)
 {
     if (!child)
         return;
@@ -684,12 +684,12 @@ void AccessibilityObject::insertChild(AccessibilityObject* child, unsigned index
     child->clearIsIgnoredFromParentData();
 }
     
-void AccessibilityObject::addChild(AccessibilityObject* child)
+void AccessibilityObject::addChild(AXCoreObject* child)
 {
     insertChild(child, m_children.size());
 }
     
-static void appendChildrenToArray(AccessibilityObject* object, bool isForward, AccessibilityObject* startObject, AccessibilityObject::AccessibilityChildrenVector& results)
+static void appendChildrenToArray(AXCoreObject* object, bool isForward, AXCoreObject* startObject, AccessibilityObject::AccessibilityChildrenVector& results)
 {
     // A table's children includes elements whose own children are also the table's children (due to the way the Mac exposes tables).
     // The rows from the table should be queried, since those are direct descendants of the table, and they contain content.
@@ -702,7 +702,7 @@ static void appendChildrenToArray(AccessibilityObject* object, bool isForward, A
 
     // If the startObject is ignored, we should use an accessible sibling as a start element instead.
     if (startObject && startObject->accessibilityIsIgnored() && startObject->isDescendantOfObject(object)) {
-        AccessibilityObject* parentObject = startObject->parentObject();
+        AXCoreObject* parentObject = startObject->parentObject();
         // Go up the parent chain to find the highest ancestor that's also being ignored.
         while (parentObject && parentObject->accessibilityIsIgnored()) {
             if (parentObject == object)
@@ -735,7 +735,7 @@ static void appendChildrenToArray(AccessibilityObject* object, bool isForward, A
 }
 
 // Returns true if the number of results is now >= the number of results desired.
-bool AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit(AccessibilityObject* object, AccessibilitySearchCriteria* criteria, AccessibilityChildrenVector& results)
+bool AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit(AXCoreObject* object, AccessibilitySearchCriteria* criteria, AccessibilityChildrenVector& results)
 {
     if (isAccessibilityObjectSearchMatch(object, criteria) && isAccessibilityTextSearchMatch(object, criteria)) {
         results.append(object);
@@ -762,7 +762,7 @@ void AccessibilityObject::findMatchingObjects(AccessibilitySearchCriteria* crite
     // It does this by stepping up the parent chain and at each level doing a DFS.
     
     // If there's no start object, it means we want to search everything.
-    AccessibilityObject* startObject = criteria->startObject;
+    AXCoreObject* startObject = criteria->startObject;
     if (!startObject)
         startObject = this;
     
@@ -771,14 +771,14 @@ void AccessibilityObject::findMatchingObjects(AccessibilitySearchCriteria* crite
     // The first iteration of the outer loop will examine the children of the start object for matches. However, when
     // iterating backwards, the start object children should not be considered, so the loop is skipped ahead. We make an
     // exception when no start object was specified because we want to search everything regardless of search direction.
-    AccessibilityObject* previousObject = nullptr;
+    AXCoreObject* previousObject = nullptr;
     if (!isForward && startObject != this) {
         previousObject = startObject;
         startObject = startObject->parentObjectUnignored();
     }
     
     // The outer loop steps up the parent chain each time (unignored is important here because otherwise elements would be searched twice)
-    for (AccessibilityObject* stopSearchElement = parentObjectUnignored(); startObject && startObject != stopSearchElement; startObject = startObject->parentObjectUnignored()) {
+    for (auto* stopSearchElement = parentObjectUnignored(); startObject && startObject != stopSearchElement; startObject = startObject->parentObjectUnignored()) {
 
         // Only append the children after/before the previous element, so that the search does not check elements that are 
         // already behind/ahead of start element.
@@ -788,7 +788,7 @@ void AccessibilityObject::findMatchingObjects(AccessibilitySearchCriteria* crite
 
         // This now does a DFS at the current level of the parent.
         while (!searchStack.isEmpty()) {
-            AccessibilityObject* searchObject = searchStack.last().get();
+            AXCoreObject* searchObject = searchStack.last().get();
             searchStack.removeLast();
             
             if (objectMatchesSearchCriteriaWithResultLimit(searchObject, criteria, results))
@@ -2031,13 +2031,13 @@ AccessibilityObject* AccessibilityObject::headingElementForNode(Node* node)
 {
     if (!node)
         return nullptr;
-    
+
     RenderObject* renderObject = node->renderer();
     if (!renderObject)
         return nullptr;
-    
+
     AccessibilityObject* axObject = renderObject->document().axObjectCache()->getOrCreate(renderObject);
-    
+
     return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*axObject, true, [] (const AccessibilityObject& object) {
         return object.roleValue() == AccessibilityRole::Heading;
     }));
@@ -2360,17 +2360,17 @@ AccessibilityOrientation AccessibilityObject::orientation() const
     return AccessibilityOrientation::Undefined;
 }    
 
-bool AccessibilityObject::isDescendantOfObject(const AccessibilityObject* axObject) const
+bool AccessibilityObject::isDescendantOfObject(const AXCoreObject* axObject) const
 {
     if (!axObject || !axObject->hasChildren())
         return false;
-    
+
     return AccessibilityObject::matchedParent(*this, false, [axObject] (const AccessibilityObject& object) {
         return &object == axObject;
     }) != nullptr;
 }
 
-bool AccessibilityObject::isAncestorOfObject(const AccessibilityObject* axObject) const
+bool AccessibilityObject::isAncestorOfObject(const AXCoreObject* axObject) const
 {
     if (!axObject)
         return false;
@@ -2778,7 +2778,7 @@ bool AccessibilityObject::supportsLiveRegion(bool excludeIfOff) const
     return excludeIfOff ? liveRegionStatusIsEnabled(liveRegionStatusValue) : !liveRegionStatusValue.isEmpty();
 }
 
-AccessibilityObjectInterface* AccessibilityObject::elementAccessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityObject::elementAccessibilityHitTest(const IntPoint& point) const
 { 
     // Send the hit test back into the sub-frame if necessary.
     if (isAttachment()) {
@@ -2805,7 +2805,7 @@ AXObjectCache* AccessibilityObject::axObjectCache() const
     return document ? document->axObjectCache() : nullptr;
 }
     
-AccessibilityObjectInterface* AccessibilityObject::focusedUIElement() const
+AXCoreObject* AccessibilityObject::focusedUIElement() const
 {
     auto* page = this->page();
     return page ? AXObjectCache::focusedUIElementForPage(page) : nullptr;
@@ -2963,7 +2963,7 @@ bool AccessibilityObject::isExpanded() const
         }))
             return parent->isExpanded();
     }
-    
+
     return false;  
 }
 
@@ -3103,7 +3103,7 @@ static int computeBestScrollOffset(int currentScrollOffset, int subfocusMin, int
     return (objectMin + objectMax - viewportMin - viewportMax) / 2;
 }
 
-bool AccessibilityObject::isOnscreen() const
+bool AccessibilityObject::isOnScreen() const
 {   
     bool isOnscreen = true;
 
@@ -3480,7 +3480,7 @@ bool AccessibilityObject::accessibilityIsIgnored() const
         attributeCache = cache->computedObjectAttributeCache();
     
     if (attributeCache) {
-        AccessibilityObjectInclusion ignored = attributeCache->getIgnored(axObjectID());
+        AccessibilityObjectInclusion ignored = attributeCache->getIgnored(objectID());
         switch (ignored) {
         case AccessibilityObjectInclusion::IgnoreObject:
             return true;
@@ -3495,7 +3495,7 @@ bool AccessibilityObject::accessibilityIsIgnored() const
 
     // In case computing axIsIgnored disables attribute caching, we should refetch the object to see if it exists.
     if (cache && (attributeCache = cache->computedObjectAttributeCache()))
-        attributeCache->setIgnored(axObjectID(), result ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject);
+        attributeCache->setIgnored(objectID(), result ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject);
 
     return result;
 }
@@ -3620,7 +3620,7 @@ bool AccessibilityObject::isContainedByPasswordField() const
     return is<HTMLInputElement>(element) && downcast<HTMLInputElement>(*element).isPasswordField();
 }
     
-AccessibilityObject* AccessibilityObject::selectedListItem()
+AXCoreObject* AccessibilityObject::selectedListItem()
 {
     for (const auto& child : children()) {
         if (child->isListItem() && (child->isSelected() || child->isActiveDescendantOfFocusedContainer()))
@@ -3752,7 +3752,7 @@ void AccessibilityObject::ariaOwnsReferencingElements(AccessibilityChildrenVecto
     ariaElementsReferencedByAttribute(owners, aria_ownsAttr);
 }
 
-void AccessibilityObject::setIsIgnoredFromParentDataForChild(AccessibilityObject* child)
+void AccessibilityObject::setIsIgnoredFromParentDataForChild(AXCoreObject* child)
 {
     if (!child)
         return;
index 3ff0c36..383ddec 100644 (file)
 
 #include "AccessibilityObjectInterface.h"
 #include "FloatQuad.h"
-#include "HTMLTextFormControlElement.h"
 #include "LayoutRect.h"
 #include "Path.h"
 #include "Range.h"
-#include "TextIteratorBehavior.h"
-#include "VisiblePosition.h"
-#include "VisibleSelection.h"
 #include <wtf/Forward.h>
 #include <wtf/Function.h>
 #include <wtf/RefPtr.h>
@@ -53,8 +49,6 @@
 
 #if PLATFORM(COCOA)
 
-typedef struct _NSRange NSRange;
-
 OBJC_CLASS NSArray;
 OBJC_CLASS NSAttributedString;
 OBJC_CLASS NSData;
@@ -68,20 +62,9 @@ OBJC_CLASS NSView;
 namespace WebCore {
 
 class AccessibilityObject;
-class AccessibilityScrollView;
-class AXObjectCache;
-class Element;
-class Frame;
-class FrameView;
 class IntPoint;
 class IntSize;
-class Node;
-class Page;
-class RenderObject;
 class ScrollableArea;
-class ScrollView;
-class Widget;
-struct ScrollRectToVisibleOptions;
 
 enum class AccessibilityTextSource {
     Alternative,
@@ -121,496 +104,272 @@ struct AccessibilityText {
     }
 };
 
-struct AccessibilityTextUnderElementMode {
-    enum ChildrenInclusion {
-        TextUnderElementModeSkipIgnoredChildren,
-        TextUnderElementModeIncludeAllChildren,
-        TextUnderElementModeIncludeNameFromContentsChildren, // This corresponds to ARIA concept: nameFrom
-    };
-    
-    ChildrenInclusion childrenInclusion;
-    bool includeFocusableContent;
-    Node* ignoredChildNode;
-    
-    AccessibilityTextUnderElementMode(ChildrenInclusion c = TextUnderElementModeSkipIgnoredChildren, bool i = false, Node* ignored = nullptr)
-        : childrenInclusion(c)
-        , includeFocusableContent(i)
-        , ignoredChildNode(ignored)
-    { }
-};
-
-// Use this struct to store the isIgnored data that depends on the parents, so that in addChildren()
-// we avoid going up the parent chain for each element while traversing the tree with useful information already.
-struct AccessibilityIsIgnoredFromParentData {
-    AccessibilityObject* parent { nullptr };
-    bool isAXHidden { false };
-    bool isPresentationalChildOfAriaRole { false };
-    bool isDescendantOfBarrenParent { false };
-    
-    AccessibilityIsIgnoredFromParentData(AccessibilityObject* parent = nullptr)
-        : parent(parent)
-    { }
-
-    bool isNull() const { return !parent; }
-};
-    
-enum class AccessibilityOrientation {
-    Vertical,
-    Horizontal,
-    Undefined,
-};
-    
-enum class AccessibilityObjectInclusion {
-    IncludeObject,
-    IgnoreObject,
-    DefaultBehavior,
-};
-    
-enum class AccessibilityButtonState {
-    Off = 0,
-    On,
-    Mixed,
-};
-    
-enum class AccessibilitySortDirection {
-    None,
-    Ascending,
-    Descending,
-    Other,
-    Invalid,
-};
-
-enum class AccessibilitySearchDirection {
-    Next = 1,
-    Previous,
-};
-
-enum class AccessibilitySearchKey {
-    AnyType = 1,
-    Article,
-    BlockquoteSameLevel,
-    Blockquote,
-    BoldFont,
-    Button,
-    CheckBox,
-    Control,
-    DifferentType,
-    FontChange,
-    FontColorChange,
-    Frame,
-    Graphic,
-    HeadingLevel1,
-    HeadingLevel2,
-    HeadingLevel3,
-    HeadingLevel4,
-    HeadingLevel5,
-    HeadingLevel6,
-    HeadingSameLevel,
-    Heading,
-    Highlighted,
-    ItalicFont,
-    KeyboardFocusable,
-    Landmark,
-    Link,
-    List,
-    LiveRegion,
-    MisspelledWord,
-    Outline,
-    PlainText,
-    RadioGroup,
-    SameType,
-    StaticText,
-    StyleChange,
-    TableSameLevel,
-    Table,
-    TextField,
-    Underline,
-    UnvisitedLink,
-    VisitedLink,
-};
-
-enum class AccessibilityVisiblePositionForBounds {
-    First,
-    Last,
-};
-
-struct AccessibilitySearchCriteria {
-    AccessibilityObject* startObject;
-    AccessibilitySearchDirection searchDirection;
-    Vector<AccessibilitySearchKey> searchKeys;
-    String searchText;
-    unsigned resultsLimit;
-    bool visibleOnly;
-    bool immediateDescendantsOnly;
-    
-    AccessibilitySearchCriteria(AccessibilityObject* startObject, AccessibilitySearchDirection searchDirection, String searchText, unsigned resultsLimit, bool visibleOnly, bool immediateDescendantsOnly)
-        : startObject(startObject)
-        , searchDirection(searchDirection)
-        , searchText(searchText)
-        , resultsLimit(resultsLimit)
-        , visibleOnly(visibleOnly)
-        , immediateDescendantsOnly(immediateDescendantsOnly)
-    { }
-};
-    
-enum class AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed };
-
-struct VisiblePositionRange {
-
-    VisiblePosition start;
-    VisiblePosition end;
-
-    VisiblePositionRange() {}
-
-    VisiblePositionRange(const VisiblePosition& s, const VisiblePosition& e)
-        : start(s)
-        , end(e)
-    { }
-
-    VisiblePositionRange(const VisibleSelection& selection)
-        : start(selection.start())
-        , end(selection.end())
-    { }
-
-    bool isNull() const { return start.isNull() || end.isNull(); }
-};
-
-struct PlainTextRange {
-        
-    unsigned start { 0 };
-    unsigned length { 0 };
-    
-    PlainTextRange() = default;
-    
-    PlainTextRange(unsigned s, unsigned l)
-        : start(s)
-        , length(l)
-    { }
-    
-#if PLATFORM(COCOA)
-    PlainTextRange(NSRange);
-#endif
-    
-    bool isNull() const { return !start && !length; }
-};
-
-enum class AccessibilitySearchTextStartFrom {
-    Begin, // Search from the beginning of the element.
-    Selection, // Search from the position of the current selection.
-    End // Search from the end of the element.
-};
-
-enum class AccessibilitySearchTextDirection {
-    Forward, // Occurrence after the starting range.
-    Backward, // Occurrence before the starting range.
-    Closest, // Closest occurrence to the starting range, whether after or before.
-    All // All occurrences
-};
-
-struct AccessibilitySearchTextCriteria {
-    Vector<String> searchStrings; // Text strings to search for.
-    AccessibilitySearchTextStartFrom start;
-    AccessibilitySearchTextDirection direction;
-
-    AccessibilitySearchTextCriteria()
-        : start(AccessibilitySearchTextStartFrom::Selection)
-        , direction(AccessibilitySearchTextDirection::Forward)
-    { }
-};
-
-enum class AccessibilityTextOperationType {
-    Select,
-    Replace,
-    Capitalize,
-    Lowercase,
-    Uppercase
-};
-
-struct AccessibilityTextOperation {
-    Vector<RefPtr<Range>> textRanges; // text on which perform the operation.
-    AccessibilityTextOperationType type;
-    String replacementText; // For type = replace.
-
-    AccessibilityTextOperation()
-        : type(AccessibilityTextOperationType::Select)
-    { }
-};
-
-enum class AccessibilityMathScriptObjectType { Subscript, Superscript };
-enum class AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript };
-
-enum class AccessibilityCurrentState { False, True, Page, Step, Location, Date, Time };
-enum class AccessibilityConversionSpace { Screen, Page };
-
 bool nodeHasPresentationRole(Node*);
-    
-class AccessibilityObject : public RefCounted<AccessibilityObject>, public AccessibilityObjectInterface {
+
+class AccessibilityObject : public AXCoreObject {
 protected:
     AccessibilityObject() = default;
-    
+
 public:
     virtual ~AccessibilityObject();
 
     // After constructing an AccessibilityObject, it must be given a
     // unique ID, then added to AXObjectCache, and finally init() must
     // be called last.
-    void setAXObjectID(AXID axObjectID) { m_id = axObjectID; }
-    virtual void init() { }
+    void setObjectID(AXID id) override { m_id = id; }
+    void init() override { }
 
     // When the corresponding WebCore object that this AccessibilityObject
     // wraps is deleted, it must be detached.
-    virtual void detach(AccessibilityDetachmentType, AXObjectCache* cache = nullptr);
-    virtual bool isDetached() const;
+    void detach(AccessibilityDetachmentType, AXObjectCache* = nullptr) override;
+    bool isDetached() const override;
 
-    typedef Vector<RefPtr<AccessibilityObject>> AccessibilityChildrenVector;
-    
-    virtual bool isAccessibilityNodeObject() const { return false; }    
-    virtual bool isAccessibilityRenderObject() const { return false; }
-    virtual bool isAccessibilityScrollbar() const { return false; }
-    virtual bool isAccessibilityScrollView() const { return false; }
-    virtual bool isAccessibilitySVGRoot() const { return false; }
-    virtual bool isAccessibilitySVGElement() const { return false; }
+    bool isAccessibilityNodeObject() const override { return false; }
+    bool isAccessibilityRenderObject() const override { return false; }
+    bool isAccessibilityScrollbar() const override { return false; }
+    bool isAccessibilityScrollView() const override { return false; }
+    bool isAccessibilitySVGRoot() const override { return false; }
+    bool isAccessibilitySVGElement() const override { return false; }
 
-    bool accessibilityObjectContainsText(String *) const;
+    bool containsText(String *) const override;
 
-    virtual bool isAttachmentElement() const { return false; }
-    virtual bool isHeading() const { return false; }
+    bool isAttachmentElement() const override { return false; }
+    bool isHeading() const override { return false; }
     bool isLink() const override { return false; }
     bool isImage() const override { return false; }
-    virtual bool isImageMap() const { return roleValue() == AccessibilityRole::ImageMap; }
-    virtual bool isNativeImage() const { return false; }
-    virtual bool isImageButton() const { return false; }
-    virtual bool isPasswordField() const { return false; }
-    bool isContainedByPasswordField() const;
-    virtual AccessibilityObject* passwordFieldOrContainingPasswordField() { return nullptr; }
-    virtual bool isNativeTextControl() const { return false; }
-    virtual bool isSearchField() const { return false; }
-    bool isWebArea() const { return roleValue() == AccessibilityRole::WebArea; }
-    virtual bool isCheckbox() const { return roleValue() == AccessibilityRole::CheckBox; }
-    virtual bool isRadioButton() const { return roleValue() == AccessibilityRole::RadioButton; }
-    virtual bool isNativeListBox() const { return false; }
-    bool isListBox() const { return roleValue() == AccessibilityRole::ListBox; }
-    virtual bool isListBoxOption() const { return false; }
+    bool isImageMap() const override { return roleValue() == AccessibilityRole::ImageMap; }
+    bool isNativeImage() const override { return false; }
+    bool isImageButton() const override { return false; }
+    bool isPasswordField() const override { return false; }
+    bool isContainedByPasswordField() const override;
+    AccessibilityObject* passwordFieldOrContainingPasswordField() override { return nullptr; }
+    bool isNativeTextControl() const override { return false; }
+    bool isSearchField() const override { return false; }
+    bool isWebArea() const override { return roleValue() == AccessibilityRole::WebArea; }
+    bool isCheckbox() const override { return roleValue() == AccessibilityRole::CheckBox; }
+    bool isRadioButton() const override { return roleValue() == AccessibilityRole::RadioButton; }
+    bool isNativeListBox() const override { return false; }
+    bool isListBox() const override { return roleValue() == AccessibilityRole::ListBox; }
+    bool isListBoxOption() const override { return false; }
     bool isAttachment() const override { return false; }
-    virtual bool isMediaTimeline() const { return false; }
-    virtual bool isMenuRelated() const { return false; }
-    virtual bool isMenu() const { return false; }
-    virtual bool isMenuBar() const { return false; }
-    virtual bool isMenuButton() const { return false; }
-    virtual bool isMenuItem() const { return false; }
+    bool isMediaTimeline() const override { return false; }
+    bool isMenuRelated() const override { return false; }
+    bool isMenu() const override { return false; }
+    bool isMenuBar() const override { return false; }
+    bool isMenuButton() const override { return false; }
+    bool isMenuItem() const override { return false; }
     bool isFileUploadButton() const override { return false; }
-    virtual bool isInputImage() const { return false; }
-    virtual bool isProgressIndicator() const { return false; }
-    virtual bool isSlider() const { return false; }
-    virtual bool isSliderThumb() const { return false; }
-    virtual bool isInputSlider() const { return false; }
-    virtual bool isControl() const { return false; }
-    virtual bool isLabel() const { return false; }
-    virtual bool isList() const { return false; }
-    virtual bool isTable() const { return false; }
-    virtual bool isDataTable() const { return false; }
-    virtual bool isTableRow() const { return false; }
-    virtual bool isTableColumn() const { return false; }
-    virtual bool isTableCell() const { return false; }
-    virtual bool isFieldset() const { return false; }
-    virtual bool isGroup() const { return false; }
-    virtual bool isARIATreeGridRow() const { return false; }
+    bool isInputImage() const override { return false; }
+    bool isProgressIndicator() const override { return false; }
+    bool isSlider() const override { return false; }
+    bool isSliderThumb() const override { return false; }
+    bool isInputSlider() const override { return false; }
+    bool isControl() const override { return false; }
+    bool isLabel() const override { return false; }
+    bool isList() const override { return false; }
+    bool isTable() const override { return false; }
+    bool isDataTable() const override { return false; }
+    bool isTableRow() const override { return false; }
+    bool isTableColumn() const override { return false; }
+    bool isTableCell() const override { return false; }
+    bool isFieldset() const override { return false; }
+    bool isGroup() const override { return false; }
+    bool isARIATreeGridRow() const override { return false; }
     bool isImageMapLink() const override { return false; }
-    virtual bool isMenuList() const { return false; }
-    virtual bool isMenuListPopup() const { return false; }
-    virtual bool isMenuListOption() const { return false; }
-    virtual bool isSpinButton() const { return roleValue() == AccessibilityRole::SpinButton; }
-    virtual bool isNativeSpinButton() const { return false; }
-    virtual bool isSpinButtonPart() const { return false; }
-    virtual bool isMockObject() const { return false; }
+    bool isMenuList() const override { return false; }
+    bool isMenuListPopup() const override { return false; }
+    bool isMenuListOption() const override { return false; }
+    bool isSpinButton() const override { return roleValue() == AccessibilityRole::SpinButton; }
+    bool isNativeSpinButton() const override { return false; }
+    bool isSpinButtonPart() const override { return false; }
+    bool isMockObject() const override { return false; }
     bool isMediaControlLabel() const override { return false; }
-    virtual bool isMediaObject() const { return false; }
-    bool isSwitch() const { return roleValue() == AccessibilityRole::Switch; }
-    bool isToggleButton() const { return roleValue() == AccessibilityRole::ToggleButton; }
-    bool isTextControl() const;
-    bool isARIATextControl() const;
-    bool isNonNativeTextControl() const;
-    bool isTabList() const { return roleValue() == AccessibilityRole::TabList; }
-    bool isTabItem() const { return roleValue() == AccessibilityRole::Tab; }
-    bool isRadioGroup() const { return roleValue() == AccessibilityRole::RadioGroup; }
-    bool isComboBox() const { return roleValue() == AccessibilityRole::ComboBox; }
+    bool isMediaObject() const override { return false; }
+    bool isSwitch() const override { return roleValue() == AccessibilityRole::Switch; }
+    bool isToggleButton() const override { return roleValue() == AccessibilityRole::ToggleButton; }
+    bool isTextControl() const override;
+    bool isARIATextControl() const override;
+    bool isNonNativeTextControl() const override;
+    bool isTabList() const override { return roleValue() == AccessibilityRole::TabList; }
+    bool isTabItem() const override { return roleValue() == AccessibilityRole::Tab; }
+    bool isRadioGroup() const override { return roleValue() == AccessibilityRole::RadioGroup; }
+    bool isComboBox() const override { return roleValue() == AccessibilityRole::ComboBox; }
     bool isTree() const override { return roleValue() == AccessibilityRole::Tree; }
-    bool isTreeGrid() const { return roleValue() == AccessibilityRole::TreeGrid; }
+    bool isTreeGrid() const override { return roleValue() == AccessibilityRole::TreeGrid; }
     bool isTreeItem() const override { return roleValue() == AccessibilityRole::TreeItem; }
     bool isScrollbar() const override { return roleValue() == AccessibilityRole::ScrollBar; }
-    bool isButton() const;
-    bool isListItem() const { return roleValue() == AccessibilityRole::ListItem; }
-    bool isCheckboxOrRadio() const { return isCheckbox() || isRadioButton(); }
-    bool isScrollView() const { return roleValue() == AccessibilityRole::ScrollArea; }
-    bool isCanvas() const { return roleValue() == AccessibilityRole::Canvas; }
-    bool isPopUpButton() const { return roleValue() == AccessibilityRole::PopUpButton; }
-    bool isBlockquote() const;
-    bool isLandmark() const;
-    bool isColorWell() const { return roleValue() == AccessibilityRole::ColorWell; }
-    bool isRangeControl() const;
-    bool isMeter() const;
-    bool isSplitter() const { return roleValue() == AccessibilityRole::Splitter; }
-    bool isToolbar() const { return roleValue() == AccessibilityRole::Toolbar; }
-    bool isStyleFormatGroup() const;
-    bool isFigureElement() const;
-    bool isKeyboardFocusable() const;
-    bool isSummary() const { return roleValue() == AccessibilityRole::Summary; }
-    bool isOutput() const;
-    
-    virtual bool isChecked() const { return false; }
-    virtual bool isEnabled() const { return false; }
-    virtual bool isSelected() const { return false; }
-    virtual bool isFocused() const { return false; }
-    virtual bool isHovered() const { return false; }
-    virtual bool isIndeterminate() const { return false; }
-    virtual bool isLoaded() const { return false; }
-    virtual bool isMultiSelectable() const { return false; }
-    virtual bool isOffScreen() const { return false; }
-    virtual bool isPressed() const { return false; }
-    virtual bool isUnvisited() const { return false; }
-    virtual bool isVisited() const { return false; }
-    virtual bool isRequired() const { return false; }
-    virtual bool supportsRequiredAttribute() const { return false; }
-    virtual bool isLinked() const { return false; }
-    virtual bool isExpanded() const;
-    virtual bool isVisible() const { return true; }
-    virtual bool isCollapsed() const { return false; }
-    virtual void setIsExpanded(bool) { }
+    bool isButton() const override;
+    bool isListItem() const override { return roleValue() == AccessibilityRole::ListItem; }
+    bool isCheckboxOrRadio() const override { return isCheckbox() || isRadioButton(); }
+    bool isScrollView() const override { return roleValue() == AccessibilityRole::ScrollArea; }
+    bool isCanvas() const override { return roleValue() == AccessibilityRole::Canvas; }
+    bool isPopUpButton() const override { return roleValue() == AccessibilityRole::PopUpButton; }
+    bool isBlockquote() const override;
+    bool isLandmark() const override;
+    bool isColorWell() const override { return roleValue() == AccessibilityRole::ColorWell; }
+    bool isRangeControl() const override;
+    bool isMeter() const override;
+    bool isSplitter() const override { return roleValue() == AccessibilityRole::Splitter; }
+    bool isToolbar() const override { return roleValue() == AccessibilityRole::Toolbar; }
+    bool isStyleFormatGroup() const override;
+    bool isFigureElement() const override;
+    bool isKeyboardFocusable() const override;
+    bool isSummary() const override { return roleValue() == AccessibilityRole::Summary; }
+    bool isOutput() const override;
+
+    bool isChecked() const override { return false; }
+    bool isEnabled() const override { return false; }
+    bool isSelected() const override { return false; }
+    bool isFocused() const override { return false; }
+    bool isHovered() const override { return false; }
+    bool isIndeterminate() const override { return false; }
+    bool isLoaded() const override { return false; }
+    bool isMultiSelectable() const override { return false; }
+    bool isOffScreen() const override { return false; }
+    bool isPressed() const override { return false; }
+    bool isUnvisited() const override { return false; }
+    bool isVisited() const override { return false; }
+    bool isRequired() const override { return false; }
+    bool supportsRequiredAttribute() const override { return false; }
+    bool isLinked() const override { return false; }
+    bool isExpanded() const override;
+    bool isVisible() const override { return true; }
+    bool isCollapsed() const override { return false; }
+    void setIsExpanded(bool) override { }
     FloatRect relativeFrame() const override;
-    FloatRect convertFrameToSpace(const FloatRect&, AccessibilityConversionSpace) const;
+    FloatRect convertFrameToSpace(const FloatRect&, AccessibilityConversionSpace) const override;
 
     // In a multi-select list, many items can be selected but only one is active at a time.
-    virtual bool isSelectedOptionActive() const { return false; }
-
-    virtual bool hasBoldFont() const { return false; }
-    virtual bool hasItalicFont() const { return false; }
-    bool hasMisspelling() const;
-    RefPtr<Range> getMisspellingRange(RefPtr<Range> const& start, AccessibilitySearchDirection) const;
-    virtual bool hasPlainText() const { return false; }
-    virtual bool hasSameFont(RenderObject*) const { return false; }
-    virtual bool hasSameFontColor(RenderObject*) const { return false; }
-    virtual bool hasSameStyle(RenderObject*) const { return false; }
-    bool isStaticText() const { return roleValue() == AccessibilityRole::StaticText; }
-    virtual bool hasUnderline() const { return false; }
-    bool hasHighlighting() const;
-
-    bool supportsDatetimeAttribute() const;
-    const AtomString& datetimeAttributeValue() const;
-    
-    virtual bool canSetFocusAttribute() const { return false; }
-    virtual bool canSetTextRangeAttributes() const { return false; }
-    virtual bool canSetValueAttribute() const { return false; }
-    virtual bool canSetNumericValue() const { return false; }
-    virtual bool canSetSelectedAttribute() const { return false; }
-    virtual bool canSetSelectedChildrenAttribute() const { return false; }
-    virtual bool canSetExpandedAttribute() const { return false; }
-    
-    virtual Element* element() const;
-    virtual Node* node() const { return nullptr; }
-    virtual RenderObject* renderer() const { return nullptr; }
+    bool isSelectedOptionActive() const override { return false; }
+
+    bool hasBoldFont() const override { return false; }
+    bool hasItalicFont() const override { return false; }
+    bool hasMisspelling() const override;
+    RefPtr<Range> getMisspellingRange(RefPtr<Range> const& start, AccessibilitySearchDirection) const override;
+    bool hasPlainText() const override { return false; }
+    bool hasSameFont(RenderObject*) const override { return false; }
+    bool hasSameFontColor(RenderObject*) const override { return false; }
+    bool hasSameStyle(RenderObject*) const override { return false; }
+    bool isStaticText() const override { return roleValue() == AccessibilityRole::StaticText; }
+    bool hasUnderline() const override { return false; }
+    bool hasHighlighting() const override;
+
+    bool supportsDatetimeAttribute() const override;
+    const AtomString& datetimeAttributeValue() const override;
+
+    bool canSetFocusAttribute() const override { return false; }
+    bool canSetTextRangeAttributes() const override { return false; }
+    bool canSetValueAttribute() const override { return false; }
+    bool canSetNumericValue() const override { return false; }
+    bool canSetSelectedAttribute() const override { return false; }
+    bool canSetSelectedChildrenAttribute() const override { return false; }
+    bool canSetExpandedAttribute() const override { return false; }
+
+    Element* element() const override;
+    Node* node() const override { return nullptr; }
+    RenderObject* renderer() const override { return nullptr; }
     bool accessibilityIsIgnored() const override;
-    virtual AccessibilityObjectInclusion defaultObjectInclusion() const;
-    bool accessibilityIsIgnoredByDefault() const;
-    
-    bool isShowingValidationMessage() const;
-    String validationMessage() const;
-    
-    unsigned blockquoteLevel() const;
-    virtual int headingLevel() const { return 0; }
-    virtual int tableLevel() const { return 0; }
-    virtual AccessibilityButtonState checkboxOrRadioValue() const;
-    virtual String valueDescription() const { return String(); }
-    virtual float valueForRange() const { return 0.0f; }
-    virtual float maxValueForRange() const { return 0.0f; }
-    virtual float minValueForRange() const { return 0.0f; }
-    virtual float stepValueForRange() const { return 0.0f; }
-    virtual AccessibilityObject* selectedRadioButton() { return nullptr; }
-    virtual AccessibilityObject* selectedTabItem() { return nullptr; }
-    AccessibilityObject* selectedListItem();
-    virtual int layoutCount() const { return 0; }
-    virtual double estimatedLoadingProgress() const { return 0; }
+    AccessibilityObjectInclusion defaultObjectInclusion() const override;
+    bool accessibilityIsIgnoredByDefault() const override;
+
+    bool isShowingValidationMessage() const override;
+    String validationMessage() const override;
+
+    unsigned blockquoteLevel() const override;
+    int headingLevel() const override { return 0; }
+    int tableLevel() const override { return 0; }
+    AccessibilityButtonState checkboxOrRadioValue() const override;
+    String valueDescription() const override { return String(); }
+    float valueForRange() const override { return 0.0f; }
+    float maxValueForRange() const override { return 0.0f; }
+    float minValueForRange() const override { return 0.0f; }
+    float stepValueForRange() const override { return 0.0f; }
+    AXCoreObject* selectedRadioButton() override { return nullptr; }
+    AXCoreObject* selectedTabItem() override { return nullptr; }
+    AXCoreObject* selectedListItem() override;
+    int layoutCount() const override { return 0; }
+    double estimatedLoadingProgress() const override { return 0; }
     WEBCORE_EXPORT static bool isARIAControl(AccessibilityRole);
     WEBCORE_EXPORT static bool isARIAInput(AccessibilityRole);
 
-    virtual bool supportsARIAOwns() const { return false; }
-    bool isActiveDescendantOfFocusedContainer() const;
-    void ariaActiveDescendantReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaControlsElements(AccessibilityChildrenVector&) const;
-    void ariaControlsReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaDescribedByElements(AccessibilityChildrenVector&) const;
-    void ariaDescribedByReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaDetailsElements(AccessibilityChildrenVector&) const;
-    void ariaDetailsReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaErrorMessageElements(AccessibilityChildrenVector&) const;
-    void ariaErrorMessageReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaFlowToElements(AccessibilityChildrenVector&) const;
-    void ariaFlowToReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaLabelledByElements(AccessibilityChildrenVector&) const;
-    void ariaLabelledByReferencingElements(AccessibilityChildrenVector&) const;
-    void ariaOwnsElements(AccessibilityChildrenVector&) const;
-    void ariaOwnsReferencingElements(AccessibilityChildrenVector&) const;
-
-    virtual bool hasPopup() const { return false; }
-    String popupValue() const;
-    bool hasDatalist() const;
-    bool supportsHasPopup() const;
-    bool pressedIsPresent() const;
-    bool ariaIsMultiline() const;
-    String invalidStatus() const;
-    bool supportsPressed() const;
-    bool supportsExpanded() const;
-    bool supportsChecked() const;
-    AccessibilitySortDirection sortDirection() const;
-    virtual bool canvasHasFallbackContent() const { return false; }
-    bool supportsRangeValue() const;
-    const AtomString& identifierAttribute() const;
-    const AtomString& linkRelValue() const;
-    void classList(Vector<String>&) const;
-    virtual String roleDescription() const;
-    AccessibilityCurrentState currentState() const;
-    String currentValue() const;
-    bool supportsCurrent() const;
-    const String keyShortcutsValue() const;
-    
+    bool supportsARIAOwns() const override { return false; }
+    bool isActiveDescendantOfFocusedContainer() const override;
+    void ariaActiveDescendantReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaControlsElements(AccessibilityChildrenVector&) const override;
+    void ariaControlsReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaDescribedByElements(AccessibilityChildrenVector&) const override;
+    void ariaDescribedByReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaDetailsElements(AccessibilityChildrenVector&) const override;
+    void ariaDetailsReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaErrorMessageElements(AccessibilityChildrenVector&) const override;
+    void ariaErrorMessageReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaFlowToElements(AccessibilityChildrenVector&) const override;
+    void ariaFlowToReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaLabelledByElements(AccessibilityChildrenVector&) const override;
+    void ariaLabelledByReferencingElements(AccessibilityChildrenVector&) const override;
+    void ariaOwnsElements(AccessibilityChildrenVector&) const override;
+    void ariaOwnsReferencingElements(AccessibilityChildrenVector&) const override;
+
+    bool hasPopup() const override { return false; }
+    String popupValue() const override;
+    bool hasDatalist() const override;
+    bool supportsHasPopup() const override;
+    bool pressedIsPresent() const override;
+    bool ariaIsMultiline() const override;
+    String invalidStatus() const override;
+    bool supportsPressed() const override;
+    bool supportsExpanded() const override;
+    bool supportsChecked() const override;
+    AccessibilitySortDirection sortDirection() const override;
+    bool canvasHasFallbackContent() const override { return false; }
+    bool supportsRangeValue() const override;
+    const AtomString& identifierAttribute() const override;
+    const AtomString& linkRelValue() const override;
+    void classList(Vector<String>&) const override;
+    String roleDescription() const override;
+    AccessibilityCurrentState currentState() const override;
+    String currentValue() const override;
+    bool supportsCurrent() const override;
+    const String keyShortcutsValue() const override;
+
     // This function checks if the object should be ignored when there's a modal dialog displayed.
-    bool ignoredFromModalPresence() const;
-    bool isModalDescendant(Node*) const;
-    bool isModalNode() const;
-    
-    bool supportsSetSize() const;
-    bool supportsPosInSet() const;
-    int setSize() const;
-    int posInSet() const;
-    
+    bool ignoredFromModalPresence() const override;
+    bool isModalDescendant(Node*) const override;
+    bool isModalNode() const override;
+
+    bool supportsSetSize() const override;
+    bool supportsPosInSet() const override;
+    int setSize() const override;
+    int posInSet() const override;
+
     // ARIA drag and drop
-    virtual bool supportsARIADropping() const { return false; }
-    virtual bool supportsARIADragging() const { return false; }
-    virtual bool isARIAGrabbed() { return false; }
-    virtual void setARIAGrabbed(bool) { }
-    virtual Vector<String> determineARIADropEffects() { return { }; }
-    
+    bool supportsARIADropping() const override { return false; }
+    bool supportsARIADragging() const override { return false; }
+    bool isARIAGrabbed() override { return false; }
+    void setARIAGrabbed(bool) override { }
+    Vector<String> determineARIADropEffects() override { return { }; }
+
     // Called on the root AX object to return the deepest available element.
-    AccessibilityObjectInterface* accessibilityHitTest(const IntPoint&) const override { return nullptr; }
+    AXCoreObject* accessibilityHitTest(const IntPoint&) const override { return nullptr; }
     // Called on the AX object after the render tree determines which is the right AccessibilityRenderObject.
-    virtual AccessibilityObjectInterface* elementAccessibilityHitTest(const IntPoint&) const;
-
-    AccessibilityObjectInterface* focusedUIElement() const override;
-
-    virtual AccessibilityObject* firstChild() const { return nullptr; }
-    virtual AccessibilityObject* lastChild() const { return nullptr; }
-    virtual AccessibilityObject* previousSibling() const { return nullptr; }
-    virtual AccessibilityObject* nextSibling() const { return nullptr; }
-    virtual AccessibilityObject* nextSiblingUnignored(int limit) const;
-    virtual AccessibilityObject* previousSiblingUnignored(int limit) const;
-    virtual AccessibilityObject* parentObject() const { return nullptr; }
-    virtual AccessibilityObject* parentObjectUnignored() const;
-    AccessibilityObjectInterface* parentObjectInterfaceUnignored() const override { return parentObjectUnignored(); }
-    virtual AccessibilityObject* parentObjectIfExists() const { return nullptr; }
+    AXCoreObject* elementAccessibilityHitTest(const IntPoint&) const override;
+
+    AXCoreObject* focusedUIElement() const override;
+
+    AccessibilityObject* firstChild() const override { return nullptr; }
+    AccessibilityObject* lastChild() const override { return nullptr; }
+    AccessibilityObject* previousSibling() const override { return nullptr; }
+    AccessibilityObject* nextSibling() const override { return nullptr; }
+    AccessibilityObject* nextSiblingUnignored(int limit) const override;
+    AccessibilityObject* previousSiblingUnignored(int limit) const override;
+    AccessibilityObject* parentObject() const override { return nullptr; }
+    AXCoreObject* parentObjectUnignored() const override;
+    AccessibilityObject* parentObjectIfExists() const override { return nullptr; }
     static AccessibilityObject* firstAccessibleObjectFromNode(const Node*);
-    void findMatchingObjects(AccessibilitySearchCriteria*, AccessibilityChildrenVector&);
-    virtual bool isDescendantOfBarrenParent() const { return false; }
+    void findMatchingObjects(AccessibilitySearchCriteria*, AccessibilityChildrenVector&) override;
+    bool isDescendantOfBarrenParent() const override { return false; }
 
-    bool isDescendantOfRole(AccessibilityRole) const;
+    bool isDescendantOfRole(AccessibilityRole) const override;
 
     // Text selection
 private:
@@ -618,397 +377,395 @@ private:
     RefPtr<Range> selectionRange() const;
     RefPtr<Range> findTextRange(Vector<String> const& searchStrings, RefPtr<Range> const& start, AccessibilitySearchTextDirection) const;
 public:
-    Vector<RefPtr<Range>> findTextRanges(AccessibilitySearchTextCriteria const&) const;
-    Vector<String> performTextOperation(AccessibilityTextOperation const&);
-
-    virtual AccessibilityObject* observableObject() const { return nullptr; }
-    virtual void linkedUIElements(AccessibilityChildrenVector&) const { }
-    virtual AccessibilityObject* titleUIElement() const { return nullptr; }
-    virtual bool exposesTitleUIElement() const { return true; }
-    virtual AccessibilityObject* correspondingLabelForControlElement() const { return nullptr; }
-    virtual AccessibilityObject* correspondingControlForLabelElement() const { return nullptr; }
-    virtual AccessibilityObject* scrollBar(AccessibilityOrientation) { return nullptr; }
-    
-    virtual AccessibilityRole ariaRoleAttribute() const { return AccessibilityRole::Unknown; }
-    virtual bool isPresentationalChildOfAriaRole() const { return false; }
-    virtual bool ariaRoleHasPresentationalChildren() const { return false; }
-    virtual bool inheritsPresentationalRole() const { return false; }
+    Vector<RefPtr<Range>> findTextRanges(AccessibilitySearchTextCriteria const&) const override;
+    Vector<String> performTextOperation(AccessibilityTextOperation const&) override;
+
+    AccessibilityObject* observableObject() const override { return nullptr; }
+    void linkedUIElements(AccessibilityChildrenVector&) const override { }
+    AccessibilityObject* titleUIElement() const override { return nullptr; }
+    bool exposesTitleUIElement() const override { return true; }
+    AccessibilityObject* correspondingLabelForControlElement() const override { return nullptr; }
+    AccessibilityObject* correspondingControlForLabelElement() const override { return nullptr; }
+    AccessibilityObject* scrollBar(AccessibilityOrientation) override { return nullptr; }
+
+    AccessibilityRole ariaRoleAttribute() const override { return AccessibilityRole::Unknown; }
+    bool isPresentationalChildOfAriaRole() const override { return false; }
+    bool ariaRoleHasPresentationalChildren() const override { return false; }
+    bool inheritsPresentationalRole() const override { return false; }
 
     // Accessibility Text
-    virtual void accessibilityText(Vector<AccessibilityText>&) const { };
+    void accessibilityText(Vector<AccessibilityText>&) const override { };
     // A single method for getting a computed label for an AXObject. It condenses the nuances of accessibilityText. Used by Inspector.
-    String computedLabel();
-    
+    String computedLabel() override;
+
     // A programmatic way to set a name on an AccessibleObject.
-    virtual void setAccessibleName(const AtomString&) { }
-    virtual bool hasAttributesRequiredForInclusion() const;
+    void setAccessibleName(const AtomString&) override { }
+    bool hasAttributesRequiredForInclusion() const override;
 
     // Accessibility Text - (To be deprecated).
-    virtual String accessibilityDescription() const { return String(); }
-    virtual String title() const { return String(); }
-    virtual String helpText() const { return String(); }
+    String accessibilityDescription() const override { return String(); }
+    String title() const override { return String(); }
+    String helpText() const override { return String(); }
 
     // Methods for determining accessibility text.
-    bool isARIAStaticText() const { return ariaRoleAttribute() == AccessibilityRole::StaticText; }
-    virtual String stringValue() const { return String(); }
-    virtual String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const { return String(); }
-    virtual String text() const { return String(); }
-    virtual int textLength() const { return 0; }
-    virtual String ariaLabeledByAttribute() const { return String(); }
-    virtual String ariaDescribedByAttribute() const { return String(); }
-    const String placeholderValue() const;
-    bool accessibleNameDerivesFromContent() const;
-    
+    bool isARIAStaticText() const override { return ariaRoleAttribute() == AccessibilityRole::StaticText; }
+    String stringValue() const override { return String(); }
+    String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override { return String(); }
+    String text() const override { return String(); }
+    int textLength() const override { return 0; }
+    String ariaLabeledByAttribute() const override { return String(); }
+    String ariaDescribedByAttribute() const override { return String(); }
+    const String placeholderValue() const override;
+    bool accessibleNameDerivesFromContent() const override;
+
     // Abbreviations
-    virtual String expandedTextValue() const { return String(); }
-    virtual bool supportsExpandedTextValue() const { return false; }
-    
-    void elementsFromAttribute(Vector<Element*>&, const QualifiedName&) const;
+    String expandedTextValue() const override { return String(); }
+    bool supportsExpandedTextValue() const override { return false; }
+
+    void elementsFromAttribute(Vector<Element*>&, const QualifiedName&) const override;
 
     // Only if isColorWell()
-    virtual void colorValue(int& r, int& g, int& b) const { r = 0; g = 0; b = 0; }
+    void colorValue(int& r, int& g, int& b) const override { r = 0; g = 0; b = 0; }
 
     AccessibilityRole roleValue() const override { return m_role; }
 
-    virtual AXObjectCache* axObjectCache() const;
-    AXID axObjectID() const { return m_id; }
-    
+    AXObjectCache* axObjectCache() const override;
+    AXID objectID() const override { return m_id; }
+
     static AccessibilityObject* anchorElementForNode(Node*);
     static AccessibilityObject* headingElementForNode(Node*);
-    virtual Element* anchorElement() const { return nullptr; }
-    bool supportsPressAction() const;
-    virtual Element* actionElement() const { return nullptr; }
-    virtual LayoutRect boundingBoxRect() const { return LayoutRect(); }
-    IntRect pixelSnappedBoundingBoxRect() const { return snappedIntRect(boundingBoxRect()); }
-    virtual LayoutRect elementRect() const = 0;
-    LayoutSize size() const { return elementRect().size(); }
-    virtual IntPoint clickPoint();
+    Element* anchorElement() const override { return nullptr; }
+    bool supportsPressAction() const override;
+    Element* actionElement() const override { return nullptr; }
+    LayoutRect boundingBoxRect() const override { return LayoutRect(); }
+    IntRect pixelSnappedBoundingBoxRect() const override { return snappedIntRect(boundingBoxRect()); }
+    LayoutRect elementRect() const override = 0;
+    LayoutSize size() const override { return elementRect().size(); }
+    IntPoint clickPoint() override;
     static IntRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
-    virtual Path elementPath() const { return Path(); }
-    virtual bool supportsPath() const { return false; }
-    
-    TextIteratorBehavior textIteratorBehaviorForTextRange() const;
-    virtual PlainTextRange selectedTextRange() const { return PlainTextRange(); }
-    unsigned selectionStart() const { return selectedTextRange().start; }
-    unsigned selectionEnd() const { return selectedTextRange().length; }
-    
-    virtual URL url() const { return URL(); }
-    virtual VisibleSelection selection() const { return VisibleSelection(); }
-    virtual String selectedText() const { return String(); }
-    virtual const AtomString& accessKey() const { return nullAtom(); }
-    const String& actionVerb() const;
-    virtual Widget* widget() const { return nullptr; }
-    virtual Widget* widgetForAttachmentView() const { return nullptr; }
-    Page* page() const;
-    virtual Document* document() const;
-    virtual FrameView* documentFrameView() const;
-    Frame* frame() const;
-    Frame* mainFrame() const;
-    Document* topDocument() const;
-    ScrollView* scrollViewAncestor() const;
-    String language() const;
+    Path elementPath() const override { return Path(); }
+    bool supportsPath() const override { return false; }
+
+    TextIteratorBehavior textIteratorBehaviorForTextRange() const override;
+    PlainTextRange selectedTextRange() const override { return PlainTextRange(); }
+    unsigned selectionStart() const override { return selectedTextRange().start; }
+    unsigned selectionEnd() const override { return selectedTextRange().length; }
+
+    URL url() const override { return URL(); }
+    VisibleSelection selection() const override { return VisibleSelection(); }
+    String selectedText() const override { return String(); }
+    const AtomString& accessKey() const override { return nullAtom(); }
+    const String& actionVerb() const override;
+    Widget* widget() const override { return nullptr; }
+    Widget* widgetForAttachmentView() const override { return nullptr; }
+    Page* page() const override;
+    Document* document() const override;
+    FrameView* documentFrameView() const override;
+    Frame* frame() const override;
+    Frame* mainFrame() const override;
+    Document* topDocument() const override;
+    ScrollView* scrollViewAncestor() const override;
+    String language() const override;
     // 1-based, to match the aria-level spec.
-    virtual unsigned hierarchicalLevel() const { return 0; }
-    
-    virtual void setFocused(bool) { }
-    virtual void setSelectedText(const String&) { }
-    virtual void setSelectedTextRange(const PlainTextRange&) { }
-    virtual void setValue(const String&) { }
-    bool replaceTextInRange(const String&, const PlainTextRange&);
-    bool insertText(const String&);
-
-    virtual void setValue(float) { }
-    virtual void setSelected(bool) { }
-    virtual void setSelectedRows(AccessibilityChildrenVector&) { }
-    
-    virtual void makeRangeVisible(const PlainTextRange&) { }
-    virtual bool press();
-    bool performDefaultAction() { return press(); }
-    
-    virtual AccessibilityOrientation orientation() const;
-    virtual void increment() { }
-    virtual void decrement() { }
-
-    virtual void childrenChanged() { }
-    virtual void textChanged() { }
-    virtual void updateAccessibilityRole() { }
-    const AccessibilityChildrenVector& children(bool updateChildrenIfNeeded = true);
-    virtual void addChildren() { }
-    virtual void addChild(AccessibilityObject*);
-    virtual void insertChild(AccessibilityObject*, unsigned);
-
-    virtual bool shouldIgnoreAttributeRole() const { return false; }
-    
-    virtual bool canHaveChildren() const { return true; }
-    virtual bool hasChildren() const { return m_haveChildren; }
+    unsigned hierarchicalLevel() const override { return 0; }
+
+    void setFocused(bool) override { }
+    void setSelectedText(const String&) override { }
+    void setSelectedTextRange(const PlainTextRange&) override { }
+    void setValue(const String&) override { }
+    bool replaceTextInRange(const String&, const PlainTextRange&) override;
+    bool insertText(const String&) override;
+
+    void setValue(float) override { }
+    void setSelected(bool) override { }
+    void setSelectedRows(AccessibilityChildrenVector&) override { }
+
+    void makeRangeVisible(const PlainTextRange&) override { }
+    bool press() override;
+    bool performDefaultAction() override { return press(); }
+
+    AccessibilityOrientation orientation() const override;
+    void increment() override { }
+    void decrement() override { }
+
+    void childrenChanged() override { }
+    void textChanged() override { }
+    void updateAccessibilityRole() override { }
+    const AccessibilityChildrenVector& children(bool updateChildrenIfNeeded = true) override;
+    void addChildren() override { }
+    void addChild(AXCoreObject*) override;
+    void insertChild(AXCoreObject*, unsigned) override;
+
+    bool shouldIgnoreAttributeRole() const override { return false; }
+
+    bool canHaveChildren() const override { return true; }
+    bool hasChildren() const override { return m_haveChildren; }
     void updateChildrenIfNecessary() override;
-    virtual void setNeedsToUpdateChildren() { }
-    virtual void setNeedsToUpdateSubtree() { }
-    virtual void clearChildren();
-    virtual bool needsToUpdateChildren() const { return false; }
+    void setNeedsToUpdateChildren() override { }
+    void setNeedsToUpdateSubtree() override { }
+    void clearChildren() override;
+    bool needsToUpdateChildren() const override { return false; }
 #if PLATFORM(COCOA)
-    virtual void detachFromParent();
+    void detachFromParent() override;
 #else
-    virtual void detachFromParent() { }
+    void detachFromParent() override { }
 #endif
-    virtual bool isDetachedFromParent() { return false; }
-
-    virtual bool canHaveSelectedChildren() const { return false; }
-    virtual void selectedChildren(AccessibilityChildrenVector&) { }
-    virtual void visibleChildren(AccessibilityChildrenVector&) { }
-    virtual void tabChildren(AccessibilityChildrenVector&) { }
-    virtual bool shouldFocusActiveDescendant() const { return false; }
-    virtual AccessibilityObject* activeDescendant() const { return nullptr; }
-    virtual void handleActiveDescendantChanged() { }
-    virtual void handleAriaExpandedChanged() { }
-    bool isDescendantOfObject(const AccessibilityObject*) const;
-    bool isAncestorOfObject(const AccessibilityObject*) const;
-    AccessibilityObject* firstAnonymousBlockChild() const;
+    bool isDetachedFromParent() override { return false; }
+
+    bool canHaveSelectedChildren() const override { return false; }
+    void selectedChildren(AccessibilityChildrenVector&) override { }
+    void visibleChildren(AccessibilityChildrenVector&) override { }
+    void tabChildren(AccessibilityChildrenVector&) override { }
+    bool shouldFocusActiveDescendant() const override { return false; }
+    AccessibilityObject* activeDescendant() const override { return nullptr; }
+    void handleActiveDescendantChanged() override { }
+    void handleAriaExpandedChanged() override { }
+    bool isDescendantOfObject(const AXCoreObject*) const override;
+    bool isAncestorOfObject(const AXCoreObject*) const override;
+    AccessibilityObject* firstAnonymousBlockChild() const override;
 
     WEBCORE_EXPORT static AccessibilityRole ariaRoleToWebCoreRole(const String&);
-    bool hasAttribute(const QualifiedName&) const;
-    const AtomString& getAttribute(const QualifiedName&) const;
-    bool hasTagName(const QualifiedName&) const;
-    
-    virtual VisiblePositionRange visiblePositionRange() const { return VisiblePositionRange(); }
-    virtual VisiblePositionRange visiblePositionRangeForLine(unsigned) const { return VisiblePositionRange(); }
-    
-    RefPtr<Range> elementRange() const;
+    bool hasAttribute(const QualifiedName&) const override;
+    const AtomString& getAttribute(const QualifiedName&) const override;
+    bool hasTagName(const QualifiedName&) const override;
+
+    VisiblePositionRange visiblePositionRange() const override { return VisiblePositionRange(); }
+    VisiblePositionRange visiblePositionRangeForLine(unsigned) const override { return VisiblePositionRange(); }
+
+    RefPtr<Range> elementRange() const override;
     static bool replacedNodeNeedsCharacter(Node* replacedNode);
-    
-    VisiblePositionRange visiblePositionRangeForUnorderedPositions(const VisiblePosition&, const VisiblePosition&) const;
-    VisiblePositionRange positionOfLeftWord(const VisiblePosition&) const;
-    VisiblePositionRange positionOfRightWord(const VisiblePosition&) const;
-    VisiblePositionRange leftLineVisiblePositionRange(const VisiblePosition&) const;
-    VisiblePositionRange rightLineVisiblePositionRange(const VisiblePosition&) const;
-    VisiblePositionRange sentenceForPosition(const VisiblePosition&) const;
-    VisiblePositionRange paragraphForPosition(const VisiblePosition&) const;
-    VisiblePositionRange styleRangeForPosition(const VisiblePosition&) const;
-    VisiblePositionRange visiblePositionRangeForRange(const PlainTextRange&) const;
-    VisiblePositionRange lineRangeForPosition(const VisiblePosition&) const;
-    
-    RefPtr<Range> rangeForPlainTextRange(const PlainTextRange&) const;
+
+    VisiblePositionRange visiblePositionRangeForUnorderedPositions(const VisiblePosition&, const VisiblePosition&) const override;
+    VisiblePositionRange positionOfLeftWord(const VisiblePosition&) const override;
+    VisiblePositionRange positionOfRightWord(const VisiblePosition&) const override;
+    VisiblePositionRange leftLineVisiblePositionRange(const VisiblePosition&) const override;
+    VisiblePositionRange rightLineVisiblePositionRange(const VisiblePosition&) const override;
+    VisiblePositionRange sentenceForPosition(const VisiblePosition&) const override;
+    VisiblePositionRange paragraphForPosition(const VisiblePosition&) const override;
+    VisiblePositionRange styleRangeForPosition(const VisiblePosition&) const override;
+    VisiblePositionRange visiblePositionRangeForRange(const PlainTextRange&) const override;
+    VisiblePositionRange lineRangeForPosition(const VisiblePosition&) const override;
+
+    RefPtr<Range> rangeForPlainTextRange(const PlainTextRange&) const override;
 
     static String stringForVisiblePositionRange(const VisiblePositionRange&);
-    String stringForRange(RefPtr<Range>) const;
-    virtual IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const { return IntRect(); }
-    virtual IntRect boundsForRange(const RefPtr<Range>) const { return IntRect(); }
-    int lengthForVisiblePositionRange(const VisiblePositionRange&) const;
-    virtual void setSelectedVisiblePositionRange(const VisiblePositionRange&) const { }
-
-    VisiblePosition visiblePositionForBounds(const IntRect&, AccessibilityVisiblePositionForBounds) const;
-    virtual VisiblePosition visiblePositionForPoint(const IntPoint&) const { return VisiblePosition(); }
-    VisiblePosition nextVisiblePosition(const VisiblePosition& visiblePos) const { return visiblePos.next(); }
-    VisiblePosition previousVisiblePosition(const VisiblePosition& visiblePos) const { return visiblePos.previous(); }
-    VisiblePosition nextWordEnd(const VisiblePosition&) const;
-    VisiblePosition previousWordStart(const VisiblePosition&) const;
-    VisiblePosition nextLineEndPosition(const VisiblePosition&) const;
-    VisiblePosition previousLineStartPosition(const VisiblePosition&) const;
-    VisiblePosition nextSentenceEndPosition(const VisiblePosition&) const;
-    VisiblePosition previousSentenceStartPosition(const VisiblePosition&) const;
-    VisiblePosition nextParagraphEndPosition(const VisiblePosition&) const;
-    VisiblePosition previousParagraphStartPosition(const VisiblePosition&) const;
-    virtual VisiblePosition visiblePositionForIndex(unsigned, bool /*lastIndexOK */) const { return VisiblePosition(); }
-    
-    virtual VisiblePosition visiblePositionForIndex(int) const { return VisiblePosition(); }
-    virtual int indexForVisiblePosition(const VisiblePosition&) const { return 0; }
-
-    AccessibilityObject* accessibilityObjectForPosition(const VisiblePosition&) const;
-    int lineForPosition(const VisiblePosition&) const;
-    PlainTextRange plainTextRangeForVisiblePositionRange(const VisiblePositionRange&) const;
-    virtual int index(const VisiblePosition&) const { return -1; }
-
-    virtual void lineBreaks(Vector<int>&) const { }
-    virtual PlainTextRange doAXRangeForLine(unsigned) const { return PlainTextRange(); }
-    PlainTextRange doAXRangeForPosition(const IntPoint&) const;
-    virtual PlainTextRange doAXRangeForIndex(unsigned) const { return PlainTextRange(); }
-    PlainTextRange doAXStyleRangeForIndex(unsigned) const;
-
-    virtual String doAXStringForRange(const PlainTextRange&) const { return String(); }
-    virtual IntRect doAXBoundsForRange(const PlainTextRange&) const { return IntRect(); }
-    virtual IntRect doAXBoundsForRangeUsingCharacterOffset(const PlainTextRange&) const { return IntRect(); }
+    String stringForRange(RefPtr<Range>) const override;
+    IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const override { return IntRect(); }
+    IntRect boundsForRange(const RefPtr<Range>) const override { return IntRect(); }
+    int lengthForVisiblePositionRange(const VisiblePositionRange&) const override;
+    void setSelectedVisiblePositionRange(const VisiblePositionRange&) const override { }
+
+    VisiblePosition visiblePositionForBounds(const IntRect&, AccessibilityVisiblePositionForBounds) const override;
+    VisiblePosition visiblePositionForPoint(const IntPoint&) const override { return VisiblePosition(); }
+    VisiblePosition nextVisiblePosition(const VisiblePosition& visiblePos) const override { return visiblePos.next(); }
+    VisiblePosition previousVisiblePosition(const VisiblePosition& visiblePos) const override { return visiblePos.previous(); }
+    VisiblePosition nextWordEnd(const VisiblePosition&) const override;
+    VisiblePosition previousWordStart(const VisiblePosition&) const override;
+    VisiblePosition nextLineEndPosition(const VisiblePosition&) const override;
+    VisiblePosition previousLineStartPosition(const VisiblePosition&) const override;
+    VisiblePosition nextSentenceEndPosition(const VisiblePosition&) const override;
+    VisiblePosition previousSentenceStartPosition(const VisiblePosition&) const override;
+    VisiblePosition nextParagraphEndPosition(const VisiblePosition&) const override;
+    VisiblePosition previousParagraphStartPosition(const VisiblePosition&) const override;
+    VisiblePosition visiblePositionForIndex(unsigned, bool /*lastIndexOK */) const override { return VisiblePosition(); }
+
+    VisiblePosition visiblePositionForIndex(int) const override { return VisiblePosition(); }
+    int indexForVisiblePosition(const VisiblePosition&) const override { return 0; }
+
+    AccessibilityObject* accessibilityObjectForPosition(const VisiblePosition&) const override;
+    int lineForPosition(const VisiblePosition&) const override;
+    PlainTextRange plainTextRangeForVisiblePositionRange(const VisiblePositionRange&) const override;
+    int index(const VisiblePosition&) const override { return -1; }
+
+    void lineBreaks(Vector<int>&) const override { }
+    PlainTextRange doAXRangeForLine(unsigned) const override { return PlainTextRange(); }
+    PlainTextRange doAXRangeForPosition(const IntPoint&) const override;
+    PlainTextRange doAXRangeForIndex(unsigned) const override { return PlainTextRange(); }
+    PlainTextRange doAXStyleRangeForIndex(unsigned) const override;
+
+    String doAXStringForRange(const PlainTextRange&) const override { return String(); }
+    IntRect doAXBoundsForRange(const PlainTextRange&) const override { return IntRect(); }
+    IntRect doAXBoundsForRangeUsingCharacterOffset(const PlainTextRange&) const override { return IntRect(); }
     static String listMarkerTextForNodeAndPosition(Node*, const VisiblePosition&);
 
-    unsigned doAXLineForIndex(unsigned);
+    unsigned doAXLineForIndex(unsigned) override;
 
-    String computedRoleString() const;
+    String computedRoleString() const override;
 
-    virtual String stringValueForMSAA() const { return String(); }
-    virtual String stringRoleForMSAA() const { return String(); }
-    virtual String nameForMSAA() const { return String(); }
-    virtual String descriptionForMSAA() const { return String(); }
-    virtual AccessibilityRole roleValueForMSAA() const { return roleValue(); }
+    String stringValueForMSAA() const override { return String(); }
+    String stringRoleForMSAA() const override { return String(); }
+    String nameForMSAA() const override { return String(); }
+    String descriptionForMSAA() const override { return String(); }
+    AccessibilityRole roleValueForMSAA() const override { return roleValue(); }
+
+    String passwordFieldValue() const override { return String(); }
+    bool isValueAutofilled() const override;
+    bool isValueAutofillAvailable() const override;
+    AutoFillButtonType valueAutofillButtonType() const override;
 
-    virtual String passwordFieldValue() const { return String(); }
-    bool isValueAutofilled() const;
-    bool isValueAutofillAvailable() const;
-    AutoFillButtonType valueAutofillButtonType() const;
-    
     // Used by an ARIA tree to get all its rows.
-    void ariaTreeRows(AccessibilityChildrenVector&);
+    void ariaTreeRows(AccessibilityChildrenVector&) override;
     // Used by an ARIA tree item to get all of its direct rows that it can disclose.
-    void ariaTreeItemDisclosedRows(AccessibilityChildrenVector&);
-    // Used by an ARIA tree item to get only its content, and not its child tree items and groups. 
-    void ariaTreeItemContent(AccessibilityChildrenVector&);
-    
+    void ariaTreeItemDisclosedRows(AccessibilityChildrenVector&) override;
+    // Used by an ARIA tree item to get only its content, and not its child tree items and groups.
+    void ariaTreeItemContent(AccessibilityChildrenVector&) override;
+
     // ARIA live-region features.
-    bool supportsLiveRegion(bool excludeIfOff = true) const;
-    bool isInsideLiveRegion(bool excludeIfOff = true) const;
-    AccessibilityObject* liveRegionAncestor(bool excludeIfOff = true) const;
-    virtual const String liveRegionStatus() const { return String(); }
-    virtual const String liveRegionRelevant() const { return nullAtom(); }
-    virtual bool liveRegionAtomic() const { return false; }
-    virtual bool isBusy() const { return false; }
+    bool supportsLiveRegion(bool excludeIfOff = true) const override;
+    bool isInsideLiveRegion(bool excludeIfOff = true) const override;
+    AccessibilityObject* liveRegionAncestor(bool excludeIfOff = true) const override;
+    const String liveRegionStatus() const override { return String(); }
+    const String liveRegionRelevant() const override { return nullAtom(); }
+    bool liveRegionAtomic() const override { return false; }
+    bool isBusy() const override { return false; }
     static const String defaultLiveRegionStatusForRole(AccessibilityRole);
     static bool liveRegionStatusIsEnabled(const AtomString&);
     static bool contentEditableAttributeIsEnabled(Element*);
-    bool hasContentEditableAttributeSet() const;
+    bool hasContentEditableAttributeSet() const override;
 
-    bool supportsReadOnly() const;
-    virtual String readOnlyValue() const;
+    bool supportsReadOnly() const override;
+    String readOnlyValue() const override;
+
+    bool supportsAutoComplete() const override;
+    String autoCompleteValue() const override;
+
+    bool supportsARIAAttributes() const override;
 
-    bool supportsAutoComplete() const;
-    String autoCompleteValue() const;
-    
-    bool supportsARIAAttributes() const;
-    
     // CSS3 Speech properties.
-    virtual OptionSet<SpeakAs> speakAsProperty() const { return OptionSet<SpeakAs> { }; }
+    OptionSet<SpeakAs> speakAsProperty() const override { return OptionSet<SpeakAs> { }; }
 
     // Make this object visible by scrolling as many nested scrollable views as needed.
-    virtual void scrollToMakeVisible() const;
+    void scrollToMakeVisible() const override;
     // Same, but if the whole object can't be made visible, try for this subrect, in local coordinates.
-    virtual void scrollToMakeVisibleWithSubFocus(const IntRect&) const;
+    void scrollToMakeVisibleWithSubFocus(const IntRect&) const override;
     // Scroll this object to a given point in global coordinates of the top-level window.
-    virtual void scrollToGlobalPoint(const IntPoint&) const;
-    
-    enum class ScrollByPageDirection { Up, Down, Left, Right };
-    bool scrollByPage(ScrollByPageDirection) const;
-    IntPoint scrollPosition() const;
-    IntSize scrollContentsSize() const;    
-    IntRect scrollVisibleContentRect() const;
-    void scrollToMakeVisible(const ScrollRectToVisibleOptions&) const;
-    
-    bool lastKnownIsIgnoredValue();
-    void setLastKnownIsIgnoredValue(bool);
+    void scrollToGlobalPoint(const IntPoint&) const override;
+
+    bool scrollByPage(ScrollByPageDirection) const override;
+    IntPoint scrollPosition() const override;
+    IntSize scrollContentsSize() const override;
+    IntRect scrollVisibleContentRect() const override;
+    void scrollToMakeVisible(const ScrollRectToVisibleOptions&) const override;
+
+    bool lastKnownIsIgnoredValue() override;
+    void setLastKnownIsIgnoredValue(bool) override;
 
     // Fires a children changed notification on the parent if the isIgnored value changed.
-    void notifyIfIgnoredValueChanged();
+    void notifyIfIgnoredValueChanged() override;
 
     // All math elements return true for isMathElement().
-    virtual bool isMathElement() const { return false; }
-    virtual bool isMathFraction() const { return false; }
-    virtual bool isMathFenced() const { return false; }
-    virtual bool isMathSubscriptSuperscript() const { return false; }
-    virtual bool isMathRow() const { return false; }
-    virtual bool isMathUnderOver() const { return false; }
-    virtual bool isMathRoot() const { return false; }
-    virtual bool isMathSquareRoot() const { return false; }
-    virtual bool isMathText() const { return false; }
-    virtual bool isMathNumber() const { return false; }
-    virtual bool isMathOperator() const { return false; }
-    virtual bool isMathFenceOperator() const { return false; }
-    virtual bool isMathSeparatorOperator() const { return false; }
-    virtual bool isMathIdentifier() const { return false; }
-    virtual bool isMathTable() const { return false; }
-    virtual bool isMathTableRow() const { return false; }
-    virtual bool isMathTableCell() const { return false; }
-    virtual bool isMathMultiscript() const { return false; }
-    virtual bool isMathToken() const { return false; }
-    virtual bool isMathScriptObject(AccessibilityMathScriptObjectType) const { return false; }
-    virtual bool isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType) const { return false; }
+    bool isMathElement() const override { return false; }
+    bool isMathFraction() const override { return false; }
+    bool isMathFenced() const override { return false; }
+    bool isMathSubscriptSuperscript() const override { return false; }
+    bool isMathRow() const override { return false; }
+    bool isMathUnderOver() const override { return false; }
+    bool isMathRoot() const override { return false; }
+    bool isMathSquareRoot() const override { return false; }
+    bool isMathText() const override { return false; }
+    bool isMathNumber() const override { return false; }
+    bool isMathOperator() const override { return false; }
+    bool isMathFenceOperator() const override { return false; }
+    bool isMathSeparatorOperator() const override { return false; }
+    bool isMathIdentifier() const override { return false; }
+    bool isMathTable() const override { return false; }
+    bool isMathTableRow() const override { return false; }
+    bool isMathTableCell() const override { return false; }
+    bool isMathMultiscript() const override { return false; }
+    bool isMathToken() const override { return false; }
+    bool isMathScriptObject(AccessibilityMathScriptObjectType) const override { return false; }
+    bool isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType) const override { return false; }
 
     // Root components.
-    virtual AccessibilityObject* mathRadicandObject() { return nullptr; }
-    virtual AccessibilityObject* mathRootIndexObject() { return nullptr; }
-    
+    AXCoreObject* mathRadicandObject() override { return nullptr; }
+    AXCoreObject* mathRootIndexObject() override { return nullptr; }
+
     // Under over components.
-    virtual AccessibilityObject* mathUnderObject() { return nullptr; }
-    virtual AccessibilityObject* mathOverObject() { return nullptr; }
+    AXCoreObject* mathUnderObject() override { return nullptr; }
+    AXCoreObject* mathOverObject() override { return nullptr; }
 
     // Fraction components.
-    virtual AccessibilityObject* mathNumeratorObject() { return nullptr; }
-    virtual AccessibilityObject* mathDenominatorObject() { return nullptr; }
+    AXCoreObject* mathNumeratorObject() override { return nullptr; }
+    AXCoreObject* mathDenominatorObject() override { return nullptr; }
 
     // Subscript/superscript components.
-    virtual AccessibilityObject* mathBaseObject() { return nullptr; }
-    virtual AccessibilityObject* mathSubscriptObject() { return nullptr; }
-    virtual AccessibilityObject* mathSuperscriptObject() { return nullptr; }
-    
+    AXCoreObject* mathBaseObject() override { return nullptr; }
+    AXCoreObject* mathSubscriptObject() override { return nullptr; }
+    AXCoreObject* mathSuperscriptObject() override { return nullptr; }
+
     // Fenced components.
-    virtual String mathFencedOpenString() const { return String(); }
-    virtual String mathFencedCloseString() const { return String(); }
-    virtual int mathLineThickness() const { return 0; }
-    virtual bool isAnonymousMathOperator() const { return false; }
-    
+    String mathFencedOpenString() const override { return String(); }
+    String mathFencedCloseString() const override { return String(); }
+    int mathLineThickness() const override { return 0; }
+    bool isAnonymousMathOperator() const override { return false; }
+
     // Multiscripts components.
-    typedef Vector<std::pair<AccessibilityObject*, AccessibilityObject*>> AccessibilityMathMultiscriptPairs;
-    virtual void mathPrescripts(AccessibilityMathMultiscriptPairs&) { }
-    virtual void mathPostscripts(AccessibilityMathMultiscriptPairs&) { }
-    
+    void mathPrescripts(AccessibilityMathMultiscriptPairs&) override { }
+    void mathPostscripts(AccessibilityMathMultiscriptPairs&) override { }
+
     // Visibility.
-    bool isAXHidden() const;
-    bool isDOMHidden() const;
-    bool isHidden() const { return isAXHidden() || isDOMHidden(); }
+    bool isAXHidden() const override;
+    bool isDOMHidden() const override;
+    bool isHidden() const override { return isAXHidden() || isDOMHidden(); }
 
 #if ENABLE(ACCESSIBILITY)
     AccessibilityObjectWrapper* wrapper() const override { return m_wrapper.get(); }
-    void setWrapper(AccessibilityObjectWrapper* wrapper) { m_wrapper = wrapper; }
+    void setWrapper(AccessibilityObjectWrapper* wrapper) override { m_wrapper = wrapper; }
 #else
     AccessibilityObjectWrapper* wrapper() const override { return nullptr; }
 #endif
 
 #if PLATFORM(COCOA)
-    void overrideAttachmentParent(AccessibilityObject* parent);
+    void overrideAttachmentParent(AXCoreObject* parent) override;
 #else
-    void overrideAttachmentParent(AccessibilityObject*) { }
+    void overrideAttachmentParent(AXCoreObject*) override { }
 #endif
-    
+
 #if ENABLE(ACCESSIBILITY)
     // a platform-specific method for determining if an attachment is ignored
-    bool accessibilityIgnoreAttachment() const;
+    bool accessibilityIgnoreAttachment() const override;
     // gives platforms the opportunity to indicate if and how an object should be included
-    AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const;
+    AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const override;
 #else
-    bool accessibilityIgnoreAttachment() const { return true; }
-    AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return AccessibilityObjectInclusion::DefaultBehavior; }
+    bool accessibilityIgnoreAttachment() const override { return true; }
+    AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const override { return AccessibilityObjectInclusion::DefaultBehavior; }
 #endif
 
 #if PLATFORM(IOS_FAMILY)
-    int accessibilityPasswordFieldLength();
-    bool hasTouchEventListener() const;
-    bool isInputTypePopupButton() const;
+    int accessibilityPasswordFieldLength() override;
+    bool hasTouchEventListener() const override;
+    bool isInputTypePopupButton() const override;
 #endif
-    
+
     // allows for an AccessibilityObject to update its render tree or perform
     // other operations update type operations
-    void updateBackingStore();
-    
+    void updateBackingStore() override;
+
 #if PLATFORM(COCOA)
-    bool preventKeyboardDOMEventDispatch() const;
-    void setPreventKeyboardDOMEventDispatch(bool);
-    bool fileUploadButtonReturnsValueInTitle() const;
+    bool preventKeyboardDOMEventDispatch() const override;
+    void setPreventKeyboardDOMEventDispatch(bool) override;
+    bool fileUploadButtonReturnsValueInTitle() const override;
     String speechHintAttributeValue() const override;
     String descriptionAttributeValue() const override;
     String helpTextAttributeValue() const override;
     String titleAttributeValue() const override;
 #endif
-    
+
 #if PLATFORM(COCOA) && !PLATFORM(IOS_FAMILY)
-    bool caretBrowsingEnabled() const;
-    void setCaretBrowsingEnabled(bool);
+    bool caretBrowsingEnabled() const override;
+    void setCaretBrowsingEnabled(bool) override;
 #endif
 
-    AccessibilityObject* focusableAncestor();
-    AccessibilityObject* editableAncestor();
-    AccessibilityObject* highestEditableAncestor();
+    AccessibilityObject* focusableAncestor() override;
+    AccessibilityObject* editableAncestor() override;
+    AccessibilityObject* highestEditableAncestor() override;
 
-    const AccessibilityScrollView* ancestorAccessibilityScrollView(bool includeSelf) const;
+    const AccessibilityScrollView* ancestorAccessibilityScrollView(bool includeSelf) const override;
     static const AccessibilityObject* matchedParent(const AccessibilityObject&, bool includeSelf, const WTF::Function<bool(const AccessibilityObject&)>&);
-    
-    void clearIsIgnoredFromParentData() { m_isIgnoredFromParentData = AccessibilityIsIgnoredFromParentData(); }
-    void setIsIgnoredFromParentDataForChild(AccessibilityObject*);
-    
+
+    void clearIsIgnoredFromParentData() override { m_isIgnoredFromParentData = AccessibilityIsIgnoredFromParentData(); }
+    void setIsIgnoredFromParentDataForChild(AXCoreObject*) override;
+
 protected:
     AXID m_id { 0 };
     AccessibilityChildrenVector m_children;
@@ -1021,24 +778,24 @@ protected:
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
     bool m_isolatedTreeNodeInitialized { false };
 #endif
-    
-    void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData& data) { m_isIgnoredFromParentData = data; }
+
+    void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData& data) override { m_isIgnoredFromParentData = data; }
 
     virtual bool computeAccessibilityIsIgnored() const { return true; }
     bool isAccessibilityObject() const override { return true; }
-    
+
     // If this object itself scrolls, return its ScrollableArea.
     virtual ScrollableArea* getScrollableAreaIfScrollable() const { return nullptr; }
     virtual void scrollTo(const IntPoint&) const { }
     ScrollableArea* scrollableAreaAncestor() const;
     void scrollAreaAndAncestor(std::pair<ScrollableArea*, AccessibilityObject*>&) const;
-    
-    static bool isAccessibilityObjectSearchMatchAtIndex(AccessibilityObject*, AccessibilitySearchCriteria*, size_t);
-    static bool isAccessibilityObjectSearchMatch(AccessibilityObject*, AccessibilitySearchCriteria*);
-    static bool isAccessibilityTextSearchMatch(AccessibilityObject*, AccessibilitySearchCriteria*);
-    static bool objectMatchesSearchCriteriaWithResultLimit(AccessibilityObject*, AccessibilitySearchCriteria*, AccessibilityChildrenVector&);
+
+    static bool isAccessibilityObjectSearchMatchAtIndex(AXCoreObject*, AccessibilitySearchCriteria*, size_t);
+    static bool isAccessibilityObjectSearchMatch(AXCoreObject*, AccessibilitySearchCriteria*);
+    static bool isAccessibilityTextSearchMatch(AXCoreObject*, AccessibilitySearchCriteria*);
+    static bool objectMatchesSearchCriteriaWithResultLimit(AXCoreObject*, AccessibilitySearchCriteria*, AccessibilityChildrenVector&);
     virtual AccessibilityRole buttonRoleType() const;
-    bool isOnscreen() const;
+    bool isOnScreen() const override;
     bool dispatchTouchEvent();
 
     void ariaElementsFromAttribute(AccessibilityChildrenVector&, const QualifiedName&) const;
@@ -1064,10 +821,10 @@ protected:
 };
 
 #if !ENABLE(ACCESSIBILITY)
-inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObject::children(bool) { return m_children; }
+inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObject::children(bool) override { return m_children; }
 inline const String& AccessibilityObject::actionVerb() const { return emptyString(); }
 inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; }
-inline void AccessibilityObject::updateBackingStore() { }
+inline void AccessibilityObject::updateBackingStore() override { }
 #endif
 
 AccessibilityObject* firstAccessibleObjectFromNode(const Node*, const WTF::Function<bool(const AccessibilityObject&)>& isAccessible);
@@ -1076,9 +833,9 @@ AccessibilityObject* firstAccessibleObjectFromNode(const Node*, const WTF::Funct
 
 #define SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(ToValueTypeName, predicate) \
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::ToValueTypeName) \
-    static bool isType(const WebCore::AccessibilityObject& object) { return object.predicate; } \
+    static bool isType(const WebCore::AXCoreObject& object) { return object.predicate; } \
 SPECIALIZE_TYPE_TRAITS_END()
 
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::AccessibilityObject)
-static bool isType(const WebCore::AccessibilityObjectInterface& context) { return context.isAccessibilityObject(); }
+static bool isType(const WebCore::AXCoreObject& context) { return context.isAccessibilityObject(); }
 SPECIALIZE_TYPE_TRAITS_END()
index 98ffb31..2903de1 100644 (file)
 
 #pragma once
 
+#include "HTMLTextFormControlElement.h"
 #include "LayoutRect.h"
+#include "Range.h"
+#include "TextIteratorBehavior.h"
+#include "VisiblePosition.h"
+#include "VisibleSelection.h"
 #include <wtf/RefCounted.h>
 
 #if PLATFORM(WIN)
@@ -45,6 +50,23 @@ class AccessibilityObjectWrapper;
 
 namespace WebCore {
 
+class Node;
+class Element;
+class RenderObject;
+class QualifiedName;
+class Path;
+class Widget;
+class Page;
+class Document;
+class Frame;
+class FrameView;
+class ScrollView;
+class AXObjectCache;
+class AXCoreObject;
+class AccessibilityScrollView;
+struct AccessibilityText;
+struct ScrollRectToVisibleOptions;
+
 typedef unsigned AXID;
 extern const AXID InvalidAXID;
 typedef unsigned AXIsolatedTreeID;    
@@ -203,36 +225,856 @@ enum class AccessibilityRole {
     Window,
 };
 
-class AccessibilityObjectInterface {
+enum class AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed, ElementChange };
+
+enum class AccessibilityConversionSpace { Screen, Page };
+
+enum class AccessibilitySearchDirection {
+    Next = 1,
+    Previous,
+};
+
+enum class AccessibilitySearchKey {
+    AnyType = 1,
+    Article,
+    BlockquoteSameLevel,
+    Blockquote,
+    BoldFont,
+    Button,
+    CheckBox,
+    Control,
+    DifferentType,
+    FontChange,
+    FontColorChange,
+    Frame,
+    Graphic,
+    HeadingLevel1,
+    HeadingLevel2,
+    HeadingLevel3,
+    HeadingLevel4,
+    HeadingLevel5,
+    HeadingLevel6,
+    HeadingSameLevel,
+    Heading,
+    Highlighted,
+    ItalicFont,
+    KeyboardFocusable,
+    Landmark,
+    Link,
+    List,
+    LiveRegion,
+    MisspelledWord,
+    Outline,
+    PlainText,
+    RadioGroup,
+    SameType,
+    StaticText,
+    StyleChange,
+    TableSameLevel,
+    Table,
+    TextField,
+    Underline,
+    UnvisitedLink,
+    VisitedLink,
+};
+
+struct AccessibilitySearchCriteria {
+    AXCoreObject* startObject;
+    AccessibilitySearchDirection searchDirection;
+    Vector<AccessibilitySearchKey> searchKeys;
+    String searchText;
+    unsigned resultsLimit;
+    bool visibleOnly;
+    bool immediateDescendantsOnly;
+
+    AccessibilitySearchCriteria(AXCoreObject* startObject, AccessibilitySearchDirection searchDirection, String searchText, unsigned resultsLimit, bool visibleOnly, bool immediateDescendantsOnly)
+        : startObject(startObject)
+        , searchDirection(searchDirection)
+        , searchText(searchText)
+        , resultsLimit(resultsLimit)
+        , visibleOnly(visibleOnly)
+        , immediateDescendantsOnly(immediateDescendantsOnly)
+    { }
+};
+
+enum class AccessibilityObjectInclusion {
+    IncludeObject,
+    IgnoreObject,
+    DefaultBehavior,
+};
+
+enum class AccessibilityCurrentState { False, True, Page, Step, Location, Date, Time };
+
+enum class AccessibilityButtonState {
+    Off = 0,
+    On,
+    Mixed,
+};
+
+enum class AccessibilitySortDirection {
+    None,
+    Ascending,
+    Descending,
+    Other,
+    Invalid,
+};
+
+enum class AccessibilitySearchTextStartFrom {
+    Begin, // Search from the beginning of the element.
+    Selection, // Search from the position of the current selection.
+    End // Search from the end of the element.
+};
+
+enum class AccessibilitySearchTextDirection {
+    Forward, // Occurrence after the starting range.
+    Backward, // Occurrence before the starting range.
+    Closest, // Closest occurrence to the starting range, whether after or before.
+    All // All occurrences
+};
+
+struct AccessibilitySearchTextCriteria {
+    Vector<String> searchStrings; // Text strings to search for.
+    AccessibilitySearchTextStartFrom start;
+    AccessibilitySearchTextDirection direction;
+
+    AccessibilitySearchTextCriteria()
+        : start(AccessibilitySearchTextStartFrom::Selection)
+        , direction(AccessibilitySearchTextDirection::Forward)
+    { }
+};
+
+enum class AccessibilityTextOperationType {
+    Select,
+    Replace,
+    Capitalize,
+    Lowercase,
+    Uppercase
+};
+
+struct AccessibilityTextOperation {
+    Vector<RefPtr<Range>> textRanges; // text on which perform the operation.
+    AccessibilityTextOperationType type;
+    String replacementText; // For type = replace.
+
+    AccessibilityTextOperation()
+        : type(AccessibilityTextOperationType::Select)
+    { }
+};
+
+enum class AccessibilityOrientation {
+    Vertical,
+    Horizontal,
+    Undefined,
+};
+
+struct AccessibilityTextUnderElementMode {
+    enum ChildrenInclusion {
+        TextUnderElementModeSkipIgnoredChildren,
+        TextUnderElementModeIncludeAllChildren,
+        TextUnderElementModeIncludeNameFromContentsChildren, // This corresponds to ARIA concept: nameFrom
+    };
+
+    ChildrenInclusion childrenInclusion;
+    bool includeFocusableContent;
+    Node* ignoredChildNode;
+
+    AccessibilityTextUnderElementMode(ChildrenInclusion c = TextUnderElementModeSkipIgnoredChildren, bool i = false, Node* ignored = nullptr)
+        : childrenInclusion(c)
+        , includeFocusableContent(i)
+        , ignoredChildNode(ignored)
+    { }
+};
+
+#if PLATFORM(COCOA)
+typedef struct _NSRange NSRange;
+#endif
+
+struct PlainTextRange {
+    unsigned start { 0 };
+    unsigned length { 0 };
+
+    PlainTextRange() = default;
+
+    PlainTextRange(unsigned s, unsigned l)
+        : start(s)
+        , length(l)
+    { }
+
+#if PLATFORM(COCOA)
+    PlainTextRange(NSRange);
+#endif
+
+    bool isNull() const { return !start && !length; }
+};
+
+enum class AccessibilityVisiblePositionForBounds {
+    First,
+    Last,
+};
+
+struct VisiblePositionRange {
+    VisiblePosition start;
+    VisiblePosition end;
+
+    VisiblePositionRange() = default;
+    VisiblePositionRange(const VisiblePosition& s, const VisiblePosition& e)
+        : start(s)
+        , end(e)
+    { }
+
+    VisiblePositionRange(const VisibleSelection& selection)
+        : start(selection.start())
+        , end(selection.end())
+    { }
+
+    bool isNull() const { return start.isNull() || end.isNull(); }
+};
+
+enum class AccessibilityMathScriptObjectType { Subscript, Superscript };
+enum class AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript };
+
+// Use this struct to store the isIgnored data that depends on the parents, so that in addChildren()
+// we avoid going up the parent chain for each element while traversing the tree with useful information already.
+struct AccessibilityIsIgnoredFromParentData {
+    AXCoreObject* parent { nullptr };
+    bool isAXHidden { false };
+    bool isPresentationalChildOfAriaRole { false };
+    bool isDescendantOfBarrenParent { false };
+
+    AccessibilityIsIgnoredFromParentData(AXCoreObject* parent = nullptr)
+        : parent(parent)
+    { }
+
+    bool isNull() const { return !parent; }
+};
+
+class AXCoreObject : public ThreadSafeRefCounted<AXCoreObject> {
 public:
-    virtual ~AccessibilityObjectInterface() = default;
+    virtual ~AXCoreObject() = default;
 
-    virtual bool isMediaControlLabel() const = 0;
-    virtual AccessibilityRole roleValue() const = 0;
-    virtual bool isAttachment() const = 0;
+    // After constructing an accessible object, it must be given a
+    // unique ID, then added to AXObjectCache, and finally init() must
+    // be called last.
+    virtual void setObjectID(AXID) = 0;
+    virtual AXID objectID() const = 0;
+    virtual void init() = 0;
+
+    // When the corresponding WebCore object that this accessible object
+    // represents is deleted, it must be detached.
+    virtual void detach(AccessibilityDetachmentType, AXObjectCache* = nullptr) = 0;
+    virtual bool isDetached() const = 0;
+
+    typedef Vector<RefPtr<AXCoreObject>> AccessibilityChildrenVector;
+
+    virtual bool isAccessibilityObject() const = 0;
+    virtual bool isAccessibilityNodeObject() const = 0;
+    virtual bool isAccessibilityRenderObject() const = 0;
+    virtual bool isAccessibilityScrollbar() const = 0;
+    virtual bool isAccessibilityScrollView() const = 0;
+    virtual bool isAccessibilitySVGRoot() const = 0;
+    virtual bool isAccessibilitySVGElement() const = 0;
+
+    virtual bool containsText(String *) const = 0;
+    virtual bool isAttachmentElement() const = 0;
+    virtual bool isHeading() const = 0;
     virtual bool isLink() const = 0;
-    virtual bool isImageMapLink() const = 0;
     virtual bool isImage() const = 0;
+    virtual bool isImageMap() const = 0;
+    virtual bool isNativeImage() const = 0;
+    virtual bool isImageButton() const = 0;
+    virtual bool isPasswordField() const = 0;
+    virtual bool isContainedByPasswordField() const = 0;
+    virtual AXCoreObject* passwordFieldOrContainingPasswordField() = 0;
+    virtual bool isNativeTextControl() const = 0;
+    virtual bool isSearchField() const = 0;
+    virtual bool isWebArea() const = 0;
+    virtual bool isCheckbox() const = 0;
+    virtual bool isRadioButton() const = 0;
+    virtual bool isNativeListBox() const = 0;
+    virtual bool isListBox() const = 0;
+    virtual bool isListBoxOption() const = 0;
+    virtual bool isAttachment() const = 0;
+    virtual bool isMediaTimeline() const = 0;
+    virtual bool isMenuRelated() const = 0;
+    virtual bool isMenu() const = 0;
+    virtual bool isMenuBar() const = 0;
+    virtual bool isMenuButton() const = 0;
+    virtual bool isMenuItem() const = 0;
     virtual bool isFileUploadButton() const = 0;
+    virtual bool isInputImage() const = 0;
+    virtual bool isProgressIndicator() const = 0;
+    virtual bool isSlider() const = 0;
+    virtual bool isSliderThumb() const = 0;
+    virtual bool isInputSlider() const = 0;
+    virtual bool isControl() const = 0;
+    virtual bool isLabel() const = 0;
+    virtual bool isList() const = 0;
+    virtual bool isTable() const = 0;
+    virtual bool isDataTable() const = 0;
+    virtual bool isTableRow() const = 0;
+    virtual bool isTableColumn() const = 0;
+    virtual bool isTableCell() const = 0;
+    virtual bool isFieldset() const = 0;
+    virtual bool isGroup() const = 0;
+    virtual bool isARIATreeGridRow() const = 0;
+    virtual bool isImageMapLink() const = 0;
+    virtual bool isMenuList() const = 0;
+    virtual bool isMenuListPopup() const = 0;
+    virtual bool isMenuListOption() const = 0;
+    virtual bool isSpinButton() const = 0;
+    virtual bool isNativeSpinButton() const = 0;
+    virtual bool isSpinButtonPart() const = 0;
+    virtual bool isMockObject() const = 0;
+    virtual bool isMediaControlLabel() const = 0;
+    virtual bool isMediaObject() const = 0;
+    virtual bool isSwitch() const = 0;
+    virtual bool isToggleButton() const = 0;
+    virtual bool isTextControl() const = 0;
+    virtual bool isARIATextControl() const = 0;
+    virtual bool isNonNativeTextControl() const = 0;
+    virtual bool isTabList() const = 0;
+    virtual bool isTabItem() const = 0;
+    virtual bool isRadioGroup() const = 0;
+    virtual bool isComboBox() const = 0;
     virtual bool isTree() const = 0;
+    virtual bool isTreeGrid() const = 0;
     virtual bool isTreeItem() const = 0;
     virtual bool isScrollbar() const = 0;
-    virtual bool accessibilityIsIgnored() const = 0;
+    virtual bool isButton() const = 0;
+    virtual bool isListItem() const = 0;
+    virtual bool isCheckboxOrRadio() const = 0;
+    virtual bool isScrollView() const = 0;
+    virtual bool isCanvas() const = 0;
+    virtual bool isPopUpButton() const = 0;
+    virtual bool isBlockquote() const = 0;
+    virtual bool isLandmark() const = 0;
+    virtual bool isColorWell() const = 0;
+    virtual bool isRangeControl() const = 0;
+    virtual bool isMeter() const = 0;
+    virtual bool isSplitter() const = 0;
+    virtual bool isToolbar() const = 0;
+    virtual bool isStyleFormatGroup() const = 0;
+    virtual bool isFigureElement() const = 0;
+    virtual bool isKeyboardFocusable() const = 0;
+    virtual bool isSummary() const = 0;
+    virtual bool isOutput() const = 0;
+
+    virtual bool isChecked() const = 0;
+    virtual bool isEnabled() const = 0;
+    virtual bool isSelected() const = 0;
+    virtual bool isFocused() const = 0;
+    virtual bool isHovered() const = 0;
+    virtual bool isIndeterminate() const = 0;
+    virtual bool isLoaded() const = 0;
+    virtual bool isMultiSelectable() const = 0;
+    // FIXME should need just one since onscreen should be !offscreen.
+    virtual bool isOnScreen() const = 0;
+    virtual bool isOffScreen() const = 0;
+    virtual bool isPressed() const = 0;
+    virtual bool isUnvisited() const = 0;
+    virtual bool isVisited() const = 0;
+    virtual bool isRequired() const = 0;
+    virtual bool supportsRequiredAttribute() const = 0;
+    virtual bool isLinked() const = 0;
+    virtual bool isExpanded() const = 0;
+    virtual bool isVisible() const = 0;
+    virtual bool isCollapsed() const = 0;
+    virtual void setIsExpanded(bool) = 0;
     virtual FloatRect relativeFrame() const = 0;
-    virtual AccessibilityObjectInterface* parentObjectInterfaceUnignored() const = 0;
-    virtual AccessibilityObjectInterface* focusedUIElement() const = 0;
-    virtual bool isAccessibilityObject() const { return false; }
-    
+    virtual FloatRect convertFrameToSpace(const FloatRect&, AccessibilityConversionSpace) const = 0;
+
+    // In a multi-select list, many items can be selected but only one is active at a time.
+    virtual bool isSelectedOptionActive() const = 0;
+
+    virtual bool hasBoldFont() const = 0;
+    virtual bool hasItalicFont() const = 0;
+    virtual bool hasMisspelling() const = 0;
+    virtual RefPtr<Range> getMisspellingRange(RefPtr<Range> const& start, AccessibilitySearchDirection) const = 0;
+    virtual bool hasPlainText() const = 0;
+    virtual bool hasSameFont(RenderObject*) const = 0;
+    virtual bool hasSameFontColor(RenderObject*) const = 0;
+    virtual bool hasSameStyle(RenderObject*) const = 0;
+    virtual bool isStaticText() const = 0;
+    virtual bool hasUnderline() const = 0;
+    virtual bool hasHighlighting() const = 0;
+
+    virtual bool supportsDatetimeAttribute() const = 0;
+    virtual const AtomString& datetimeAttributeValue() const = 0;
+
+    virtual bool canSetFocusAttribute() const = 0;
+    virtual bool canSetTextRangeAttributes() const = 0;
+    virtual bool canSetValueAttribute() const = 0;
+    virtual bool canSetNumericValue() const = 0;
+    virtual bool canSetSelectedAttribute() const = 0;
+    virtual bool canSetSelectedChildrenAttribute() const = 0;
+    virtual bool canSetExpandedAttribute() const = 0;
+
+    virtual Element* element() const = 0;
+    virtual Node* node() const = 0;
+    virtual RenderObject* renderer() const = 0;
+
+    virtual bool accessibilityIsIgnored() const = 0;
+    virtual AccessibilityObjectInclusion defaultObjectInclusion() const = 0;
+    virtual bool accessibilityIsIgnoredByDefault() const = 0;
+
+    virtual bool isShowingValidationMessage() const = 0;
+    virtual String validationMessage() const = 0;
+
+    virtual unsigned blockquoteLevel() const = 0;
+    virtual int headingLevel() const = 0;
+    virtual int tableLevel() const = 0;
+    virtual AccessibilityButtonState checkboxOrRadioValue() const = 0;
+    virtual String valueDescription() const = 0;
+    virtual float valueForRange() const = 0;
+    virtual float maxValueForRange() const = 0;
+    virtual float minValueForRange() const = 0;
+    virtual float stepValueForRange() const = 0;
+    virtual AXCoreObject* selectedRadioButton() = 0;
+    virtual AXCoreObject* selectedTabItem() = 0;
+    virtual AXCoreObject* selectedListItem() = 0;
+    virtual int layoutCount() const = 0;
+    virtual double estimatedLoadingProgress() const = 0;
+
+    virtual bool supportsARIAOwns() const = 0;
+    virtual bool isActiveDescendantOfFocusedContainer() const = 0;
+    virtual void ariaActiveDescendantReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaControlsElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaControlsReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaDescribedByElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaDescribedByReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaDetailsElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaDetailsReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaErrorMessageElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaErrorMessageReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaFlowToElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaFlowToReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaLabelledByElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaLabelledByReferencingElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaOwnsElements(AccessibilityChildrenVector&) const = 0;
+    virtual void ariaOwnsReferencingElements(AccessibilityChildrenVector&) const = 0;
+
+    virtual bool hasPopup() const = 0;
+    virtual String popupValue() const = 0;
+    virtual bool hasDatalist() const = 0;
+    virtual bool supportsHasPopup() const = 0;
+    virtual bool pressedIsPresent() const = 0;
+    virtual bool ariaIsMultiline() const = 0;
+    virtual String invalidStatus() const = 0;
+    virtual bool supportsPressed() const = 0;
+    virtual bool supportsExpanded() const = 0;
+    virtual bool supportsChecked() const = 0;
+    virtual AccessibilitySortDirection sortDirection() const = 0;
+    virtual bool canvasHasFallbackContent() const = 0;
+    virtual bool supportsRangeValue() const = 0;
+    virtual const AtomString& identifierAttribute() const = 0;
+    virtual const AtomString& linkRelValue() const = 0;
+    virtual void classList(Vector<String>&) const = 0;
+    virtual String roleDescription() const = 0;
+    virtual AccessibilityCurrentState currentState() const = 0;
+    virtual String currentValue() const = 0;
+    virtual bool supportsCurrent() const = 0;
+    virtual const String keyShortcutsValue() const = 0;
+
+    // This function checks if the object should be ignored when there's a modal dialog displayed.
+    virtual bool ignoredFromModalPresence() const = 0;
+    virtual bool isModalDescendant(Node*) const = 0;
+    virtual bool isModalNode() const = 0;
+
+    virtual bool supportsSetSize() const = 0;
+    virtual bool supportsPosInSet() const = 0;
+    virtual int setSize() const = 0;
+    virtual int posInSet() const = 0;
+
+    // ARIA drag and drop
+    virtual bool supportsARIADropping() const = 0;
+    virtual bool supportsARIADragging() const = 0;
+    virtual bool isARIAGrabbed() = 0;
+    virtual void setARIAGrabbed(bool) = 0;
+    virtual Vector<String> determineARIADropEffects() = 0;
+
+    // Called on the root AX object to return the deepest available element.
+    virtual AXCoreObject* accessibilityHitTest(const IntPoint&) const = 0;
+    // Called on the AX object after the render tree determines which is the right AccessibilityRenderObject.
+    virtual AXCoreObject* elementAccessibilityHitTest(const IntPoint&) const = 0;
+
+    virtual AXCoreObject* focusedUIElement() const = 0;
+
+    virtual AXCoreObject* firstChild() const = 0;
+    virtual AXCoreObject* lastChild() const = 0;
+    virtual AXCoreObject* previousSibling() const = 0;
+    virtual AXCoreObject* nextSibling() const = 0;
+    virtual AXCoreObject* nextSiblingUnignored(int limit) const = 0;
+    virtual AXCoreObject* previousSiblingUnignored(int limit) const = 0;
+    virtual AXCoreObject* parentObject() const = 0;
+    virtual AXCoreObject* parentObjectUnignored() const = 0;
+    virtual AXCoreObject* parentObjectIfExists() const = 0;
+    virtual void findMatchingObjects(AccessibilitySearchCriteria*, AccessibilityChildrenVector&) = 0;
+    virtual bool isDescendantOfBarrenParent() const = 0;
+    virtual bool isDescendantOfRole(AccessibilityRole) const = 0;
+
+    // Text selection
+    virtual Vector<RefPtr<Range>> findTextRanges(AccessibilitySearchTextCriteria const&) const = 0;
+    virtual Vector<String> performTextOperation(AccessibilityTextOperation const&) = 0;
+
+    virtual AXCoreObject* observableObject() const = 0;
+    virtual void linkedUIElements(AccessibilityChildrenVector&) const = 0;
+    virtual AXCoreObject* titleUIElement() const = 0;
+    virtual bool exposesTitleUIElement() const = 0;
+    virtual AXCoreObject* correspondingLabelForControlElement() const = 0;
+    virtual AXCoreObject* correspondingControlForLabelElement() const = 0;
+    virtual AXCoreObject* scrollBar(AccessibilityOrientation) = 0;
+
+    virtual AccessibilityRole ariaRoleAttribute() const = 0;
+    virtual bool isPresentationalChildOfAriaRole() const = 0;
+    virtual bool ariaRoleHasPresentationalChildren() const = 0;
+    virtual bool inheritsPresentationalRole() const = 0;
+
+    // Accessibility Text
+    virtual void accessibilityText(Vector<AccessibilityText>&) const = 0;
+    // A single method for getting a computed label for an AXObject. It condenses the nuances of accessibilityText. Used by Inspector.
+    virtual String computedLabel() = 0;
+
+    // A programmatic way to set a name on an AccessibleObject.
+    virtual void setAccessibleName(const AtomString&) = 0;
+    virtual bool hasAttributesRequiredForInclusion() const = 0;
+
+    // Accessibility Text - (To be deprecated).
+    virtual String accessibilityDescription() const = 0;
+    virtual String title() const = 0;
+    virtual String helpText() const = 0;
+
+    // Methods for determining accessibility text.
+    virtual bool isARIAStaticText() const = 0;
+    virtual String stringValue() const = 0;
+    virtual String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const = 0;
+    virtual String text() const = 0;
+    virtual int textLength() const = 0;
+    virtual String ariaLabeledByAttribute() const = 0;
+    virtual String ariaDescribedByAttribute() const = 0;
+    virtual const String placeholderValue() const = 0;
+    virtual bool accessibleNameDerivesFromContent() const = 0;
+
+    // Abbreviations
+    virtual String expandedTextValue() const = 0;
+    virtual bool supportsExpandedTextValue() const = 0;
+
+    virtual void elementsFromAttribute(Vector<Element*>&, const QualifiedName&) const = 0;
+
+    // Only if isColorWell()
+    virtual void colorValue(int& r, int& g, int& b) const = 0;
+
+    virtual AccessibilityRole roleValue() const = 0;
+
+    virtual AXObjectCache* axObjectCache() const = 0;
+
+    virtual Element* anchorElement() const = 0;
+    virtual bool supportsPressAction() const = 0;
+    virtual Element* actionElement() const = 0;
+    virtual LayoutRect boundingBoxRect() const = 0;
+    virtual IntRect pixelSnappedBoundingBoxRect() const = 0;
+    virtual LayoutRect elementRect() const = 0;
+    virtual LayoutSize size() const = 0;
+    virtual IntPoint clickPoint() = 0;
+    virtual Path elementPath() const = 0;
+    virtual bool supportsPath() const = 0;
+
+    virtual TextIteratorBehavior textIteratorBehaviorForTextRange() const = 0;
+    virtual PlainTextRange selectedTextRange() const = 0;
+    virtual unsigned selectionStart() const = 0;
+    virtual unsigned selectionEnd() const = 0;
+
+    virtual URL url() const = 0;
+    virtual VisibleSelection selection() const = 0;
+    virtual String selectedText() const = 0;
+    virtual const AtomString& accessKey() const = 0;
+    virtual const String& actionVerb() const = 0;
+    virtual Widget* widget() const = 0;
+    virtual Widget* widgetForAttachmentView() const = 0;
+    virtual Page* page() const = 0;
+    virtual Document* document() const = 0;
+    virtual FrameView* documentFrameView() const = 0;
+    virtual Frame* frame() const = 0;
+    virtual Frame* mainFrame() const = 0;
+    virtual Document* topDocument() const = 0;
+    virtual ScrollView* scrollViewAncestor() const = 0;
+    virtual String language() const = 0;
+    // 1-based, to match the aria-level spec.
+    virtual unsigned hierarchicalLevel() const = 0;
+
+    virtual void setFocused(bool) = 0;
+    virtual void setSelectedText(const String&) = 0;
+    virtual void setSelectedTextRange(const PlainTextRange&) = 0;
+    virtual void setValue(const String&) = 0;
+    virtual bool replaceTextInRange(const String&, const PlainTextRange&) = 0;
+    virtual bool insertText(const String&) = 0;
+
+    virtual void setValue(float) = 0;
+    virtual void setSelected(bool) = 0;
+    virtual void setSelectedRows(AccessibilityChildrenVector&) = 0;
+
+    virtual void makeRangeVisible(const PlainTextRange&) = 0;
+    virtual bool press() = 0;
+    virtual bool performDefaultAction() = 0;
+
+    virtual AccessibilityOrientation orientation() const = 0;
+    virtual void increment() = 0;
+    virtual void decrement() = 0;
+
+    virtual void childrenChanged() = 0;
+    virtual void textChanged() = 0;
+    virtual void updateAccessibilityRole() = 0;
+    virtual const AccessibilityChildrenVector& children(bool updateChildrenIfNeeded = true) = 0;
+    virtual void addChildren() = 0;
+    virtual void addChild(AXCoreObject*) = 0;
+    virtual void insertChild(AXCoreObject*, unsigned) = 0;
+
+    virtual bool shouldIgnoreAttributeRole() const = 0;
+
+    virtual bool canHaveChildren() const = 0;
+    virtual bool hasChildren() const = 0;
+    virtual void updateChildrenIfNecessary() = 0;
+    virtual void setNeedsToUpdateChildren() = 0;
+    virtual void setNeedsToUpdateSubtree() = 0;
+    virtual void clearChildren() = 0;
+    virtual bool needsToUpdateChildren() const = 0;
+    virtual void detachFromParent() = 0;
+    virtual bool isDetachedFromParent() = 0;
+
+    virtual bool canHaveSelectedChildren() const = 0;
+    virtual void selectedChildren(AccessibilityChildrenVector&) = 0;
+    virtual void visibleChildren(AccessibilityChildrenVector&) = 0;
+    virtual void tabChildren(AccessibilityChildrenVector&) = 0;
+    virtual bool shouldFocusActiveDescendant() const = 0;
+    virtual AXCoreObject* activeDescendant() const = 0;
+    virtual void handleActiveDescendantChanged() = 0;
+    virtual void handleAriaExpandedChanged() = 0;
+    virtual bool isDescendantOfObject(const AXCoreObject*) const = 0;
+    virtual bool isAncestorOfObject(const AXCoreObject*) const = 0;
+    virtual AXCoreObject* firstAnonymousBlockChild() const = 0;
+
+    virtual bool hasAttribute(const QualifiedName&) const = 0;
+    virtual const AtomString& getAttribute(const QualifiedName&) const = 0;
+    virtual bool hasTagName(const QualifiedName&) const = 0;
+
+    virtual VisiblePositionRange visiblePositionRange() const = 0;
+    virtual VisiblePositionRange visiblePositionRangeForLine(unsigned) const = 0;
+    virtual RefPtr<Range> elementRange() const = 0;
+    virtual VisiblePositionRange visiblePositionRangeForUnorderedPositions(const VisiblePosition&, const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange positionOfLeftWord(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange positionOfRightWord(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange leftLineVisiblePositionRange(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange rightLineVisiblePositionRange(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange sentenceForPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange paragraphForPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange styleRangeForPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePositionRange visiblePositionRangeForRange(const PlainTextRange&) const = 0;
+    virtual VisiblePositionRange lineRangeForPosition(const VisiblePosition&) const = 0;
+
+    virtual RefPtr<Range> rangeForPlainTextRange(const PlainTextRange&) const = 0;
+
+    virtual String stringForRange(RefPtr<Range>) const = 0;
+    virtual IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const = 0;
+    virtual IntRect boundsForRange(const RefPtr<Range>) const = 0;
+    virtual int lengthForVisiblePositionRange(const VisiblePositionRange&) const = 0;
+    virtual void setSelectedVisiblePositionRange(const VisiblePositionRange&) const = 0;
+
+    virtual VisiblePosition visiblePositionForBounds(const IntRect&, AccessibilityVisiblePositionForBounds) const = 0;
+    virtual VisiblePosition visiblePositionForPoint(const IntPoint&) const = 0;
+    virtual VisiblePosition nextVisiblePosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition previousVisiblePosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition nextWordEnd(const VisiblePosition&) const = 0;
+    virtual VisiblePosition previousWordStart(const VisiblePosition&) const = 0;
+    virtual VisiblePosition nextLineEndPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition previousLineStartPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition nextSentenceEndPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition previousSentenceStartPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition nextParagraphEndPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition previousParagraphStartPosition(const VisiblePosition&) const = 0;
+    virtual VisiblePosition visiblePositionForIndex(unsigned, bool /*lastIndexOK */) const = 0;
+
+    virtual VisiblePosition visiblePositionForIndex(int) const = 0;
+    virtual int indexForVisiblePosition(const VisiblePosition&) const = 0;
+
+    virtual AXCoreObject* accessibilityObjectForPosition(const VisiblePosition&) const = 0;
+    virtual int lineForPosition(const VisiblePosition&) const = 0;
+    virtual PlainTextRange plainTextRangeForVisiblePositionRange(const VisiblePositionRange&) const = 0;
+    virtual int index(const VisiblePosition&) const = 0;
+
+    virtual void lineBreaks(Vector<int>&) const = 0;
+    virtual PlainTextRange doAXRangeForLine(unsigned) const = 0;
+    virtual PlainTextRange doAXRangeForPosition(const IntPoint&) const = 0;
+    virtual PlainTextRange doAXRangeForIndex(unsigned) const = 0;
+    virtual PlainTextRange doAXStyleRangeForIndex(unsigned) const = 0;
+
+    virtual String doAXStringForRange(const PlainTextRange&) const = 0;
+    virtual IntRect doAXBoundsForRange(const PlainTextRange&) const = 0;
+    virtual IntRect doAXBoundsForRangeUsingCharacterOffset(const PlainTextRange&) const = 0;
+
+    virtual unsigned doAXLineForIndex(unsigned) = 0;
+
+    virtual String computedRoleString() const = 0;
+
+    // MSAA
+    virtual String stringValueForMSAA() const = 0;
+    virtual String stringRoleForMSAA() const = 0;
+    virtual String nameForMSAA() const = 0;
+    virtual String descriptionForMSAA() const = 0;
+    virtual AccessibilityRole roleValueForMSAA() const = 0;
+
+    virtual String passwordFieldValue() const = 0;
+    virtual bool isValueAutofilled() const = 0;
+    virtual bool isValueAutofillAvailable() const = 0;
+    virtual AutoFillButtonType valueAutofillButtonType() const = 0;
+
+    // Used by an ARIA tree to get all its rows.
+    virtual void ariaTreeRows(AccessibilityChildrenVector&) = 0;
+    // Used by an ARIA tree item to get all of its direct rows that it can disclose.
+    virtual void ariaTreeItemDisclosedRows(AccessibilityChildrenVector&) = 0;
+    // Used by an ARIA tree item to get only its content, and not its child tree items and groups.
+    virtual void ariaTreeItemContent(AccessibilityChildrenVector&) = 0;
+
+    // ARIA live-region features.
+    virtual bool supportsLiveRegion(bool excludeIfOff = true) const = 0;
+    virtual bool isInsideLiveRegion(bool excludeIfOff = true) const = 0;
+    virtual AXCoreObject* liveRegionAncestor(bool excludeIfOff = true) const = 0;
+    virtual const String liveRegionStatus() const = 0;
+    virtual const String liveRegionRelevant() const = 0;
+    virtual bool liveRegionAtomic() const = 0;
+    virtual bool isBusy() const = 0;
+
+    virtual bool hasContentEditableAttributeSet() const = 0;
+
+    virtual bool supportsReadOnly() const = 0;
+    virtual String readOnlyValue() const = 0;
+
+    virtual bool supportsAutoComplete() const = 0;
+    virtual String autoCompleteValue() const = 0;
+
+    virtual bool supportsARIAAttributes() const = 0;
+
+    // CSS3 Speech properties.
+    virtual OptionSet<SpeakAs> speakAsProperty() const = 0;
+
+    // Make this object visible by scrolling as many nested scrollable views as needed.
+    virtual void scrollToMakeVisible() const = 0;
+    // Same, but if the whole object can't be made visible, try for this subrect, in local coordinates.
+    virtual void scrollToMakeVisibleWithSubFocus(const IntRect&) const = 0;
+    // Scroll this object to a given point in global coordinates of the top-level window.
+    virtual void scrollToGlobalPoint(const IntPoint&) const = 0;
+
+    enum class ScrollByPageDirection { Up, Down, Left, Right };
+    virtual bool scrollByPage(ScrollByPageDirection) const = 0;
+    virtual IntPoint scrollPosition() const = 0;
+    virtual IntSize scrollContentsSize() const = 0;
+    virtual IntRect scrollVisibleContentRect() const = 0;
+    virtual void scrollToMakeVisible(const ScrollRectToVisibleOptions&) const = 0;
+
+    virtual bool lastKnownIsIgnoredValue() = 0;
+    virtual void setLastKnownIsIgnoredValue(bool) = 0;
+
+    // Fires a children changed notification on the parent if the isIgnored value changed.
+    virtual void notifyIfIgnoredValueChanged() = 0;
+
+    // All math elements return true for isMathElement().
+    virtual bool isMathElement() const = 0;
+    virtual bool isMathFraction() const = 0;
+    virtual bool isMathFenced() const = 0;
+    virtual bool isMathSubscriptSuperscript() const = 0;
+    virtual bool isMathRow() const = 0;
+    virtual bool isMathUnderOver() const = 0;
+    virtual bool isMathRoot() const = 0;
+    virtual bool isMathSquareRoot() const = 0;
+    virtual bool isMathText() const = 0;
+    virtual bool isMathNumber() const = 0;
+    virtual bool isMathOperator() const = 0;
+    virtual bool isMathFenceOperator() const = 0;
+    virtual bool isMathSeparatorOperator() const = 0;
+    virtual bool isMathIdentifier() const = 0;
+    virtual bool isMathTable() const = 0;
+    virtual bool isMathTableRow() const = 0;
+    virtual bool isMathTableCell() const = 0;
+    virtual bool isMathMultiscript() const = 0;
+    virtual bool isMathToken() const = 0;
+    virtual bool isMathScriptObject(AccessibilityMathScriptObjectType) const = 0;
+    virtual bool isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType) const = 0;
+
+    // Root components.
+    virtual AXCoreObject* mathRadicandObject() = 0;
+    virtual AXCoreObject* mathRootIndexObject() = 0;
+
+    // Under over components.
+    virtual AXCoreObject* mathUnderObject() = 0;
+    virtual AXCoreObject* mathOverObject() = 0;
+
+    // Fraction components.
+    virtual AXCoreObject* mathNumeratorObject() = 0;
+    virtual AXCoreObject* mathDenominatorObject() = 0;
+
+    // Subscript/superscript components.
+    virtual AXCoreObject* mathBaseObject() = 0;
+    virtual AXCoreObject* mathSubscriptObject() = 0;
+    virtual AXCoreObject* mathSuperscriptObject() = 0;
+
+    // Fenced components.
+    virtual String mathFencedOpenString() const = 0;
+    virtual String mathFencedCloseString() const = 0;
+    virtual int mathLineThickness() const = 0;
+    virtual bool isAnonymousMathOperator() const = 0;
+
+    // Multiscripts components.
+    typedef Vector<std::pair<AXCoreObject*, AXCoreObject*>> AccessibilityMathMultiscriptPairs;
+    virtual void mathPrescripts(AccessibilityMathMultiscriptPairs&) = 0;
+    virtual void mathPostscripts(AccessibilityMathMultiscriptPairs&) = 0;
+
+    // Visibility.
+    virtual bool isAXHidden() const = 0;
+    virtual bool isDOMHidden() const = 0;
+    virtual bool isHidden() const = 0;
+
+    virtual AccessibilityObjectWrapper* wrapper() const = 0;
+    virtual void setWrapper(AccessibilityObjectWrapper*) = 0;
+
+    virtual void overrideAttachmentParent(AXCoreObject* parent) = 0;
+
+    // a platform-specific method for determining if an attachment is ignored
+    virtual bool accessibilityIgnoreAttachment() const = 0;
+    // gives platforms the opportunity to indicate if and how an object should be included
+    virtual AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const = 0;
+
+#if PLATFORM(IOS_FAMILY)
+    virtual int accessibilityPasswordFieldLength() = 0;
+    virtual bool hasTouchEventListener() const = 0;
+    virtual bool isInputTypePopupButton() const = 0;
+#endif
+
+    // allows for an AccessibilityObject to update its render tree or perform
+    // other operations update type operations
+    virtual void updateBackingStore() = 0;
+
 #if PLATFORM(COCOA)
+    virtual bool preventKeyboardDOMEventDispatch() const = 0;
+    virtual void setPreventKeyboardDOMEventDispatch(bool) = 0;
+    virtual bool fileUploadButtonReturnsValueInTitle() const = 0;
     virtual String speechHintAttributeValue() const = 0;
     virtual String descriptionAttributeValue() const = 0;
     virtual String helpTextAttributeValue() const = 0;
     virtual String titleAttributeValue() const = 0;
 #endif
 
-    virtual AccessibilityObjectWrapper* wrapper() const = 0;
-    virtual AccessibilityObjectInterface* accessibilityHitTest(const IntPoint&) const = 0;
-    virtual void updateChildrenIfNecessary() = 0;
+#if PLATFORM(COCOA) && !PLATFORM(IOS_FAMILY)
+    virtual bool caretBrowsingEnabled() const = 0;
+    virtual void setCaretBrowsingEnabled(bool) = 0;
+#endif
+
+    virtual AXCoreObject* focusableAncestor() = 0;
+    virtual AXCoreObject* editableAncestor() = 0;
+    virtual AXCoreObject* highestEditableAncestor() = 0;
+
+    virtual const AccessibilityScrollView* ancestorAccessibilityScrollView(bool includeSelf) const = 0;
+
+    virtual void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData&) = 0;
+    virtual void clearIsIgnoredFromParentData() = 0;
+    virtual void setIsIgnoredFromParentDataForChild(AXCoreObject*) = 0;
 };
 
 } // namespace WebCore
index 5334dc7..7c0be74 100644 (file)
@@ -976,7 +976,7 @@ OptionSet<SpeakAs> AccessibilityRenderObject::speakAsProperty() const
     return m_renderer->style().speakAs();
 }
     
-void AccessibilityRenderObject::addRadioButtonGroupChildren(AccessibilityObject* parent, AccessibilityChildrenVector& linkedUIElements) const
+void AccessibilityRenderObject::addRadioButtonGroupChildren(AXCoreObject* parent, AccessibilityChildrenVector& linkedUIElements) const
 {
     for (const auto& child : parent->children()) {
         if (child->roleValue() == AccessibilityRole::RadioButton)
@@ -1281,7 +1281,7 @@ bool AccessibilityRenderObject::computeAccessibilityIsIgnored() const
 
     if (is<RenderText>(*m_renderer)) {
         // static text beneath MenuItems and MenuButtons are just reported along with the menu item, so it's ignored on an individual level
-        AccessibilityObject* parent = parentObjectUnignored();
+        AXCoreObject* parent = parentObjectUnignored();
         if (parent && (parent->isMenuItem() || parent->ariaRoleAttribute() == AccessibilityRole::MenuButton))
             return true;
         auto& renderText = downcast<RenderText>(*m_renderer);
@@ -1433,7 +1433,7 @@ bool AccessibilityRenderObject::computeAccessibilityIsIgnored() const
     }
 
     if (m_renderer->isListMarker()) {
-        AccessibilityObject* parent = parentObjectUnignored();
+        AXCoreObject* parent = parentObjectUnignored();
         return parent && !parent->isListItem();
     }
 
@@ -2370,7 +2370,7 @@ IntRect AccessibilityRenderObject::doAXBoundsForRangeUsingCharacterOffset(const
     return IntRect();
 }
 
-AccessibilityObject* AccessibilityRenderObject::accessibilityImageMapHitTest(HTMLAreaElement* area, const IntPoint& point) const
+AXCoreObject* AccessibilityRenderObject::accessibilityImageMapHitTest(HTMLAreaElement* area, const IntPoint& point) const
 {
     if (!area)
         return nullptr;
@@ -2393,7 +2393,7 @@ AccessibilityObject* AccessibilityRenderObject::accessibilityImageMapHitTest(HTM
     return nullptr;
 }
 
-AccessibilityObjectInterface* AccessibilityRenderObject::remoteSVGElementHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityRenderObject::remoteSVGElementHitTest(const IntPoint& point) const
 {
     AccessibilityObject* remote = remoteSVGRootElement(Create);
     if (!remote)
@@ -2403,7 +2403,7 @@ AccessibilityObjectInterface* AccessibilityRenderObject::remoteSVGElementHitTest
     return remote->accessibilityHitTest(IntPoint(offset));
 }
 
-AccessibilityObjectInterface* AccessibilityRenderObject::elementAccessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityRenderObject::elementAccessibilityHitTest(const IntPoint& point) const
 {
     if (isSVGImage())
         return remoteSVGElementHitTest(point);
@@ -2417,7 +2417,7 @@ static bool shouldUseShadowHostForHitTesting(Node* shadowHost)
     return shadowHost && !shadowHost->hasTagName(videoTag);
 }
 
-AccessibilityObjectInterface* AccessibilityRenderObject::accessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityRenderObject::accessibilityHitTest(const IntPoint& point) const
 {
     if (!m_renderer || !m_renderer->hasLayer())
         return nullptr;
@@ -2450,7 +2450,7 @@ AccessibilityObjectInterface* AccessibilityRenderObject::accessibilityHitTest(co
     if (!obj)
         return nullptr;
     
-    AccessibilityObject* result = obj->document().axObjectCache()->getOrCreate(obj);
+    AXCoreObject* result = obj->document().axObjectCache()->getOrCreate(obj);
     result->updateChildrenIfNecessary();
 
     // Allow the element to perform any hit-testing it might need to do to reach non-render children.
@@ -2458,7 +2458,7 @@ AccessibilityObjectInterface* AccessibilityRenderObject::accessibilityHitTest(co
     
     if (result && result->accessibilityIsIgnored()) {
         // If this element is the label of a control, a hit test should return the control.
-        AccessibilityObject* controlObject = result->correspondingControlForLabelElement();
+        AXCoreObject* controlObject = result->correspondingControlForLabelElement();
         if (controlObject && !controlObject->exposesTitleUIElement())
             return controlObject;
 
@@ -3136,7 +3136,7 @@ void AccessibilityRenderObject::addImageMapChildren()
         if (!areaObject.accessibilityIsIgnored())
             m_children.append(&areaObject);
         else
-            axObjectCache()->remove(areaObject.axObjectID());
+            axObjectCache()->remove(areaObject.objectID());
     }
 }
 
@@ -3308,7 +3308,7 @@ void AccessibilityRenderObject::addHiddenChildren()
     for (Node* child = node->firstChild(); child; child = child->nextSibling()) {
         if (child->renderer()) {
             // Find out where the last render sibling is located within m_children.
-            AccessibilityObject* childObject = axObjectCache()->get(child->renderer());
+            AXCoreObject* childObject = axObjectCache()->get(child->renderer());
             if (childObject && childObject->accessibilityIsIgnored()) {
                 auto& children = childObject->children();
                 if (children.size())
@@ -3525,7 +3525,7 @@ void AccessibilityRenderObject::selectedChildren(AccessibilityChildrenVector& re
         ariaSelectedRows(result);
         return;
     case AccessibilityRole::TabList:
-        if (AccessibilityObject* selectedTab = selectedTabItem())
+        if (AXCoreObject* selectedTab = selectedTabItem())
             result.append(selectedTab);
         return;
     case AccessibilityRole::List:
index 0b19da5..3961730 100644 (file)
@@ -106,7 +106,7 @@ public:
     bool ariaRoleHasPresentationalChildren() const override;
     
     // Should be called on the root accessibility object to kick off a hit test.
-    AccessibilityObjectInterface* accessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* accessibilityHitTest(const IntPoint&) const override;
 
     Element* anchorElement() const override;
     
@@ -135,7 +135,7 @@ public:
     int textLength() const override;
     String selectedText() const override;
     const AtomString& accessKey() const override;
-    virtual const String& actionVerb() const;
+    const String& actionVerb() const override;
     Widget* widget() const override;
     Widget* widgetForAttachmentView() const override;
     virtual void getDocumentLinks(AccessibilityChildrenVector&);
@@ -235,11 +235,11 @@ private:
     bool isTabItemSelected() const;
     LayoutRect checkboxOrRadioRect() const;
     void addRadioButtonGroupMembers(AccessibilityChildrenVector& linkedUIElements) const;
-    void addRadioButtonGroupChildren(AccessibilityObject*, AccessibilityChildrenVector&) const;
+    void addRadioButtonGroupChildren(AXCoreObject*, AccessibilityChildrenVector&) const;
     AccessibilityObject* internalLinkElement() const;
-    AccessibilityObject* accessibilityImageMapHitTest(HTMLAreaElement*, const IntPoint&) const;
+    AXCoreObject* accessibilityImageMapHitTest(HTMLAreaElement*, const IntPoint&) const;
     AccessibilityObject* accessibilityParentForImageMap(HTMLMapElement*) const;
-    AccessibilityObjectInterface* elementAccessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* elementAccessibilityHitTest(const IntPoint&) const override;
 
     bool renderObjectIsObservable(RenderObject&) const;
     RenderObject* renderParentObject() const;
@@ -250,7 +250,7 @@ private:
     void detachRemoteSVGRoot();
     enum CreationChoice { Create, Retrieve };
     AccessibilitySVGRoot* remoteSVGRootElement(CreationChoice createIfNecessary) const;
-    AccessibilityObjectInterface* remoteSVGElementHitTest(const IntPoint&) const;
+    AXCoreObject* remoteSVGElementHitTest(const IntPoint&) const;
     void offsetBoundingBoxForRemoteSVGElement(LayoutRect&) const;
     bool supportsPath() const override;
 
index 5178b9f..d116edd 100644 (file)
@@ -199,7 +199,7 @@ AccessibilityObject* AccessibilityScrollView::webAreaObject() const
     return nullptr;
 }
 
-AccessibilityObjectInterface* AccessibilityScrollView::accessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilityScrollView::accessibilityHitTest(const IntPoint& point) const
 {
     AccessibilityObject* webArea = webAreaObject();
     if (!webArea)
index 66ff594..9bfaf15 100644 (file)
@@ -59,7 +59,7 @@ private:
     AccessibilityObject* scrollBar(AccessibilityOrientation) override;
     void addChildren() override;
     void clearChildren() override;
-    AccessibilityObjectInterface* accessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* accessibilityHitTest(const IntPoint&) const override;
     void updateChildrenIfNecessary() override;
     void setNeedsToUpdateChildren() override { m_childrenDirty = true; }
     void updateScrollbars();
index b3ff0a9..cc6cb81 100644 (file)
@@ -90,7 +90,7 @@ void AccessibilitySlider::addChildren()
     // Before actually adding the value indicator to the hierarchy,
     // allow the platform to make a final decision about it.
     if (thumb.accessibilityIsIgnored())
-        cache->remove(thumb.axObjectID());
+        cache->remove(thumb.objectID());
     else
         m_children.append(&thumb);
 }
@@ -100,7 +100,7 @@ const AtomString& AccessibilitySlider::getAttribute(const QualifiedName& attribu
     return inputElement()->getAttribute(attribute);
 }
     
-AccessibilityObject* AccessibilitySlider::elementAccessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AccessibilitySlider::elementAccessibilityHitTest(const IntPoint& point) const
 {
     if (m_children.size()) {
         ASSERT(m_children.size() == 1);
index 469d217..91c7092 100644 (file)
@@ -45,7 +45,7 @@ protected:
 
 private:
     HTMLInputElement* inputElement() const;
-    AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* elementAccessibilityHitTest(const IntPoint&) const override;
 
     AccessibilityRole roleValue() const override { return AccessibilityRole::Slider; }
     bool isSlider() const final { return true; }
@@ -55,7 +55,7 @@ private:
     void addChildren() override;
     
     bool canSetValueAttribute() const override { return true; }
-    const AtomString& getAttribute(const QualifiedName& attribute) const;
+    const AtomString& getAttribute(const QualifiedName&) const override;
     
     void setValue(const String&) override;
     float valueForRange() const override;
index c3cc082..7d0a6a4 100644 (file)
@@ -43,7 +43,7 @@ AccessibilitySpinButton::AccessibilitySpinButton()
 
 AccessibilitySpinButton::~AccessibilitySpinButton() = default;
     
-AccessibilityObject* AccessibilitySpinButton::incrementButton()
+AXCoreObject* AccessibilitySpinButton::incrementButton()
 {
     if (!m_haveChildren)
         addChildren();
@@ -55,7 +55,7 @@ AccessibilityObject* AccessibilitySpinButton::incrementButton()
     return m_children[0].get();
 }
    
-AccessibilityObject* AccessibilitySpinButton::decrementButton()
+AXCoreObject* AccessibilitySpinButton::decrementButton()
 {
     if (!m_haveChildren)
         addChildren();
index 63d5f37..00e90a2 100644 (file)
@@ -37,8 +37,8 @@ public:
     
     void setSpinButtonElement(SpinButtonElement* spinButton) { m_spinButtonElement = spinButton; }
     
-    AccessibilityObject* incrementButton();
-    AccessibilityObject* decrementButton();
+    AXCoreObject* incrementButton();
+    AXCoreObject* decrementButton();
 
     void step(int amount);
     
index f5bf5b2..2731b07 100644 (file)
@@ -538,7 +538,7 @@ void AccessibilityTable::columnHeaders(AccessibilityChildrenVector& headers)
     AccessibilityChildrenVector columnsCopy = m_columns;
     
     for (const auto& column : columnsCopy) {
-        if (AccessibilityObject* header = downcast<AccessibilityTableColumn>(*column).headerObject())
+        if (AXCoreObject* header = downcast<AccessibilityTableColumn>(*column).headerObject())
             headers.append(header);
     }
 }
@@ -554,7 +554,7 @@ void AccessibilityTable::rowHeaders(AccessibilityChildrenVector& headers)
     AccessibilityChildrenVector rowsCopy = m_rows;
     
     for (const auto& row : rowsCopy) {
-        if (AccessibilityObject* header = downcast<AccessibilityTableRow>(*row).headerObject())
+        if (AXCoreObject* header = downcast<AccessibilityTableRow>(*row).headerObject())
             headers.append(header);
     }
 }
@@ -622,7 +622,7 @@ AccessibilityTableCell* AccessibilityTable::cellForColumnAndRow(unsigned column,
         // cell to determine which is the right one.
         for (unsigned colIndexCounter = std::min(static_cast<unsigned>(children.size()), column + 1); colIndexCounter > 0; --colIndexCounter) {
             unsigned colIndex = colIndexCounter - 1;
-            AccessibilityObject* child = children[colIndex].get();
+            AXCoreObject* child = children[colIndex].get();
             ASSERT(is<AccessibilityTableCell>(*child));
             if (!is<AccessibilityTableCell>(*child))
                 continue;
index 9bbad11..db5041c 100644 (file)
@@ -304,7 +304,7 @@ void AccessibilityTableCell::rowHeaders(AccessibilityChildrenVector& headers)
 
 AccessibilityTableRow* AccessibilityTableCell::parentRow() const
 {
-    AccessibilityObject* parent = parentObjectUnignored();
+    AXCoreObject* parent = parentObjectUnignored();
     if (!is<AccessibilityTableRow>(*parent))
         return nullptr;
     return downcast<AccessibilityTableRow>(parent);
index 3cb7f15..fdc67f8 100644 (file)
@@ -70,7 +70,7 @@ LayoutRect AccessibilityTableColumn::elementRect() const
     return columnRect;
 }
 
-AccessibilityObject* AccessibilityTableColumn::headerObject()
+AXCoreObject* AccessibilityTableColumn::headerObject()
 {
     if (!m_parent)
         return nullptr;
index 9fcdb5c..5697cc1 100644 (file)
@@ -40,9 +40,9 @@ class AccessibilityTableColumn final : public AccessibilityMockObject {
 public:
     static Ref<AccessibilityTableColumn> create();
     virtual ~AccessibilityTableColumn();
-    
-    AccessibilityObject* headerObject();
-        
+
+    AXCoreObject* headerObject();
+
     AccessibilityRole roleValue() const override { return AccessibilityRole::Column; }
     
     void setColumnIndex(int columnIndex) { m_columnIndex = columnIndex; }
index bb9d9e0..7b49c28 100644 (file)
@@ -110,7 +110,7 @@ AccessibilityTable* AccessibilityTableRow::parentTable() const
     return nullptr;
 }
     
-AccessibilityObject* AccessibilityTableRow::headerObject()
+AXCoreObject* AccessibilityTableRow::headerObject()
 {
     if (!m_renderer || !m_renderer->isTableRow())
         return nullptr;
@@ -120,7 +120,7 @@ AccessibilityObject* AccessibilityTableRow::headerObject()
         return nullptr;
     
     // check the first element in the row to see if it is a TH element
-    AccessibilityObject* cell = rowChildren[0].get();
+    AXCoreObject* cell = rowChildren[0].get();
     if (!is<AccessibilityTableCell>(*cell))
         return nullptr;
     
index 988e245..79bf05f 100644 (file)
@@ -40,7 +40,7 @@ public:
     virtual ~AccessibilityTableRow();
 
     // retrieves the "row" header (a th tag in the rightmost column)
-    virtual AccessibilityObject* headerObject();
+    virtual AXCoreObject* headerObject();
     virtual AccessibilityTable* parentTable() const;
     
     void setRowIndex(int rowIndex) { m_rowIndex = rowIndex; }
index 284e36d..d83c074 100644 (file)
@@ -119,7 +119,7 @@ void AXObjectCache::platformPerformDeferredCacheUpdate()
     m_deferredDetachedWrapperList.clear();
 }
 
-static AccessibilityObject* getListObject(AccessibilityObject* object)
+static AXCoreObject* getListObject(AXCoreObject* object)
 {
     // Only list boxes and menu lists supported so far.
     if (!object->isListBox() && !object->isMenuList())
@@ -136,21 +136,21 @@ static AccessibilityObject* getListObject(AccessibilityObject* object)
     if (!children.size())
         return 0;
 
-    AccessibilityObject* listObject = children.at(0).get();
+    AXCoreObject* listObject = children.at(0).get();
     if (!listObject->isMenuListPopup())
         return 0;
 
     return listObject;
 }
 
-static void notifyChildrenSelectionChange(AccessibilityObject* object)
+static void notifyChildrenSelectionChange(AXCoreObject* object)
 {
     // This static variables are needed to keep track of the old
     // focused object and its associated list object, as per previous
     // calls to this function, in order to properly decide whether to
     // emit some signals or not.
-    static NeverDestroyed<RefPtr<AccessibilityObject>> oldListObject;
-    static NeverDestroyed<RefPtr<AccessibilityObject>> oldFocusedObject;
+    static NeverDestroyed<RefPtr<AXCoreObject>> oldListObject;
+    static NeverDestroyed<RefPtr<AXCoreObject>> oldFocusedObject;
 
     // Only list boxes and menu lists supported so far.
     if (!object || !(object->isListBox() || object->isMenuList()))
@@ -168,7 +168,7 @@ static void notifyChildrenSelectionChange(AccessibilityObject* object)
     HTMLSelectElement& select = downcast<HTMLSelectElement>(*node);
     int changedItemIndex = select.activeSelectionStartListIndex();
 
-    AccessibilityObject* listObject = getListObject(object);
+    AXCoreObject* listObject = getListObject(object);
     if (!listObject) {
         oldListObject.get() = nullptr;
         return;
@@ -177,7 +177,7 @@ static void notifyChildrenSelectionChange(AccessibilityObject* object)
     const AccessibilityObject::AccessibilityChildrenVector& items = listObject->children();
     if (changedItemIndex < 0 || changedItemIndex >= static_cast<int>(items.size()))
         return;
-    AccessibilityObject* item = items.at(changedItemIndex).get();
+    AXCoreObject* item = items.at(changedItemIndex).get();
 
     // Ensure the current list object is the same than the old one so
     // further comparisons make sense. Otherwise, just reset
@@ -211,7 +211,7 @@ static void notifyChildrenSelectionChange(AccessibilityObject* object)
     oldFocusedObject.get() = item;
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject* coreObject, AXNotification notification)
+void AXObjectCache::postPlatformNotification(AXCoreObject* coreObject, AXNotification notification)
 {
     auto* axObject = ATK_OBJECT(coreObject->wrapper());
     if (!axObject)
@@ -293,7 +293,7 @@ void AXObjectCache::postPlatformNotification(AccessibilityObject* coreObject, AX
         break;
 
     case AXActiveDescendantChanged:
-        if (AccessibilityObject* descendant = coreObject->activeDescendant())
+        if (AXCoreObject* descendant = coreObject->activeDescendant())
             platformHandleFocusedUIElementChanged(nullptr, descendant->node());
         break;
 
@@ -307,7 +307,7 @@ void AXObjectCache::nodeTextChangePlatformNotification(AccessibilityObject* obje
     if (!object || text.isEmpty())
         return;
 
-    AccessibilityObject* parentObject = object->isNonNativeTextControl() ? object : object->parentObjectUnignored();
+    AXCoreObject* parentObject = object->isNonNativeTextControl() ? object : object->parentObjectUnignored();
     if (!parentObject)
         return;
 
index 12ae435..d32c822 100644 (file)
@@ -1165,7 +1165,7 @@ static bool roleIsTextType(AccessibilityRole role)
         || role == AccessibilityRole::ApplicationGroup;
 }
 
-static guint16 interfaceMaskFromObject(AccessibilityObject* coreObject)
+static guint16 interfaceMaskFromObject(AXCoreObject* coreObject)
 {
     guint16 interfaceMask = 0;
 
index 7245024..b0f73e6 100644 (file)
@@ -158,7 +158,7 @@ static gint rangeLengthForObject(AccessibilityObject& obj, Range* range)
 
     // Check whether the current hyperlink belongs to a list item.
     // If so, we need to consider the length of the item's marker
-    AccessibilityObject* parent = obj.parentObjectUnignored();
+    AXCoreObject* parent = obj.parentObjectUnignored();
     if (!parent || !parent->isAccessibilityRenderObject() || !parent->isListItem())
         return baseLength;
 
@@ -166,7 +166,7 @@ static gint rangeLengthForObject(AccessibilityObject& obj, Range* range)
     // Technologies, we need to have a way to measure their length
     // for those cases when it's needed to take it into account
     // separately (as in getAccessibilityObjectForOffset)
-    AccessibilityObject* markerObj = parent->firstChild();
+    AXCoreObject* markerObj = parent->firstChild();
     if (!markerObj)
         return baseLength;
 
@@ -184,7 +184,7 @@ static gint webkitAccessibleHyperlinkGetStartIndex(AtkHyperlink* link)
     returnValIfWebKitAccessibleIsInvalid(accessibleHyperlink->priv->hyperlinkImpl, 0);
 
     auto& coreObject = webkitAccessibleGetAccessibilityObject(accessibleHyperlink->priv->hyperlinkImpl);
-    AccessibilityObject* parentUnignored = coreObject.parentObjectUnignored();
+    AXCoreObject* parentUnignored = coreObject.parentObjectUnignored();
     if (!parentUnignored)
         return 0;
 
@@ -206,7 +206,7 @@ static gint webkitAccessibleHyperlinkGetEndIndex(AtkHyperlink* link)
     returnValIfWebKitAccessibleIsInvalid(accessibleHyperlink->priv->hyperlinkImpl, 0);
 
     auto& coreObject = webkitAccessibleGetAccessibilityObject(accessibleHyperlink->priv->hyperlinkImpl);
-    AccessibilityObject* parentUnignored = coreObject.parentObjectUnignored();
+    AXCoreObject* parentUnignored = coreObject.parentObjectUnignored();
     if (!parentUnignored)
         return 0;
 
index 8a3383d..a78d883 100644 (file)
@@ -47,7 +47,7 @@ static AtkHyperlink* webkitAccessibleHypertextGetLink(AtkHypertext* hypertext, g
 
     gint currentLink = -1;
     for (const auto& child : children) {
-        AccessibilityObject* coreChild = child.get();
+        AXCoreObject* coreChild = child.get();
         if (!coreChild->accessibilityIsIgnored()) {
             auto* axObject = coreChild->wrapper();
             if (!axObject || !ATK_IS_HYPERLINK_IMPL(axObject))
@@ -72,7 +72,7 @@ static gint webkitAccessibleHypertextGetNLinks(AtkHypertext* hypertext)
     const AccessibilityObject::AccessibilityChildrenVector& children = core(hypertext)->children();
     gint linksFound = 0;
     for (const auto& child : children) {
-        AccessibilityObject* coreChild = child.get();
+        AXCoreObject* coreChild = child.get();
         if (!coreChild->accessibilityIsIgnored()) {
             auto* axObject = coreChild->wrapper();
             if (axObject && ATK_IS_HYPERLINK_IMPL(axObject))
index 17b9806..6ea5708 100644 (file)
@@ -50,7 +50,7 @@ static AccessibilityObject* core(AtkSelection* selection)
     return &webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(selection));
 }
 
-static AccessibilityObject* listObjectForCoreSelection(AccessibilityObject* coreSelection)
+static AXCoreObject* listObjectForCoreSelection(AccessibilityObject* coreSelection)
 {
     // Only list boxes and menu lists supported so far.
     if (!coreSelection->isListBox() && !coreSelection->isMenuList())
@@ -67,21 +67,21 @@ static AccessibilityObject* listObjectForCoreSelection(AccessibilityObject* core
     if (!children.size())
         return nullptr;
 
-    AccessibilityObject* listObject = children.at(0).get();
+    AXCoreObject* listObject = children.at(0).get();
     if (!listObject->isMenuListPopup())
         return nullptr;
 
     return listObject;
 }
 
-static AccessibilityObject* optionFromList(AtkSelection* selection, gint index)
+static AXCoreObject* optionFromList(AtkSelection* selection, gint index)
 {
     AccessibilityObject* coreSelection = core(selection);
     if (!coreSelection || index < 0)
         return nullptr;
 
     // Need to select the proper list object depending on the type.
-    AccessibilityObject* listObject = listObjectForCoreSelection(coreSelection);
+    AXCoreObject* listObject = listObjectForCoreSelection(coreSelection);
     if (!listObject)
         return nullptr;
 
@@ -92,7 +92,7 @@ static AccessibilityObject* optionFromList(AtkSelection* selection, gint index)
     return nullptr;
 }
 
-static AccessibilityObject* optionFromSelection(AtkSelection* selection, gint index)
+static AXCoreObject* optionFromSelection(AtkSelection* selection, gint index)
 {
     AccessibilityObject* coreSelection = core(selection);
     if (!coreSelection || !coreSelection->isAccessibilityRenderObject() || index < 0)
@@ -120,7 +120,7 @@ static gboolean webkitAccessibleSelectionAddSelection(AtkSelection* selection, g
     if (!coreSelection)
         return FALSE;
 
-    AccessibilityObject* option = optionFromList(selection, index);
+    AXCoreObject* option = optionFromList(selection, index);
     if (option && (coreSelection->isListBox() || coreSelection->isMenuList())) {
         option->setSelected(true);
         return option->isSelected();
@@ -154,7 +154,7 @@ static AtkObject* webkitAccessibleSelectionRefSelection(AtkSelection* selection,
     g_return_val_if_fail(ATK_SELECTION(selection), nullptr);
     returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(selection), nullptr);
 
-    AccessibilityObject* option = optionFromSelection(selection, index);
+    AXCoreObject* option = optionFromSelection(selection, index);
     if (option) {
         auto* child = option->wrapper();
         g_object_ref(child);
@@ -196,7 +196,7 @@ static gboolean webkitAccessibleSelectionIsChildSelected(AtkSelection* selection
     if (!coreSelection)
         return FALSE;
 
-    AccessibilityObject* option = optionFromList(selection, index);
+    AXCoreObject* option = optionFromList(selection, index);
     if (option && (coreSelection->isListBox() || coreSelection->isMenuList()))
         return option->isSelected();
 
@@ -212,7 +212,7 @@ static gboolean webkitAccessibleSelectionRemoveSelection(AtkSelection* selection
     if (!coreSelection)
         return FALSE;
 
-    AccessibilityObject* option = optionFromSelection(selection, index);
+    AXCoreObject* option = optionFromSelection(selection, index);
     if (option && (coreSelection->isListBox() || coreSelection->isMenuList())) {
         option->setSelected(false);
         return !option->isSelected();
index 496e262..b2715c7 100644 (file)
@@ -334,7 +334,7 @@ static IntRect textExtents(AtkText* text, gint startOffset, gint length, AtkCoor
     return extents;
 }
 
-static int offsetAdjustmentForListItem(const AccessibilityObject* object)
+static int offsetAdjustmentForListItem(const AXCoreObject* object)
 {
     // We need to adjust the offsets for the list item marker in
     // Left-To-Right text, since we expose it together with the text.
@@ -345,7 +345,7 @@ static int offsetAdjustmentForListItem(const AccessibilityObject* object)
     return 0;
 }
 
-static int webCoreOffsetToAtkOffset(const AccessibilityObject* object, int offset)
+static int webCoreOffsetToAtkOffset(const AXCoreObject* object, int offset)
 {
     if (!object->isListItem())
         return offset;
@@ -990,7 +990,7 @@ static gint webkitAccessibleTextGetCaretOffset(AtkText* text)
 
     // coreObject is the unignored object whose offset the caller is requesting.
     // focusedObject is the object with the caret. It is likely ignored -- unless it's a link.
-    AccessibilityObject* coreObject = core(text);
+    AXCoreObject* coreObject = core(text);
     if (!coreObject->isAccessibilityRenderObject())
         return 0;
 
index a3b871b..56392c0 100644 (file)
@@ -176,7 +176,7 @@ bool selectionBelongsToObject(AccessibilityObject* coreObject, VisibleSelection&
         && (&range->startContainer() != lastDescendant || range->startOffset() != lastOffset);
 }
 
-AccessibilityObject* objectFocusedAndCaretOffsetUnignored(AccessibilityObject* referenceObject, int& offset)
+AXCoreObject* objectFocusedAndCaretOffsetUnignored(AXCoreObject* referenceObject, int& offset)
 {
     // Indication that something bogus has transpired.
     offset = -1;
@@ -198,7 +198,7 @@ AccessibilityObject* objectFocusedAndCaretOffsetUnignored(AccessibilityObject* r
         return nullptr;
 
     // Look for the actual (not ignoring accessibility) selected object.
-    AccessibilityObject* firstUnignoredParent = focusedObject;
+    AXCoreObject* firstUnignoredParent = focusedObject;
     if (firstUnignoredParent->accessibilityIsIgnored())
         firstUnignoredParent = firstUnignoredParent->parentObjectUnignored();
     if (!firstUnignoredParent)
@@ -224,7 +224,7 @@ AccessibilityObject* objectFocusedAndCaretOffsetUnignored(AccessibilityObject* r
         // because we want it to be relative to the object of
         // reference, not just to the focused object (which could have
         // previous siblings which should be taken into account too).
-        AccessibilityObject* axFirstChild = referenceObject->firstChild();
+        AXCoreObject* axFirstChild = referenceObject->firstChild();
         if (axFirstChild)
             startNode = axFirstChild->node();
     }
index f6ac764..a2facaf 100644 (file)
@@ -27,6 +27,7 @@
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
+class AXCoreObject;
 class AccessibilityObject;
 class IntRect;
 class VisibleSelection;
@@ -66,6 +67,6 @@ String accessibilityDescription(WebCore::AccessibilityObject*);
 
 bool selectionBelongsToObject(WebCore::AccessibilityObject*, WebCore::VisibleSelection&);
 
-WebCore::AccessibilityObject* objectFocusedAndCaretOffsetUnignored(WebCore::AccessibilityObject*, int& offset);
+WebCore::AXCoreObject* objectFocusedAndCaretOffsetUnignored(WebCore::AXCoreObject*, int& offset);
 
 #endif // ENABLE(ACCESSIBILITY)
index 687f1ae..df58efa 100644 (file)
@@ -48,7 +48,7 @@ void AXObjectCache::attachWrapper(AccessibilityObject* obj)
     obj->setWrapper(wrapper.get());
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
+void AXObjectCache::postPlatformNotification(AXCoreObject* obj, AXNotification notification)
 {
     if (!obj)
         return;
index 4de3924..7e05acf 100644 (file)
@@ -47,7 +47,7 @@ bool AccessibilityObject::fileUploadButtonReturnsValueInTitle() const
     return false;
 }
 
-void AccessibilityObject::overrideAttachmentParent(AccessibilityObject*)
+void AccessibilityObject::overrideAttachmentParent(AXCoreObject*)
 {
 }
     
index bccf37e..87bfb9e 100644 (file)
@@ -130,7 +130,7 @@ static AccessibilityObjectWrapper* AccessibilityUnignoredAncestor(AccessibilityO
         if ([wrapper isAttachment] && ![[wrapper attachmentView] accessibilityIsIgnored])
             break;
             
-        AccessibilityObject* parentObject = object->parentObjectUnignored();
+        AXCoreObject* parentObject = object->parentObjectUnignored();
         if (!parentObject)
             break;
 
@@ -388,7 +388,7 @@ static AccessibilityObjectWrapper* AccessibilityUnignoredAncestor(AccessibilityO
         return nil;
     
     // Try a fuzzy hit test first to find an accessible element.
-    AccessibilityObjectInterface *axObject = nullptr;
+    AXCoreObject *axObject = nullptr;
     {
         AXAttributeCacheEnabler enableCache(m_object->axObjectCache());
         axObject = m_object->accessibilityHitTest(IntPoint(point));
@@ -1240,7 +1240,7 @@ static void appendStringToResult(NSMutableString *result, NSString *string)
     
     unsigned columnRangeIndex = static_cast<unsigned>(columnRange.first);
     if (columnRangeIndex < columnHeaders.size()) {
-        RefPtr<AccessibilityObject> columnHeader = columnHeaders[columnRange.first];
+        RefPtr<AXCoreObject> columnHeader = columnHeaders[columnRange.first];
         AccessibilityObjectWrapper* wrapper = columnHeader->wrapper();
         if (wrapper)
             [headers addObject:wrapper];
@@ -1664,7 +1664,7 @@ static void appendStringToResult(NSMutableString *result, NSString *string)
     AXAttributeCacheEnabler enableCache(m_object->axObjectCache());
     
     // As long as there's a parent wrapper, that's the correct chain to climb.
-    AccessibilityObject* parent = m_object->parentObjectUnignored(); 
+    AXCoreObject* parent = m_object->parentObjectUnignored();
     if (parent)
         return parent->wrapper();
 
@@ -1800,7 +1800,7 @@ static void appendStringToResult(NSMutableString *result, NSString *string)
         return nil;
 
     // If this static text inside of a link, it should use its parent's linked element.
-    AccessibilityObject* element = m_object;
+    AXCoreObject* element = m_object;
     if (m_object->roleValue() == AccessibilityRole::StaticText && m_object->parentObjectUnignored()->isLink())
         element = m_object->parentObjectUnignored();
 
index d8dbb9f..7939299 100644 (file)
@@ -98,19 +98,19 @@ void AXIsolatedTreeNode::setTreeIdentifier(AXIsolatedTreeID treeIdentifier)
         m_cachedTree = tree;
 }
 
-AccessibilityObjectInterface* AXIsolatedTreeNode::focusedUIElement() const
+AXCoreObject* AXIsolatedTreeNode::focusedUIElement() const
 {
     if (auto focusedElement = tree()->focusedUIElement())
         return focusedElement.get();
     return nullptr;
 }
     
-AccessibilityObjectInterface* AXIsolatedTreeNode::parentObjectInterfaceUnignored() const
+AXCoreObject* AXIsolatedTreeNode::parentObjectInterfaceUnignored() const
 {
     return tree()->nodeForID(parent()).get();
 }
 
-AccessibilityObjectInterface* AXIsolatedTreeNode::accessibilityHitTest(const IntPoint& point) const
+AXCoreObject* AXIsolatedTreeNode::accessibilityHitTest(const IntPoint& point) const
 {
     if (!relativeFrame().contains(point))
         return nullptr;
index 934d63f..c3546fb 100644 (file)
@@ -45,7 +45,7 @@ namespace WebCore {
 class AXIsolatedTree;
 class AccessibilityObject;
 
-class AXIsolatedTreeNode final : public AccessibilityObjectInterface, public ThreadSafeRefCounted<AXIsolatedTreeNode> {
+class AXIsolatedTreeNode final : public AXCoreObject, public ThreadSafeRefCounted<AXIsolatedTreeNode> {
 
 public:
     enum class AXPropertyName : uint8_t {
@@ -95,7 +95,7 @@ private:
     AXIsolatedTreeNode(const AccessibilityObject&);
     void initializeAttributeData(const AccessibilityObject&);
 
-    AccessibilityObjectInterface* accessibilityHitTest(const IntPoint&) const override;
+    AXCoreObject* accessibilityHitTest(const IntPoint&) const override;
     void updateChildrenIfNecessary() override { }
 
     bool isMediaControlLabel() const override { return boolAttributeValue(AXPropertyName::IsMediaControlLabel); }
@@ -106,7 +106,7 @@ private:
     bool isImage() const override { return boolAttributeValue(AXPropertyName::IsImage); }
     bool isFileUploadButton() const override { return boolAttributeValue(AXPropertyName::IsFileUploadButton); }
     bool accessibilityIsIgnored() const override { return boolAttributeValue(AXPropertyName::IsAccessibilityIgnored); }
-    AccessibilityObjectInterface* parentObjectInterfaceUnignored() const override;
+    AXCoreObject* parentObjectInterfaceUnignored() const override;
     bool isTree() const override { return boolAttributeValue(AXPropertyName::IsTree); }
     bool isTreeItem() const override { return boolAttributeValue(AXPropertyName::IsTreeItem); }
     bool isScrollbar() const override { return boolAttributeValue(AXPropertyName::IsScrollbar); }
@@ -115,7 +115,7 @@ private:
     String descriptionAttributeValue() const override { return stringAttributeValue(AXPropertyName::Description); }
     String helpTextAttributeValue() const override { return stringAttributeValue(AXPropertyName::HelpText); }
     String titleAttributeValue() const override { return stringAttributeValue(AXPropertyName::Title); }
-    AccessibilityObjectInterface* focusedUIElement() const override;
+    AXCoreObject* focusedUIElement() const override;
 
     using AttributeValueVariant = Variant<std::nullptr_t, String, bool, int, unsigned, double, Optional<FloatRect>>;
     void setProperty(AXPropertyName, AttributeValueVariant&&, bool shouldRemove = false);
index 2f75f96..c9a893b 100644 (file)
@@ -276,7 +276,7 @@ static void AXPostNotificationWithUserInfo(AccessibilityObjectWrapper *object, N
     NSAccessibilityPostNotificationWithUserInfo(object, notification, userInfo);
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
+void AXObjectCache::postPlatformNotification(AXCoreObject* obj, AXNotification notification)
 {
     if (!obj)
         return;
index 6b95502..2cdbc73 100644 (file)
@@ -43,7 +43,7 @@ void AccessibilityObject::detachFromParent()
         overrideAttachmentParent(nullptr);
 }
 
-void AccessibilityObject::overrideAttachmentParent(AccessibilityObject* parent)
+void AccessibilityObject::overrideAttachmentParent(AXCoreObject* parent)
 {
     if (!isAttachment())
         return;
index ffed855..8858bea 100644 (file)
@@ -73,7 +73,7 @@ class VisiblePosition;
 - (BOOL)updateObjectBackingStore;
 
 // This can be either an AccessibilityObject or an AXIsolatedTreeNode
-- (WebCore::AccessibilityObjectInterface*)axBackingObject;
+- (WebCore::AXCoreObject*)axBackingObject;
 
 // These are pre-fixed with base so that AppKit does not end up calling into these directly (bypassing safety checks).
 - (NSString *)baseAccessibilityTitle;
index daf34f1..fa89b6a 100644 (file)
@@ -264,7 +264,7 @@ static NSArray *convertMathPairsToNSArray(const AccessibilityObject::Accessibili
     return array;
 }
 
-static void addChildToArray(AccessibilityObjectInterface& child, RetainPtr<NSMutableArray> array)
+static void addChildToArray(AXCoreObject& child, RetainPtr<NSMutableArray> array)
 {
     WebAccessibilityObjectWrapper *wrapper = child.wrapper();
     // We want to return the attachment view instead of the object representing the attachment,
@@ -306,7 +306,7 @@ NSArray *convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChild
         return nil;
 
     m_object = axObject;
-    _identifier = m_object->axObjectID();
+    _identifier = m_object->objectID();
 
     return self;
 }
@@ -386,7 +386,7 @@ NSArray *convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChild
     return _axBackingObject->titleAttributeValue();
 }
 
-- (WebCore::AccessibilityObjectInterface*)axBackingObject
+- (WebCore::AXCoreObject*)axBackingObject
 {
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
     if (_AXUIElementRequestServicedBySecondaryAXThread())
index 0150fca..c570949 100644 (file)
@@ -2667,15 +2667,15 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         
         // Tree item (changed to AXRows) can only report the tree (AXOutline) as its parent.
         if (_axBackingObject->isTreeItem()) {
-            auto parent = _axBackingObject->parentObjectInterfaceUnignored();
+            auto parent = _axBackingObject->parentObjectUnignored();
             while (parent) {
                 if (parent->isTree())
                     return parent->wrapper();
-                parent = parent->parentObjectInterfaceUnignored();
+                parent = parent->parentObjectUnignored();
             }
         }
         
-        auto parent = _axBackingObject->parentObjectInterfaceUnignored();
+        auto parent = _axBackingObject->parentObjectUnignored();
         if (!parent)
             return nil;
         
@@ -2861,14 +2861,14 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         
         // radio groups return the selected radio button as the AXValue
         if (m_object->isRadioGroup()) {
-            AccessibilityObject* radioButton = m_object->selectedRadioButton();
+            AXCoreObject* radioButton = m_object->selectedRadioButton();
             if (!radioButton)
                 return nil;
             return radioButton->wrapper();
         }
         
         if (m_object->isTabList()) {
-            AccessibilityObject* tabItem = m_object->selectedTabItem();
+            AXCoreObject* tabItem = m_object->selectedTabItem();
             if (!tabItem)
                 return nil;
             return tabItem->wrapper();
@@ -3063,7 +3063,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
             return convertToNSArray(column.children());
         }
         if ([attributeName isEqualToString:NSAccessibilityHeaderAttribute]) {
-            AccessibilityObject* header = column.headerObject();
+            AXCoreObject* header = column.headerObject();
             if (!header)
                 return nil;
             return header->wrapper();
@@ -3168,7 +3168,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
             }
             return nil;
         } else if (is<AccessibilityARIAGridRow>(*m_object)) {
-            AccessibilityObject* row = downcast<AccessibilityARIAGridRow>(*m_object).disclosedByRow();
+            AXCoreObject* row = downcast<AccessibilityARIAGridRow>(*m_object).disclosedByRow();
             if (!row)
                 return nil;
             return row->wrapper();
@@ -3511,7 +3511,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         return nil;
     
     _axBackingObject->updateChildrenIfNecessary();
-    AccessibilityObjectInterface* axObject = _axBackingObject->accessibilityHitTest(IntPoint(point));
+    AXCoreObject* axObject = _axBackingObject->accessibilityHitTest(IntPoint(point));
     if (axObject) {
         if (axObject->isAttachment() && [axObject->wrapper() attachmentView])
             return [axObject->wrapper() attachmentView];
index 4909a6b..312b020 100644 (file)
@@ -63,7 +63,7 @@ void AXObjectCache::handleScrolledToAnchor(const Node* anchorNode)
     postPlatformNotification(AccessibilityObject::firstAccessibleObjectFromNode(anchorNode), AXScrolledToAnchor);
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
+void AXObjectCache::postPlatformNotification(AXCoreObject* obj, AXNotification notification)
 {
     if (!obj)
         return;
@@ -117,10 +117,10 @@ void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotific
     // negate the AXID so we know that the caller is passing the ID of an
     // element, not the index of a child element.
 
-    ASSERT(obj->axObjectID() >= 1);
-    ASSERT(obj->axObjectID() <= std::numeric_limits<LONG>::max());
+    ASSERT(obj->objectID() >= 1);
+    ASSERT(obj->objectID() <= std::numeric_limits<LONG>::max());
 
-    NotifyWinEvent(msaaEvent, page->chrome().platformPageClient(), OBJID_CLIENT, -static_cast<LONG>(obj->axObjectID()));
+    NotifyWinEvent(msaaEvent, page->chrome().platformPageClient(), OBJID_CLIENT, -static_cast<LONG>(obj->objectID()));
 }
 
 void AXObjectCache::nodeTextChangePlatformNotification(AccessibilityObject*, AXTextChange, unsigned, const String&)
@@ -174,7 +174,7 @@ void AXObjectCache::platformHandleFocusedUIElementChanged(Node*, Node* newFocuse
     if (!page || !page->chrome().platformPageClient())
         return;
 
-    AccessibilityObject* focusedObject = focusedUIElementForPage(page);
+    AXCoreObject* focusedObject = focusedUIElementForPage(page);
     if (!focusedObject)
         return;
 
index 2935473..272e34b 100644 (file)
@@ -34,7 +34,7 @@
 
 namespace WebCore {
 
-static void emitTextSelectionChange(AccessibilityObject* object, VisibleSelection selection, int offset)
+static void emitTextSelectionChange(AXCoreObject* object, VisibleSelection selection, int offset)
 {
     auto* axObject = object->wrapper();
     if (!axObject || !ATK_IS_TEXT(axObject))
@@ -52,12 +52,12 @@ static void emitTextSelectionChange(AccessibilityObject* object, VisibleSelectio
         g_signal_emit_by_name(axObject, "text-selection-changed");
 }
 
-static void maybeEmitTextFocusChange(RefPtr<AccessibilityObject>&& object)
+static void maybeEmitTextFocusChange(RefPtr<AXCoreObject>&& object)
 {
     // This static variable is needed to keep track of the old object
     // as per previous calls to this function, in order to properly
     // decide whether to emit some signals or not.
-    static NeverDestroyed<RefPtr<AccessibilityObject>> oldObject;
+    static NeverDestroyed<RefPtr<AXCoreObject>> oldObject;
 
     // Ensure the oldObject belongs to the same document that the
     // current object so further comparisons make sense. Otherwise,
@@ -106,7 +106,7 @@ void FrameSelection::notifyAccessibilityForSelectionChange(const AXTextStateChan
         return;
 
     int offset;
-    RefPtr<AccessibilityObject> object = objectFocusedAndCaretOffsetUnignored(accessibilityObject, offset);
+    RefPtr<AXCoreObject> object = objectFocusedAndCaretOffsetUnignored(accessibilityObject, offset);
     if (!object)
         return;
 
index 1ce5c9a..e1e23a7 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "AXObjectCache.h"
 #include "AccessibilityNodeObject.h"
-#include "AccessibilityObject.h"
+#include "AccessibilityObjectInterface.h"
 #include "ContainerNode.h"
 #include "Document.h"
 #include "Element.h"
@@ -53,7 +53,7 @@ InspectorAuditAccessibilityObject::InspectorAuditAccessibilityObject(InspectorAu
 {
 }
 
-static AccessibilityObject* accessiblityObjectForNode(Node& node)
+static AXCoreObject* accessiblityObjectForNode(Node& node)
 {
     if (!AXObjectCache::accessibilityEnabled())
         AXObjectCache::enableAccessibility();
@@ -71,7 +71,7 @@ ExceptionOr<Vector<Ref<Node>>> InspectorAuditAccessibilityObject::getElementsByC
     Vector<Ref<Node>> nodes;
 
     for (Element& element : elementDescendants(is<ContainerNode>(container) ? downcast<ContainerNode>(*container) : document)) {
-        if (AccessibilityObject* axObject = accessiblityObjectForNode(element)) {
+        if (AXCoreObject* axObject = accessiblityObjectForNode(element)) {
             if (axObject->computedRoleString() == role)
                 nodes.append(element);
         }
@@ -84,17 +84,17 @@ ExceptionOr<RefPtr<Node>> InspectorAuditAccessibilityObject::getActiveDescendant
 {
     ERROR_IF_NO_ACTIVE_AUDIT();
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
-        if (AccessibilityObject* activeDescendant = axObject->activeDescendant())
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
+        if (AXCoreObject* activeDescendant = axObject->activeDescendant())
             return activeDescendant->node();
     }
 
     return nullptr;
 }
 
-static void addChildren(AccessibilityObject& parentObject, Vector<RefPtr<Node>>& childNodes)
+static void addChildren(AXCoreObject& parentObject, Vector<RefPtr<Node>>& childNodes)
 {
-    for (const RefPtr<AccessibilityObject>& childObject : parentObject.children()) {
+    for (const auto& childObject : parentObject.children()) {
         if (Node* childNode = childObject->node())
             childNodes.append(childNode);
         else
@@ -108,7 +108,7 @@ ExceptionOr<Optional<Vector<RefPtr<Node>>>> InspectorAuditAccessibilityObject::g
 
     Optional<Vector<RefPtr<Node>>> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         Vector<RefPtr<Node>> childNodes;
         addChildren(*axObject, childNodes);
         result = WTFMove(childNodes);
@@ -123,10 +123,10 @@ ExceptionOr<Optional<InspectorAuditAccessibilityObject::ComputedProperties>> Ins
 
     Optional<InspectorAuditAccessibilityObject::ComputedProperties> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         ComputedProperties computedProperties;
 
-        AccessibilityObject* current = axObject;
+        AXCoreObject* current = axObject;
         while (current && (!computedProperties.busy || !computedProperties.busy.value())) {
             computedProperties.busy = current->isBusy();
             current = current->parentObject();
@@ -247,7 +247,7 @@ ExceptionOr<Optional<Vector<RefPtr<Node>>>> InspectorAuditAccessibilityObject::g
 
     Optional<Vector<RefPtr<Node>>> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         Vector<RefPtr<Node>> controlledNodes;
 
         Vector<Element*> controlledElements;
@@ -269,7 +269,7 @@ ExceptionOr<Optional<Vector<RefPtr<Node>>>> InspectorAuditAccessibilityObject::g
 
     Optional<Vector<RefPtr<Node>>> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         Vector<RefPtr<Node>> flowedNodes;
 
         Vector<Element*> flowedElements;
@@ -289,7 +289,7 @@ ExceptionOr<RefPtr<Node>> InspectorAuditAccessibilityObject::getMouseEventNode(N
 {
     ERROR_IF_NO_ACTIVE_AUDIT();
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         if (is<AccessibilityNodeObject>(axObject))
             return downcast<AccessibilityNodeObject>(axObject)->mouseButtonListener(MouseButtonListenerResultFilter::IncludeBodyElement);
     }
@@ -303,7 +303,7 @@ ExceptionOr<Optional<Vector<RefPtr<Node>>>> InspectorAuditAccessibilityObject::g
 
     Optional<Vector<RefPtr<Node>>> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         if (axObject->supportsARIAOwns()) {
             Vector<RefPtr<Node>> ownedNodes;
 
@@ -325,8 +325,8 @@ ExceptionOr<RefPtr<Node>> InspectorAuditAccessibilityObject::getParentNode(Node&
 {
     ERROR_IF_NO_ACTIVE_AUDIT();
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
-        if (AccessibilityObject* parentObject = axObject->parentObjectUnignored())
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
+        if (AXCoreObject* parentObject = axObject->parentObjectUnignored())
             return parentObject->node();
     }
 
@@ -339,12 +339,12 @@ ExceptionOr<Optional<Vector<RefPtr<Node>>>> InspectorAuditAccessibilityObject::g
 
     Optional<Vector<RefPtr<Node>>> result;
 
-    if (AccessibilityObject* axObject = accessiblityObjectForNode(node)) {
+    if (AXCoreObject* axObject = accessiblityObjectForNode(node)) {
         Vector<RefPtr<Node>> selectedChildNodes;
 
-        AccessibilityObject::AccessibilityChildrenVector selectedChildren;
+        AXCoreObject::AccessibilityChildrenVector selectedChildren;
         axObject->selectedChildren(selectedChildren);
-        for (RefPtr<AccessibilityObject>& selectedChildObject : selectedChildren) {
+        for (auto& selectedChildObject : selectedChildren) {
             if (Node* selectedChildNode = selectedChildObject->node())
                 selectedChildNodes.append(selectedChildNode);
         }
index 604db52..3ead135 100644 (file)
@@ -1761,7 +1761,7 @@ Ref<Inspector::Protocol::DOM::EventListener> InspectorDOMAgent::buildObjectForEv
     return value;
 }
 
-void InspectorDOMAgent::processAccessibilityChildren(AccessibilityObject& axObject, JSON::ArrayOf<int>& childNodeIds)
+void InspectorDOMAgent::processAccessibilityChildren(AXCoreObject& axObject, JSON::ArrayOf<int>& childNodeIds)
 {
     const auto& children = axObject.children();
     if (!children.size())
@@ -1824,13 +1824,13 @@ RefPtr<Inspector::Protocol::DOM::AccessibilityProperties> InspectorDOMAgent::bui
     unsigned level = 0;
 
     if (AXObjectCache* axObjectCache = node->document().axObjectCache()) {
-        if (AccessibilityObject* axObject = axObjectCache->getOrCreate(node)) {
+        if (AXCoreObject* axObject = axObjectCache->getOrCreate(node)) {
 
-            if (AccessibilityObject* activeDescendant = axObject->activeDescendant())
+            if (AXCoreObject* activeDescendant = axObject->activeDescendant())
                 activeDescendantNode = activeDescendant->node();
 
             // An AX object is "busy" if it or any ancestor has aria-busy="true" set.
-            AccessibilityObject* current = axObject;
+            AXCoreObject* current = axObject;
             while (!busy && current) {
                 busy = current->isBusy();
                 current = current->parentObject();
@@ -1971,7 +1971,7 @@ RefPtr<Inspector::Protocol::DOM::AccessibilityProperties> InspectorDOMAgent::bui
                 }
             }
 
-            if (AccessibilityObject* parentObject = axObject->parentObjectUnignored())
+            if (AXCoreObject* parentObject = axObject->parentObjectUnignored())
                 parentNode = parentObject->node();
 
             supportsPressed = axObject->pressedIsPresent();
@@ -1988,7 +1988,7 @@ RefPtr<Inspector::Protocol::DOM::AccessibilityProperties> InspectorDOMAgent::bui
             role = axObject->computedRoleString();
             selected = axObject->isSelected();
 
-            AccessibilityObject::AccessibilityChildrenVector selectedChildren;
+            AXCoreObject::AccessibilityChildrenVector selectedChildren;
             axObject->selectedChildren(selectedChildren);
             if (selectedChildren.size()) {
                 selectedChildNodeIds = JSON::ArrayOf<int>::create();
index cb7beaa..d917e50 100644 (file)
@@ -52,7 +52,7 @@ class JSValue;
 
 namespace WebCore {
 
-class AccessibilityObject;
+class AXCoreObject;
 class CharacterData;
 class DOMEditor;
 class Document;
@@ -225,7 +225,7 @@ private:
     RefPtr<JSON::ArrayOf<Inspector::Protocol::DOM::Node>> buildArrayForPseudoElements(const Element&, NodeToIdMap* nodesMap);
     Ref<Inspector::Protocol::DOM::EventListener> buildObjectForEventListener(const RegisteredEventListener&, int identifier, EventTarget&, const AtomString& eventType, bool disabled, bool hasBreakpoint);
     RefPtr<Inspector::Protocol::DOM::AccessibilityProperties> buildObjectForAccessibilityProperties(Node*);
-    void processAccessibilityChildren(AccessibilityObject&, JSON::ArrayOf<int>&);
+    void processAccessibilityChildren(AXCoreObject&, JSON::ArrayOf<int>&);
     
     Node* nodeForPath(const String& path);
     Node* nodeForObjectId(const String& objectId);
index bb989d2..ea95c10 100644 (file)
@@ -1,3 +1,14 @@
+2019-10-30  Andres Gonzalez  <andresg_22@apple.com>
+
+        Create base class common to AccessibilityObject and AXIsolatedTreeNode.
+        https://bugs.webkit.org/show_bug.cgi?id=203408
+
+        Reviewed by Chris Fleizach.
+
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKAccessibilityRootObject):
+        (WKAccessibilityFocusedObject):
+
 2019-10-30  Chris Dumez  <cdumez@apple.com>
 
         Unreviewed, fix reversed assertion landed in r251778.
index 244e5b9..b8eaed9 100644 (file)
@@ -56,7 +56,7 @@
 #include "WebRenderLayer.h"
 #include "WebRenderObject.h"
 #include <WebCore/AXObjectCache.h>
-#include <WebCore/AccessibilityObject.h>
+#include <WebCore/AccessibilityObjectInterface.h>
 #include <WebCore/ApplicationCacheStorage.h>
 #include <WebCore/Frame.h>
 #include <WebCore/Page.h>
@@ -248,7 +248,7 @@ void* WKAccessibilityRootObject(WKBundlePageRef pageRef)
     
     WebCore::AXObjectCache::enableAccessibility();
 
-    WebCore::AccessibilityObject* root = core.document()->axObjectCache()->rootObject();
+    WebCore::AXCoreObject* root = core.document()->axObjectCache()->rootObject();
     if (!root)
         return 0;
     
@@ -271,7 +271,7 @@ void* WKAccessibilityFocusedObject(WKBundlePageRef pageRef)
 
     WebCore::AXObjectCache::enableAccessibility();
 
-    WebCore::AccessibilityObject* focusedObject = WebCore::AXObjectCache::focusedUIElementForPage(page);
+    WebCore::AXCoreObject* focusedObject = WebCore::AXObjectCache::focusedUIElementForPage(page);
     if (!focusedObject)
         return 0;
     
index 7bcce4b..ffd31fd 100644 (file)
@@ -303,7 +303,7 @@ HRESULT AccessibleBase::get_uniqueID(_Out_ long* uniqueID)
     if (!m_object)
         return E_FAIL;
 
-    *uniqueID = static_cast<long>(m_object->axObjectID());
+    *uniqueID = static_cast<long>(m_object->objectID());
     return S_OK;
 }
 
@@ -358,7 +358,7 @@ HRESULT AccessibleBase::get_accParent(_COM_Outptr_opt_ IDispatch** parent)
     if (!m_object)
         return E_FAIL;
 
-    AccessibilityObject* parentObject = m_object->parentObjectUnignored();
+    AccessibilityObject* parentObject = dynamic_cast<AccessibilityObject*>(m_object->parentObjectUnignored());
     if (parentObject) {
         *parent = wrapper(parentObject);
         (*parent)->AddRef();
@@ -643,7 +643,7 @@ HRESULT AccessibleBase::accSelect(long selectionFlags, VARIANT vChild)
 
     if (selectionFlags & SELFLAG_TAKESELECTION) {
         if (is<AccessibilityListBox>(*parentObject)) {
-            Vector<RefPtr<AccessibilityObject> > selectedChildren(1);
+            Vector<RefPtr<AXCoreObject> > selectedChildren(1);
             selectedChildren[0] = childObject;
             downcast<AccessibilityListBox>(*parentObject).setSelectedChildren(selectedChildren);
         } else { // any element may be selectable by virtue of it having the aria-selected property
@@ -1045,7 +1045,7 @@ HRESULT AccessibleBase::getAccessibilityObjectForChild(VARIANT vChild, Accessibi
 
         if (childIndex >= m_object->children().size())
             return E_FAIL;
-        childObj = m_object->children().at(childIndex).get();
+        childObj = dynamic_cast<AccessibilityObject*>(m_object->children().at(childIndex).get());
     }
 
     if (!childObj)