Changeset 224074 in webkit


Ignore:
Timestamp:
Oct 26, 2017, 5:37:06 PM (8 years ago)
Author:
achristensen@apple.com
Message:

Modernize AccessibilityObject.h
https://bugs.webkit.org/show_bug.cgi?id=178892

Reviewed by Tim Horton.

The enums in AccessibilityObject.h are causing naming collisions with unified builds.
This is what enum classes are for.
HashMaps of enum classes still need a few casts to/from int.

I also made some RefPtr's Ref's, use some initializer lists instead of values in the constructor implementation, and indentation fixing.

No change in behavior.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXComputedObjectAttributeCache::getIgnored const):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::notificationPostTimerFired):

  • accessibility/AXObjectCache.h:

(WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
(WebCore::AXComputedObjectAttributeCache::getIgnored const):

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::parentRowGroup const):

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::headerObject):

  • accessibility/AccessibilityAttachment.cpp:

(WebCore::AccessibilityAttachment::accessibilityText):

  • accessibility/AccessibilityAttachment.h:
  • accessibility/AccessibilityImageMapLink.cpp:

(WebCore::AccessibilityImageMapLink::roleValue const):
(WebCore::AccessibilityImageMapLink::accessibilityText):

  • accessibility/AccessibilityLabel.cpp:

(WebCore::childrenContainOnlyStaticText):

  • accessibility/AccessibilityLabel.h:
  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isUnorderedList const):
(WebCore::AccessibilityList::isOrderedList const):
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::roleValue const):

  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::setSelectedChildren):
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const):

  • accessibility/AccessibilityListBox.h:
  • accessibility/AccessibilityListBoxOption.h:
  • accessibility/AccessibilityMathMLElement.cpp:

(WebCore::AccessibilityMathMLElement::determineAccessibilityRole):
(WebCore::AccessibilityMathMLElement::isMathScriptObject const):
(WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaControl::accessibilityText):
(WebCore::AccessibilityMediaControl::roleValue const):

  • accessibility/AccessibilityMediaControls.h:
  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren):

  • accessibility/AccessibilityMenuList.h:
  • accessibility/AccessibilityMenuListOption.h:
  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const):

  • accessibility/AccessibilityMenuListPopup.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityNodeObject::isSearchField const):
(WebCore::AccessibilityNodeObject::isImage const):
(WebCore::AccessibilityNodeObject::isPasswordField const):
(WebCore::AccessibilityNodeObject::isInputImage const):
(WebCore::AccessibilityNodeObject::isProgressIndicator const):
(WebCore::AccessibilityNodeObject::isSlider const):
(WebCore::AccessibilityNodeObject::isMenuRelated const):
(WebCore::AccessibilityNodeObject::isMenu const):
(WebCore::AccessibilityNodeObject::isMenuBar const):
(WebCore::AccessibilityNodeObject::isMenuButton const):
(WebCore::AccessibilityNodeObject::isMenuItem const):
(WebCore::AccessibilityNodeObject::isEnabled const):
(WebCore::AccessibilityNodeObject::isChecked const):
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute const):
(WebCore::AccessibilityNodeObject::headingLevel const):
(WebCore::AccessibilityNodeObject::isHeading const):
(WebCore::AccessibilityNodeObject::isLink const):
(WebCore::AccessibilityNodeObject::isGroup const):
(WebCore::AccessibilityNodeObject::selectedRadioButton):
(WebCore::AccessibilityNodeObject::checkboxOrRadioValue const):
(WebCore::AccessibilityNodeObject::actionElement const):
(WebCore::AccessibilityNodeObject::alterSliderValue):
(WebCore::AccessibilityNodeObject::isGenericFocusableElement const):
(WebCore::AccessibilityNodeObject::menuElementForMenuButton const):
(WebCore::AccessibilityNodeObject::menuItemElementForMenu const):
(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::alternativeText const):
(WebCore::AccessibilityNodeObject::visibleText const):
(WebCore::AccessibilityNodeObject::helpText const):
(WebCore::AccessibilityNodeObject::accessibilityText):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
(WebCore::AccessibilityNodeObject::accessibilityDescription const):
(WebCore::AccessibilityNodeObject::roleIgnoresTitle const):
(WebCore::AccessibilityNodeObject::hierarchicalLevel const):
(WebCore::AccessibilityNodeObject::title const):
(WebCore::AccessibilityNodeObject::text const):
(WebCore::AccessibilityNodeObject::stringValue const):
(WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const):
(WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent const):
(WebCore::AccessibilityNodeObject::canSetSelectedAttribute const):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isBlockquote const):
(WebCore::AccessibilityObject::isTextControl const):
(WebCore::AccessibilityObject::isARIATextControl const):
(WebCore::AccessibilityObject::isLandmark const):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
(WebCore::AccessibilityObject::selectText):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::AccessibilityObject::isARIAControl):
(WebCore::AccessibilityObject::isRangeControl const):
(WebCore::AccessibilityObject::visiblePositionForBounds const):
(WebCore::AccessibilityObject::supportsARIAReadOnly const):
(WebCore::AccessibilityObject::ariaReadOnlyValue const):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::ariaTreeItemContent):
(WebCore::AccessibilityObject::ariaTreeItemDisclosedRows):
(WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
(WebCore::AccessibilityObject::actionVerb const):
(WebCore::AccessibilityObject::ariaCurrentState const):
(WebCore::AccessibilityObject::ariaCurrentValue const):
(WebCore::AccessibilityObject::orientation const):
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
(WebCore::AccessibilityObject::computedRoleString const):
(WebCore::AccessibilityObject::supportsPressAction const):
(WebCore::AccessibilityObject::sortDirection const):
(WebCore::AccessibilityObject::supportsExpanded const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::supportsChecked const):
(WebCore::AccessibilityObject::checkboxOrRadioValue const):
(WebCore::AccessibilityObject::scrollByPage const):
(WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::buttonRoleType const):
(WebCore::AccessibilityObject::isButton const):
(WebCore::AccessibilityObject::accessibilityIsIgnoredByDefault const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::accessibilityIsIgnored const):
(WebCore::AccessibilityObject::isContainedByPasswordField const):
(WebCore::AccessibilityObject::AccessibilityObject): Deleted.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityText::AccessibilityText):
(WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData):
(WebCore::AccessibilityObject::isImageMap const):
(WebCore::AccessibilityObject::isWebArea const):
(WebCore::AccessibilityObject::isCheckbox const):
(WebCore::AccessibilityObject::isRadioButton const):
(WebCore::AccessibilityObject::isListBox const):
(WebCore::AccessibilityObject::isSpinButton const):
(WebCore::AccessibilityObject::isSwitch const):
(WebCore::AccessibilityObject::isToggleButton const):
(WebCore::AccessibilityObject::isTabList const):
(WebCore::AccessibilityObject::isTabItem const):
(WebCore::AccessibilityObject::isRadioGroup const):
(WebCore::AccessibilityObject::isComboBox const):
(WebCore::AccessibilityObject::isTree const):
(WebCore::AccessibilityObject::isTreeGrid const):
(WebCore::AccessibilityObject::isTreeItem const):
(WebCore::AccessibilityObject::isScrollbar const):
(WebCore::AccessibilityObject::isListItem const):
(WebCore::AccessibilityObject::isScrollView const):
(WebCore::AccessibilityObject::isCanvas const):
(WebCore::AccessibilityObject::isPopUpButton const):
(WebCore::AccessibilityObject::isColorWell const):
(WebCore::AccessibilityObject::isSplitter const):
(WebCore::AccessibilityObject::isToolbar const):
(WebCore::AccessibilityObject::isSummary const):
(WebCore::AccessibilityObject::isStaticText const):
(WebCore::AccessibilityObject::ariaRoleAttribute const):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

  • accessibility/AccessibilityProgressIndicator.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObject const):
(WebCore::AccessibilityRenderObject::isAttachment const):
(WebCore::AccessibilityRenderObject::helpText const):
(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers const):
(WebCore::AccessibilityRenderObject::linkedUIElements const):
(WebCore::AccessibilityRenderObject::isAllowedChildOfTree const):
(WebCore::objectInclusionFromAltText):
(WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::selectedTextRange const):
(WebCore::AccessibilityRenderObject::isTabItemSelected const):
(WebCore::AccessibilityRenderObject::isFocused const):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::getDocumentLinks):
(WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
(WebCore::AccessibilityRenderObject::supportsExpandedTextValue const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::orientation const):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole const):
(WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren const):
(WebCore::AccessibilityRenderObject::canSetExpandedAttribute const):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic const):
(WebCore::AccessibilityRenderObject::canHaveSelectedChildren const):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
(WebCore::AccessibilityRenderObject::visibleChildren):
(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::actionVerb const):
(WebCore::msaaRoleForRenderer):
(WebCore::AccessibilityRenderObject::roleValueForMSAA const):

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::accessibilityText):
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
(WebCore::AccessibilitySVGElement::inheritsPresentationalRole const):
(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute const):
(WebCore::AccessibilitySVGElement::determineAccessibilityRole):

  • accessibility/AccessibilitySVGRoot.h:
  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::scrollBar):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::orientation const):

  • accessibility/AccessibilityScrollbar.h:
  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::orientation const):
(WebCore::AccessibilitySlider::addChildren):

  • accessibility/AccessibilitySlider.h:
  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::addChildren):

  • accessibility/AccessibilitySpinButton.h:
  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::hasARIARole const):
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::headerContainer):
(WebCore::AccessibilityTable::roleValue const):
(WebCore::AccessibilityTable::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTable::titleElementText const):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTableCell::determineAccessibilityRole):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::headerObject):

  • accessibility/AccessibilityTableColumn.h:
  • accessibility/AccessibilityTableHeaderContainer.h:
  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::determineAccessibilityRole):
(WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored const):

  • accessibility/AccessibilityTree.cpp:

(WebCore::AccessibilityTree::determineAccessibilityRole):

  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
(WebCore::AccessibilityObject::isInputTypePopupButton const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
(-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
(-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
(-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
(-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
(-[WebAccessibilityObjectWrapper accessibilitySortDirection]):

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]):
(-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]):
(-[WebAccessibilityObjectWrapperBase baseAccessibilityHelpText]):
(-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(createAccessibilityRoleMap):
(roleValueToNSString):
(-[WebAccessibilityObjectWrapper role]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

Location:
trunk/Source/WebCore
Files:
57 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r224070 r224074  
     12017-10-26  Alex Christensen  <achristensen@webkit.org>
     2
     3        Modernize AccessibilityObject.h
     4        https://bugs.webkit.org/show_bug.cgi?id=178892
     5
     6        Reviewed by Tim Horton.
     7
     8        The enums in AccessibilityObject.h are causing naming collisions with unified builds.
     9        This is what enum classes are for.
     10        HashMaps of enum classes still need a few casts to/from int.
     11       
     12        I also made some RefPtr's Ref's, use some initializer lists instead of values in the constructor implementation, and indentation fixing.
     13       
     14        No change in behavior.
     15
     16        * accessibility/AXObjectCache.cpp:
     17        (WebCore::AXComputedObjectAttributeCache::getIgnored const):
     18        (WebCore::AXObjectCache::~AXObjectCache):
     19        (WebCore::AXObjectCache::getOrCreate):
     20        (WebCore::AXObjectCache::remove):
     21        (WebCore::AXObjectCache::notificationPostTimerFired):
     22        * accessibility/AXObjectCache.h:
     23        (WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
     24        (WebCore::AXComputedObjectAttributeCache::getIgnored const):
     25        * accessibility/AccessibilityARIAGrid.cpp:
     26        (WebCore::AccessibilityARIAGrid::addChildren):
     27        * accessibility/AccessibilityARIAGridCell.cpp:
     28        (WebCore::AccessibilityARIAGridCell::parentRowGroup const):
     29        * accessibility/AccessibilityARIAGridRow.cpp:
     30        (WebCore::AccessibilityARIAGridRow::headerObject):
     31        * accessibility/AccessibilityAttachment.cpp:
     32        (WebCore::AccessibilityAttachment::accessibilityText):
     33        * accessibility/AccessibilityAttachment.h:
     34        * accessibility/AccessibilityImageMapLink.cpp:
     35        (WebCore::AccessibilityImageMapLink::roleValue const):
     36        (WebCore::AccessibilityImageMapLink::accessibilityText):
     37        * accessibility/AccessibilityLabel.cpp:
     38        (WebCore::childrenContainOnlyStaticText):
     39        * accessibility/AccessibilityLabel.h:
     40        * accessibility/AccessibilityList.cpp:
     41        (WebCore::AccessibilityList::isUnorderedList const):
     42        (WebCore::AccessibilityList::isOrderedList const):
     43        (WebCore::AccessibilityList::determineAccessibilityRole):
     44        (WebCore::AccessibilityList::roleValue const):
     45        * accessibility/AccessibilityListBox.cpp:
     46        (WebCore::AccessibilityListBox::setSelectedChildren):
     47        (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const):
     48        * accessibility/AccessibilityListBox.h:
     49        * accessibility/AccessibilityListBoxOption.h:
     50        * accessibility/AccessibilityMathMLElement.cpp:
     51        (WebCore::AccessibilityMathMLElement::determineAccessibilityRole):
     52        (WebCore::AccessibilityMathMLElement::isMathScriptObject const):
     53        (WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):
     54        * accessibility/AccessibilityMediaControls.cpp:
     55        (WebCore::AccessibilityMediaControl::accessibilityText):
     56        (WebCore::AccessibilityMediaControl::roleValue const):
     57        * accessibility/AccessibilityMediaControls.h:
     58        * accessibility/AccessibilityMenuList.cpp:
     59        (WebCore::AccessibilityMenuList::addChildren):
     60        * accessibility/AccessibilityMenuList.h:
     61        * accessibility/AccessibilityMenuListOption.h:
     62        * accessibility/AccessibilityMenuListPopup.cpp:
     63        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const):
     64        * accessibility/AccessibilityMenuListPopup.h:
     65        * accessibility/AccessibilityNodeObject.cpp:
     66        (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
     67        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
     68        (WebCore::AccessibilityNodeObject::canHaveChildren const):
     69        (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
     70        (WebCore::AccessibilityNodeObject::isSearchField const):
     71        (WebCore::AccessibilityNodeObject::isImage const):
     72        (WebCore::AccessibilityNodeObject::isPasswordField const):
     73        (WebCore::AccessibilityNodeObject::isInputImage const):
     74        (WebCore::AccessibilityNodeObject::isProgressIndicator const):
     75        (WebCore::AccessibilityNodeObject::isSlider const):
     76        (WebCore::AccessibilityNodeObject::isMenuRelated const):
     77        (WebCore::AccessibilityNodeObject::isMenu const):
     78        (WebCore::AccessibilityNodeObject::isMenuBar const):
     79        (WebCore::AccessibilityNodeObject::isMenuButton const):
     80        (WebCore::AccessibilityNodeObject::isMenuItem const):
     81        (WebCore::AccessibilityNodeObject::isEnabled const):
     82        (WebCore::AccessibilityNodeObject::isChecked const):
     83        (WebCore::AccessibilityNodeObject::supportsRequiredAttribute const):
     84        (WebCore::AccessibilityNodeObject::headingLevel const):
     85        (WebCore::AccessibilityNodeObject::isHeading const):
     86        (WebCore::AccessibilityNodeObject::isLink const):
     87        (WebCore::AccessibilityNodeObject::isGroup const):
     88        (WebCore::AccessibilityNodeObject::selectedRadioButton):
     89        (WebCore::AccessibilityNodeObject::checkboxOrRadioValue const):
     90        (WebCore::AccessibilityNodeObject::actionElement const):
     91        (WebCore::AccessibilityNodeObject::alterSliderValue):
     92        (WebCore::AccessibilityNodeObject::isGenericFocusableElement const):
     93        (WebCore::AccessibilityNodeObject::menuElementForMenuButton const):
     94        (WebCore::AccessibilityNodeObject::menuItemElementForMenu const):
     95        (WebCore::AccessibilityNodeObject::titleElementText const):
     96        (WebCore::AccessibilityNodeObject::alternativeText const):
     97        (WebCore::AccessibilityNodeObject::visibleText const):
     98        (WebCore::AccessibilityNodeObject::helpText const):
     99        (WebCore::AccessibilityNodeObject::accessibilityText):
     100        (WebCore::AccessibilityNodeObject::ariaLabeledByText const):
     101        (WebCore::AccessibilityNodeObject::accessibilityDescription const):
     102        (WebCore::AccessibilityNodeObject::roleIgnoresTitle const):
     103        (WebCore::AccessibilityNodeObject::hierarchicalLevel const):
     104        (WebCore::AccessibilityNodeObject::title const):
     105        (WebCore::AccessibilityNodeObject::text const):
     106        (WebCore::AccessibilityNodeObject::stringValue const):
     107        (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const):
     108        (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent const):
     109        (WebCore::AccessibilityNodeObject::canSetSelectedAttribute const):
     110        * accessibility/AccessibilityNodeObject.h:
     111        * accessibility/AccessibilityObject.cpp:
     112        (WebCore::AccessibilityObject::detach):
     113        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
     114        (WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
     115        (WebCore::AccessibilityObject::isBlockquote const):
     116        (WebCore::AccessibilityObject::isTextControl const):
     117        (WebCore::AccessibilityObject::isARIATextControl const):
     118        (WebCore::AccessibilityObject::isLandmark const):
     119        (WebCore::AccessibilityObject::findMatchingObjects):
     120        (WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
     121        (WebCore::AccessibilityObject::selectText):
     122        (WebCore::AccessibilityObject::isARIAInput):
     123        (WebCore::AccessibilityObject::isARIAControl):
     124        (WebCore::AccessibilityObject::isRangeControl const):
     125        (WebCore::AccessibilityObject::visiblePositionForBounds const):
     126        (WebCore::AccessibilityObject::supportsARIAReadOnly const):
     127        (WebCore::AccessibilityObject::ariaReadOnlyValue const):
     128        (WebCore::AccessibilityObject::headingElementForNode):
     129        (WebCore::AccessibilityObject::ariaTreeRows):
     130        (WebCore::AccessibilityObject::ariaTreeItemContent):
     131        (WebCore::AccessibilityObject::ariaTreeItemDisclosedRows):
     132        (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
     133        (WebCore::AccessibilityObject::actionVerb const):
     134        (WebCore::AccessibilityObject::ariaCurrentState const):
     135        (WebCore::AccessibilityObject::ariaCurrentValue const):
     136        (WebCore::AccessibilityObject::orientation const):
     137        (WebCore::initializeRoleMap):
     138        (WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
     139        (WebCore::AccessibilityObject::computedRoleString const):
     140        (WebCore::AccessibilityObject::supportsPressAction const):
     141        (WebCore::AccessibilityObject::sortDirection const):
     142        (WebCore::AccessibilityObject::supportsExpanded const):
     143        (WebCore::AccessibilityObject::isExpanded const):
     144        (WebCore::AccessibilityObject::supportsChecked const):
     145        (WebCore::AccessibilityObject::checkboxOrRadioValue const):
     146        (WebCore::AccessibilityObject::scrollByPage const):
     147        (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
     148        (WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
     149        (WebCore::AccessibilityObject::buttonRoleType const):
     150        (WebCore::AccessibilityObject::isButton const):
     151        (WebCore::AccessibilityObject::accessibilityIsIgnoredByDefault const):
     152        (WebCore::AccessibilityObject::defaultObjectInclusion const):
     153        (WebCore::AccessibilityObject::accessibilityIsIgnored const):
     154        (WebCore::AccessibilityObject::isContainedByPasswordField const):
     155        (WebCore::AccessibilityObject::AccessibilityObject): Deleted.
     156        * accessibility/AccessibilityObject.h:
     157        (WebCore::AccessibilityText::AccessibilityText):
     158        (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData):
     159        (WebCore::AccessibilityObject::isImageMap const):
     160        (WebCore::AccessibilityObject::isWebArea const):
     161        (WebCore::AccessibilityObject::isCheckbox const):
     162        (WebCore::AccessibilityObject::isRadioButton const):
     163        (WebCore::AccessibilityObject::isListBox const):
     164        (WebCore::AccessibilityObject::isSpinButton const):
     165        (WebCore::AccessibilityObject::isSwitch const):
     166        (WebCore::AccessibilityObject::isToggleButton const):
     167        (WebCore::AccessibilityObject::isTabList const):
     168        (WebCore::AccessibilityObject::isTabItem const):
     169        (WebCore::AccessibilityObject::isRadioGroup const):
     170        (WebCore::AccessibilityObject::isComboBox const):
     171        (WebCore::AccessibilityObject::isTree const):
     172        (WebCore::AccessibilityObject::isTreeGrid const):
     173        (WebCore::AccessibilityObject::isTreeItem const):
     174        (WebCore::AccessibilityObject::isScrollbar const):
     175        (WebCore::AccessibilityObject::isListItem const):
     176        (WebCore::AccessibilityObject::isScrollView const):
     177        (WebCore::AccessibilityObject::isCanvas const):
     178        (WebCore::AccessibilityObject::isPopUpButton const):
     179        (WebCore::AccessibilityObject::isColorWell const):
     180        (WebCore::AccessibilityObject::isSplitter const):
     181        (WebCore::AccessibilityObject::isToolbar const):
     182        (WebCore::AccessibilityObject::isSummary const):
     183        (WebCore::AccessibilityObject::isStaticText const):
     184        (WebCore::AccessibilityObject::ariaRoleAttribute const):
     185        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
     186        * accessibility/AccessibilityProgressIndicator.h:
     187        * accessibility/AccessibilityRenderObject.cpp:
     188        (WebCore::AccessibilityRenderObject::parentObject const):
     189        (WebCore::AccessibilityRenderObject::isAttachment const):
     190        (WebCore::AccessibilityRenderObject::helpText const):
     191        (WebCore::AccessibilityRenderObject::stringValue const):
     192        (WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const):
     193        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers const):
     194        (WebCore::AccessibilityRenderObject::linkedUIElements const):
     195        (WebCore::AccessibilityRenderObject::isAllowedChildOfTree const):
     196        (WebCore::objectInclusionFromAltText):
     197        (WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
     198        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
     199        (WebCore::AccessibilityRenderObject::selectedTextRange const):
     200        (WebCore::AccessibilityRenderObject::isTabItemSelected const):
     201        (WebCore::AccessibilityRenderObject::isFocused const):
     202        (WebCore::AccessibilityRenderObject::setSelectedRows):
     203        (WebCore::AccessibilityRenderObject::getDocumentLinks):
     204        (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
     205        (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
     206        (WebCore::AccessibilityRenderObject::supportsExpandedTextValue const):
     207        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     208        (WebCore::AccessibilityRenderObject::orientation const):
     209        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole const):
     210        (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren const):
     211        (WebCore::AccessibilityRenderObject::canSetExpandedAttribute const):
     212        (WebCore::AccessibilityRenderObject::addImageMapChildren):
     213        (WebCore::AccessibilityRenderObject::addTextFieldChildren):
     214        (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
     215        (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic const):
     216        (WebCore::AccessibilityRenderObject::canHaveSelectedChildren const):
     217        (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
     218        (WebCore::AccessibilityRenderObject::selectedChildren):
     219        (WebCore::AccessibilityRenderObject::visibleChildren):
     220        (WebCore::AccessibilityRenderObject::tabChildren):
     221        (WebCore::AccessibilityRenderObject::actionVerb const):
     222        (WebCore::msaaRoleForRenderer):
     223        (WebCore::AccessibilityRenderObject::roleValueForMSAA const):
     224        * accessibility/AccessibilitySVGElement.cpp:
     225        (WebCore::AccessibilitySVGElement::accessibilityText):
     226        (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
     227        (WebCore::AccessibilitySVGElement::inheritsPresentationalRole const):
     228        (WebCore::AccessibilitySVGElement::determineAriaRoleAttribute const):
     229        (WebCore::AccessibilitySVGElement::determineAccessibilityRole):
     230        * accessibility/AccessibilitySVGRoot.h:
     231        * accessibility/AccessibilityScrollView.cpp:
     232        (WebCore::AccessibilityScrollView::scrollBar):
     233        * accessibility/AccessibilityScrollView.h:
     234        * accessibility/AccessibilityScrollbar.cpp:
     235        (WebCore::AccessibilityScrollbar::orientation const):
     236        * accessibility/AccessibilityScrollbar.h:
     237        * accessibility/AccessibilitySlider.cpp:
     238        (WebCore::AccessibilitySlider::orientation const):
     239        (WebCore::AccessibilitySlider::addChildren):
     240        * accessibility/AccessibilitySlider.h:
     241        * accessibility/AccessibilitySpinButton.cpp:
     242        (WebCore::AccessibilitySpinButton::addChildren):
     243        * accessibility/AccessibilitySpinButton.h:
     244        * accessibility/AccessibilityTable.cpp:
     245        (WebCore::AccessibilityTable::hasARIARole const):
     246        (WebCore::AccessibilityTable::addChildren):
     247        (WebCore::AccessibilityTable::headerContainer):
     248        (WebCore::AccessibilityTable::roleValue const):
     249        (WebCore::AccessibilityTable::computeAccessibilityIsIgnored const):
     250        (WebCore::AccessibilityTable::titleElementText const):
     251        * accessibility/AccessibilityTableCell.cpp:
     252        (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const):
     253        (WebCore::AccessibilityTableCell::determineAccessibilityRole):
     254        * accessibility/AccessibilityTableColumn.cpp:
     255        (WebCore::AccessibilityTableColumn::headerObject):
     256        * accessibility/AccessibilityTableColumn.h:
     257        * accessibility/AccessibilityTableHeaderContainer.h:
     258        * accessibility/AccessibilityTableRow.cpp:
     259        (WebCore::AccessibilityTableRow::determineAccessibilityRole):
     260        (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored const):
     261        * accessibility/AccessibilityTree.cpp:
     262        (WebCore::AccessibilityTree::determineAccessibilityRole):
     263        * accessibility/ios/AccessibilityObjectIOS.mm:
     264        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
     265        (WebCore::AccessibilityObject::isInputTypePopupButton const):
     266        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     267        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
     268        (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
     269        (-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
     270        (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
     271        (-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
     272        (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
     273        (-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]):
     274        (-[WebAccessibilityObjectWrapper accessibilityTraits]):
     275        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     276        (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
     277        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
     278        (-[WebAccessibilityObjectWrapper accessibilityValue]):
     279        (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
     280        (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
     281        (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
     282        (-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
     283        (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
     284        (-[WebAccessibilityObjectWrapper accessibilitySortDirection]):
     285        * accessibility/mac/AccessibilityObjectMac.mm:
     286        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
     287        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
     288        (-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]):
     289        (-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]):
     290        (-[WebAccessibilityObjectWrapperBase baseAccessibilityHelpText]):
     291        (-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]):
     292        (createAccessibilitySearchKeyMap):
     293        (accessibilitySearchKeyForString):
     294        (accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
     295        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     296        (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
     297        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     298        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
     299        (createAccessibilityRoleMap):
     300        (roleValueToNSString):
     301        (-[WebAccessibilityObjectWrapper role]):
     302        (-[WebAccessibilityObjectWrapper subrole]):
     303        (-[WebAccessibilityObjectWrapper roleDescription]):
     304        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
     305        (-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
     306        (-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
     307        * inspector/InspectorDOMAgent.cpp:
     308        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
     309
    13102017-10-26  Youenn Fablet  <youenn@apple.com>
    2311
  • trunk/Source/WebCore/accessibility/AXObjectCache.cpp

    r222887 r224074  
    121121AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID id) const
    122122{
    123     HashMap<AXID, CachedAXObjectAttributes>::const_iterator it = m_idMapping.find(id);
    124     return it != m_idMapping.end() ? it->value.ignored : DefaultBehavior;
     123    auto it = m_idMapping.find(id);
     124    return it != m_idMapping.end() ? it->value.ignored : AccessibilityObjectInclusion::DefaultBehavior;
    125125}
    126126
     
    204204
    205205    for (const auto& object : m_objects.values()) {
    206         detachWrapper(object.get(), CacheDestroyed);
    207         object->detach(CacheDestroyed);
     206        detachWrapper(object.get(), AccessibilityDetachmentType::CacheDestroyed);
     207        object->detach(AccessibilityDetachmentType::CacheDestroyed);
    208208        removeAXID(object.get());
    209209    }
     
    648648    // will be filled in...
    649649    switch (role) {
    650     case ListBoxOptionRole:
     650    case AccessibilityRole::ListBoxOption:
    651651        obj = AccessibilityListBoxOption::create();
    652652        break;
    653     case ImageMapLinkRole:
     653    case AccessibilityRole::ImageMapLink:
    654654        obj = AccessibilityImageMapLink::create();
    655655        break;
    656     case ColumnRole:
     656    case AccessibilityRole::Column:
    657657        obj = AccessibilityTableColumn::create();
    658658        break;           
    659     case TableHeaderContainerRole:
     659    case AccessibilityRole::TableHeaderContainer:
    660660        obj = AccessibilityTableHeaderContainer::create();
    661661        break;   
    662     case SliderThumbRole:
     662    case AccessibilityRole::SliderThumb:
    663663        obj = AccessibilitySliderThumb::create();
    664664        break;
    665     case MenuListPopupRole:
     665    case AccessibilityRole::MenuListPopup:
    666666        obj = AccessibilityMenuListPopup::create();
    667667        break;
    668     case MenuListOptionRole:
     668    case AccessibilityRole::MenuListOption:
    669669        obj = AccessibilityMenuListOption::create();
    670670        break;
    671     case SpinButtonRole:
     671    case AccessibilityRole::SpinButton:
    672672        obj = AccessibilitySpinButton::create();
    673673        break;
    674     case SpinButtonPartRole:
     674    case AccessibilityRole::SpinButtonPart:
    675675        obj = AccessibilitySpinButtonPart::create();
    676676        break;
     
    700700        return;
    701701   
    702     detachWrapper(obj, ElementDestroyed);
    703     obj->detach(ElementDestroyed, this);
     702    detachWrapper(obj, AccessibilityDetachmentType::ElementDestroyed);
     703    obj->detach(AccessibilityDetachmentType::ElementDestroyed, this);
    704704    removeAXID(obj);
    705705   
     
    921921        if (notification == AXMenuOpened) {
    922922            obj->updateChildrenIfNecessary();
    923             if (obj->roleValue() != MenuRole)
     923            if (obj->roleValue() != AccessibilityRole::Menu)
    924924                continue;
    925925        }
  • trunk/Source/WebCore/accessibility/AXObjectCache.h

    r223728 r224074  
    9292private:
    9393    struct CachedAXObjectAttributes {
    94         CachedAXObjectAttributes() : ignored(DefaultBehavior) { }
     94        CachedAXObjectAttributes()
     95            : ignored(AccessibilityObjectInclusion::DefaultBehavior)
     96        { }
    9597
    9698        AccessibilityObjectInclusion ignored;
     
    467469   
    468470#if !HAVE(ACCESSIBILITY)
    469 inline AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID) const { return DefaultBehavior; }
     471inline AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID) const { return AccessibilityObjectInclusion::DefaultBehavior; }
    470472inline AccessibilityReplacedText::AccessibilityReplacedText(const VisibleSelection&) { }
    471473inline void AccessibilityReplacedText::postTextStateChangeNotification(AXObjectCache*, AXTextEditType, const String&, const VisibleSelection&) { }
  • trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp

    r223728 r224074  
    140140    // make the columns based on the number of columns in the first body
    141141    for (unsigned i = 0; i < columnCount; ++i) {
    142         auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(ColumnRole));
     142        auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(AccessibilityRole::Column));
    143143        column.setColumnIndex(static_cast<int>(i));
    144144        column.setParent(this);
  • trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp

    r223728 r224074  
    170170{
    171171    for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
    172         if (parent->hasTagName(theadTag) || parent->hasTagName(tbodyTag) || parent->hasTagName(tfootTag) || parent->roleValue() == RowGroupRole)
     172        if (parent->hasTagName(theadTag) || parent->hasTagName(tbodyTag) || parent->hasTagName(tfootTag) || parent->roleValue() == AccessibilityRole::RowGroup)
    173173            return parent;
    174174    }
  • trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp

    r223728 r224074  
    137137{
    138138    for (const auto& child : children()) {
    139         if (child->ariaRoleAttribute() == RowHeaderRole)
     139        if (child->ariaRoleAttribute() == AccessibilityRole::RowHeader)
    140140            return child.get();
    141141    }
  • trunk/Source/WebCore/accessibility/AccessibilityAttachment.cpp

    r201913 r224074  
    9696   
    9797    if (action.length())
    98         textOrder.append(AccessibilityText(action, ActionText));
     98        textOrder.append(AccessibilityText(action, AccessibilityTextSource::Action));
    9999
    100100    if (title.length())
    101         textOrder.append(AccessibilityText(title, TitleText));
     101        textOrder.append(AccessibilityText(title, AccessibilityTextSource::Title));
    102102
    103103    if (subtitle.length())
    104         textOrder.append(AccessibilityText(subtitle, SubtitleText));
     104        textOrder.append(AccessibilityText(subtitle, AccessibilityTextSource::Subtitle));
    105105}
    106106
  • trunk/Source/WebCore/accessibility/AccessibilityAttachment.h

    r208179 r224074  
    4343   
    4444private:
    45     AccessibilityRole roleValue() const override { return ButtonRole; }
     45    AccessibilityRole roleValue() const override { return AccessibilityRole::Button; }
    4646    bool isAttachmentElement() const override { return true; }
    4747
  • trunk/Source/WebCore/accessibility/AccessibilityImageMapLink.cpp

    r223728 r224074  
    6767{
    6868    if (!m_areaElement)
    69         return WebCoreLinkRole;
     69        return AccessibilityRole::WebCoreLink;
    7070   
    7171    const AtomicString& ariaRole = getAttribute(roleAttr);
     
    7373        return AccessibilityObject::ariaRoleToWebCoreRole(ariaRole);
    7474
    75     return WebCoreLinkRole;
     75    return AccessibilityRole::WebCoreLink;
    7676}
    7777   
     
    9898    String description = accessibilityDescription();
    9999    if (!description.isEmpty())
    100         textOrder.append(AccessibilityText(description, AlternativeText));
     100        textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative));
    101101
    102102    const AtomicString& titleText = getAttribute(titleAttr);
    103103    if (!titleText.isEmpty())
    104         textOrder.append(AccessibilityText(titleText, TitleTagText));
     104        textOrder.append(AccessibilityText(titleText, AccessibilityTextSource::TitleTag));
    105105
    106106    const AtomicString& summary = getAttribute(summaryAttr);
    107107    if (!summary.isEmpty())
    108         textOrder.append(AccessibilityText(summary, SummaryText));
     108        textOrder.append(AccessibilityText(summary, AccessibilityTextSource::Summary));
    109109}
    110110   
  • trunk/Source/WebCore/accessibility/AccessibilityLabel.cpp

    r223728 r224074  
    6666        return false;
    6767    for (const auto& child : children) {
    68         if (child->roleValue() == StaticTextRole)
     68        if (child->roleValue() == AccessibilityRole::StaticText)
    6969            continue;
    70         if (child->roleValue() == GroupRole) {
     70        if (child->roleValue() == AccessibilityRole::Group) {
    7171            if (!childrenContainOnlyStaticText(child->children()))
    7272                return false;
  • trunk/Source/WebCore/accessibility/AccessibilityLabel.h

    r208179 r224074  
    4343    explicit AccessibilityLabel(RenderObject*);
    4444    bool computeAccessibilityIsIgnored() const final;
    45     AccessibilityRole roleValue() const final { return LabelRole; }
     45    AccessibilityRole roleValue() const final { return AccessibilityRole::Label; }
    4646    bool isLabel() const final { return true; }
    4747    String stringValue() const final;
  • trunk/Source/WebCore/accessibility/AccessibilityList.cpp

    r223728 r224074  
    6868    // Since it can't be both, it's probably OK to say that it's an un-ordered list.
    6969    // On the Mac, there's no distinction to the client.
    70     if (ariaRoleAttribute() == ListRole)
     70    if (ariaRoleAttribute() == AccessibilityRole::List)
    7171        return true;
    7272   
     
    8080
    8181    // ARIA says a directory is like a static table of contents, which sounds like an ordered list.
    82     if (ariaRoleAttribute() == DirectoryRole)
     82    if (ariaRoleAttribute() == AccessibilityRole::Directory)
    8383        return true;
    8484
     
    130130   
    131131    // Directory is mapped to list for now, but does not adhere to the same heuristics.
    132     if (ariaRoleAttribute() == DirectoryRole)
    133         return ListRole;
     132    if (ariaRoleAttribute() == AccessibilityRole::Directory)
     133        return AccessibilityRole::List;
    134134   
    135135    // Heuristic to determine if this list is being used for layout or for content.
     
    141141    //   5. Otherwise it's a list (for now).
    142142   
    143     AccessibilityRole role = ListRole;
     143    AccessibilityRole role = AccessibilityRole::List;
    144144   
    145145    // Temporarily set role so that we can query children (otherwise canHaveChildren returns false).
     
    152152    // DescriptionLists are always semantically a description list, so do not apply heuristics.
    153153    if (isDescriptionList() && children.size())
    154         return DescriptionListRole;
     154        return AccessibilityRole::DescriptionList;
    155155
    156156    for (const auto& child : children) {
    157         if (child->ariaRoleAttribute() == ListItemRole)
     157        if (child->ariaRoleAttribute() == AccessibilityRole::ListItem)
    158158            listItemCount++;
    159         else if (child->roleValue() == ListItemRole) {
     159        else if (child->roleValue() == AccessibilityRole::ListItem) {
    160160            RenderObject* listItem = child->renderer();
    161161            if (!listItem)
     
    169169            } else if (listItem->node() && listItem->node()->hasTagName(liTag)) {
    170170                // Inline elements that are in a list with an explicit role should also count.
    171                 if (m_ariaRole == ListRole)
     171                if (m_ariaRole == AccessibilityRole::List)
    172172                    listItemCount++;
    173173
     
    182182    // Non <ul> lists and ARIA lists only need to have one child.
    183183    // <ul>, <ol> lists need to have visible markers.
    184     if (ariaRoleAttribute() != UnknownRole) {
     184    if (ariaRoleAttribute() != AccessibilityRole::Unknown) {
    185185        if (!listItemCount)
    186             role = ApplicationGroupRole;
     186            role = AccessibilityRole::ApplicationGroup;
    187187    } else if (!hasVisibleMarkers)
    188         role = GroupRole;
     188        role = AccessibilityRole::Group;
    189189
    190190    return role;
     
    193193AccessibilityRole AccessibilityList::roleValue() const
    194194{
    195     ASSERT(m_role != UnknownRole);
     195    ASSERT(m_role != AccessibilityRole::Unknown);
    196196    return m_role;
    197197}
  • trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp

    r223728 r224074  
    9797   
    9898    for (const auto& obj : children) {
    99         if (obj->roleValue() != ListBoxOptionRole)
     99        if (obj->roleValue() != AccessibilityRole::ListBoxOption)
    100100            continue;
    101                
     101
    102102        downcast<AccessibilityListBoxOption>(*obj).setSelected(true);
    103103    }
     
    137137        return nullptr;
    138138   
    139     AccessibilityObject& listBoxObject = *m_renderer->document().axObjectCache()->getOrCreate(ListBoxOptionRole);
     139    AccessibilityObject& listBoxObject = *m_renderer->document().axObjectCache()->getOrCreate(AccessibilityRole::ListBoxOption);
    140140    downcast<AccessibilityListBoxOption>(listBoxObject).setHTMLElement(element);
    141141   
  • trunk/Source/WebCore/accessibility/AccessibilityListBox.h

    r208384 r224074  
    4040    bool canSetSelectedChildrenAttribute() const override;
    4141    void setSelectedChildren(const AccessibilityChildrenVector&);
    42     AccessibilityRole roleValue() const override { return ListBoxRole; }
     42    AccessibilityRole roleValue() const override { return AccessibilityRole::ListBox; }
    4343       
    4444    void selectedChildren(AccessibilityChildrenVector&) override;
  • trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.h

    r208179 r224074  
    4646    void setHTMLElement(HTMLElement* element) { m_optionElement = element; }
    4747   
    48     AccessibilityRole roleValue() const override { return ListBoxOptionRole; }
     48    AccessibilityRole roleValue() const override { return AccessibilityRole::ListBoxOption; }
    4949    bool isSelected() const override;
    5050    bool isEnabled() const override;
  • trunk/Source/WebCore/accessibility/AccessibilityMathMLElement.cpp

    r223728 r224074  
    5252{
    5353    if (!m_renderer)
    54         return UnknownRole;
    55 
    56     if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)
     54        return AccessibilityRole::Unknown;
     55
     56    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown)
    5757        return m_ariaRole;
    5858
    5959    Node* node = m_renderer->node();
    6060    if (node && node->hasTagName(MathMLNames::mathTag))
    61         return DocumentMathRole;
     61        return AccessibilityRole::DocumentMath;
    6262
    6363    // It's not clear which role a platform should choose for a math element.
    6464    // Declaring a math element role should give flexibility to platforms to choose.
    65     return MathElementRole;
     65    return AccessibilityRole::MathElement;
    6666}
    6767
     
    207207        return false;
    208208
    209     return type == Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject();
     209    return type == AccessibilityMathScriptObjectType::Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject();
    210210}
    211211
     
    222222
    223223    AccessibilityMathMultiscriptPairs pairs;
    224     if (type == PreSubscript || type == PreSuperscript)
     224    if (type == AccessibilityMathMultiscriptObjectType::PreSubscript || type == AccessibilityMathMultiscriptObjectType::PreSuperscript)
    225225        parent->mathPrescripts(pairs);
    226226    else
     
    229229    for (const auto& pair : pairs) {
    230230        if (this == pair.first)
    231             return (type == PreSubscript || type == PostSubscript);
     231            return (type == AccessibilityMathMultiscriptObjectType::PreSubscript || type == AccessibilityMathMultiscriptObjectType::PostSubscript);
    232232        if (this == pair.second)
    233             return (type == PreSuperscript || type == PostSuperscript);
     233            return (type == AccessibilityMathMultiscriptObjectType::PreSuperscript || type == AccessibilityMathMultiscriptObjectType::PostSuperscript);
    234234    }
    235235
  • trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp

    r219237 r224074  
    143143    String description = accessibilityDescription();
    144144    if (!description.isEmpty())
    145         textOrder.append(AccessibilityText(description, AlternativeText));
     145        textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative));
    146146
    147147    String title = this->title();
    148148    if (!title.isEmpty())
    149         textOrder.append(AccessibilityText(title, AlternativeText));
     149        textOrder.append(AccessibilityText(title, AccessibilityTextSource::Alternative));
    150150
    151151    String helptext = helpText();
    152152    if (!helptext.isEmpty())
    153         textOrder.append(AccessibilityText(helptext, HelpText));
     153        textOrder.append(AccessibilityText(helptext, AccessibilityTextSource::Help));
    154154}
    155155   
     
    198198    case MediaShowClosedCaptionsButton:
    199199    case MediaHideClosedCaptionsButton:
    200         return ButtonRole;
     200        return AccessibilityRole::Button;
    201201
    202202    case MediaStatusDisplay:
    203         return StaticTextRole;
     203        return AccessibilityRole::StaticText;
    204204
    205205    case MediaTimelineContainer:
    206         return GroupRole;
     206        return AccessibilityRole::Group;
    207207
    208208    default:
     
    210210    }
    211211
    212     return UnknownRole;
    213 }
    214 
     212    return AccessibilityRole::Unknown;
     213}
    215214
    216215
  • trunk/Source/WebCore/accessibility/AccessibilityMediaControls.h

    r223728 r224074  
    7979    virtual ~AccessibilityMediaControlsContainer() = default;
    8080
    81     AccessibilityRole roleValue() const override { return ToolbarRole; }
     81    AccessibilityRole roleValue() const override { return AccessibilityRole::Toolbar; }
    8282
    8383    String helpText() const override;
     
    9797    virtual ~AccessibilityMediaTimeDisplay() = default;
    9898
    99     AccessibilityRole roleValue() const override { return ApplicationTimerRole; }
     99    AccessibilityRole roleValue() const override { return AccessibilityRole::ApplicationTimer; }
    100100
    101101    String stringValue() const override;
  • trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp

    r223151 r224074  
    6666        return;
    6767   
    68     AccessibilityObject* list = cache->getOrCreate(MenuListPopupRole);
     68    AccessibilityObject* list = cache->getOrCreate(AccessibilityRole::MenuListPopup);
    6969    if (!list)
    7070        return;
  • trunk/Source/WebCore/accessibility/AccessibilityMenuList.h

    r208179 r224074  
    4545
    4646    bool isMenuList() const override { return true; }
    47     AccessibilityRole roleValue() const override { return PopUpButtonRole; }
     47    AccessibilityRole roleValue() const override { return AccessibilityRole::PopUpButton; }
    4848    bool canSetFocusAttribute() const override;
    4949
  • trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.h

    r208179 r224074  
    4343    bool isMenuListOption() const override { return true; }
    4444
    45     AccessibilityRole roleValue() const override { return MenuListOptionRole; }
     45    AccessibilityRole roleValue() const override { return AccessibilityRole::MenuListOption; }
    4646    bool canHaveChildren() const override { return false; }
    4747
  • trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp

    r174898 r224074  
    7474        return nullptr;
    7575
    76     auto& option = downcast<AccessibilityMenuListOption>(*document()->axObjectCache()->getOrCreate(MenuListOptionRole));
     76    auto& option = downcast<AccessibilityMenuListOption>(*document()->axObjectCache()->getOrCreate(AccessibilityRole::MenuListOption));
    7777    option.setElement(element);
    7878
  • trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h

    r208179 r224074  
    4949
    5050    LayoutRect elementRect() const override { return LayoutRect(); }
    51     AccessibilityRole roleValue() const override { return MenuListPopupRole; }
     51    AccessibilityRole roleValue() const override { return AccessibilityRole::MenuListPopup; }
    5252
    5353    bool isVisible() const override;
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r223126 r224074  
    8484AccessibilityNodeObject::AccessibilityNodeObject(Node* node)
    8585    : AccessibilityObject()
    86     , m_ariaRole(UnknownRole)
    87     , m_roleForMSAA(UnknownRole)
    88 #ifndef NDEBUG
    89     , m_initialized(false)
    90 #endif
    9186    , m_node(node)
    9287{
     
    283278{
    284279    if (!node())
    285         return UnknownRole;
    286 
    287     if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)
     280        return AccessibilityRole::Unknown;
     281
     282    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown)
    288283        return m_ariaRole;
    289284   
    290285    if (node()->isLink())
    291         return WebCoreLinkRole;
     286        return AccessibilityRole::WebCoreLink;
    292287    if (node()->isTextNode())
    293         return StaticTextRole;
     288        return AccessibilityRole::StaticText;
    294289    if (node()->hasTagName(buttonTag))
    295290        return buttonRoleType();
     
    297292        HTMLInputElement& input = downcast<HTMLInputElement>(*node());
    298293        if (input.isCheckbox())
    299             return CheckBoxRole;
     294            return AccessibilityRole::CheckBox;
    300295        if (input.isRadioButton())
    301             return RadioButtonRole;
     296            return AccessibilityRole::RadioButton;
    302297        if (input.isTextButton())
    303298            return buttonRoleType();
    304299        if (input.isRangeControl())
    305             return SliderRole;
     300            return AccessibilityRole::Slider;
    306301        if (input.isInputTypeHidden())
    307             return IgnoredRole;
     302            return AccessibilityRole::Ignored;
    308303        if (input.isSearchField())
    309             return SearchFieldRole;
     304            return AccessibilityRole::SearchField;
    310305#if ENABLE(INPUT_TYPE_COLOR)
    311306        if (input.isColorControl())
    312             return ColorWellRole;
     307            return AccessibilityRole::ColorWell;
    313308#endif
    314         return TextFieldRole;
     309        return AccessibilityRole::TextField;
    315310    }
    316311    if (node()->hasTagName(selectTag)) {
    317312        HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*node());
    318         return selectElement.multiple() ? ListBoxRole : PopUpButtonRole;
     313        return selectElement.multiple() ? AccessibilityRole::ListBox : AccessibilityRole::PopUpButton;
    319314    }
    320315    if (is<HTMLTextAreaElement>(*node()))
    321         return TextAreaRole;
     316        return AccessibilityRole::TextArea;
    322317    if (headingLevel())
    323         return HeadingRole;
     318        return AccessibilityRole::Heading;
    324319    if (node()->hasTagName(blockquoteTag))
    325         return BlockquoteRole;
     320        return AccessibilityRole::Blockquote;
    326321    if (node()->hasTagName(divTag))
    327         return DivRole;
     322        return AccessibilityRole::Div;
    328323    if (node()->hasTagName(pTag))
    329         return ParagraphRole;
     324        return AccessibilityRole::Paragraph;
    330325    if (is<HTMLLabelElement>(*node()))
    331         return LabelRole;
     326        return AccessibilityRole::Label;
    332327    if (is<Element>(*node()) && downcast<Element>(*node()).isFocusable())
    333         return GroupRole;
    334    
    335     return UnknownRole;
     328        return AccessibilityRole::Group;
     329   
     330    return AccessibilityRole::Unknown;
    336331}
    337332
     
    371366    // Elements that should not have children
    372367    switch (roleValue()) {
    373     case ImageRole:
    374     case ButtonRole:
    375     case PopUpButtonRole:
    376     case CheckBoxRole:
    377     case RadioButtonRole:
    378     case TabRole:
    379     case ToggleButtonRole:
    380     case StaticTextRole:
    381     case ListBoxOptionRole:
    382     case ScrollBarRole:
    383     case ProgressIndicatorRole:
    384     case SwitchRole:
    385     case MenuItemCheckboxRole:
    386     case MenuItemRadioRole:
    387     case SplitterRole:
    388         return false;
    389     case DocumentMathRole:
     368    case AccessibilityRole::Image:
     369    case AccessibilityRole::Button:
     370    case AccessibilityRole::PopUpButton:
     371    case AccessibilityRole::CheckBox:
     372    case AccessibilityRole::RadioButton:
     373    case AccessibilityRole::Tab:
     374    case AccessibilityRole::ToggleButton:
     375    case AccessibilityRole::StaticText:
     376    case AccessibilityRole::ListBoxOption:
     377    case AccessibilityRole::ScrollBar:
     378    case AccessibilityRole::ProgressIndicator:
     379    case AccessibilityRole::Switch:
     380    case AccessibilityRole::MenuItemCheckbox:
     381    case AccessibilityRole::MenuItemRadio:
     382    case AccessibilityRole::Splitter:
     383        return false;
     384    case AccessibilityRole::DocumentMath:
    390385#if ENABLE(MATHML)
    391386        return node()->isMathMLElement();
     
    418413
    419414    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    420     if (decision == IncludeObject)
    421         return false;
    422     if (decision == IgnoreObject)
     415    if (decision == AccessibilityObjectInclusion::IncludeObject)
     416        return false;
     417    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    423418        return true;
    424419    // If this element is within a parent that cannot have children, it should not be exposed.
     
    426421        return true;
    427422
    428     if (roleValue() == IgnoredRole)
    429         return true;
    430    
    431     return m_role == UnknownRole;
     423    if (roleValue() == AccessibilityRole::Ignored)
     424        return true;
     425   
     426    return m_role == AccessibilityRole::Unknown;
    432427}
    433428
     
    472467        return false;
    473468
    474     if (roleValue() == SearchFieldRole)
     469    if (roleValue() == AccessibilityRole::SearchField)
    475470        return true;
    476471
     
    519514bool AccessibilityNodeObject::isImage() const
    520515{
    521     return roleValue() == ImageRole;
     516    return roleValue() == AccessibilityRole::Image;
    522517}
    523518
     
    528523        return false;
    529524
    530     if (ariaRoleAttribute() != UnknownRole)
     525    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
    531526        return false;
    532527
     
    556551{
    557552    Node* node = this->node();
    558     if (is<HTMLInputElement>(node) && roleValue() == ButtonRole) {
     553    if (is<HTMLInputElement>(node) && roleValue() == AccessibilityRole::Button) {
    559554        HTMLInputElement& input = downcast<HTMLInputElement>(*node);
    560555        return input.isImageButton();
     
    566561bool AccessibilityNodeObject::isProgressIndicator() const
    567562{
    568     return roleValue() == ProgressIndicatorRole;
     563    return roleValue() == AccessibilityRole::ProgressIndicator;
    569564}
    570565
    571566bool AccessibilityNodeObject::isSlider() const
    572567{
    573     return roleValue() == SliderRole;
     568    return roleValue() == AccessibilityRole::Slider;
    574569}
    575570
     
    577572{
    578573    switch (roleValue()) {
    579     case MenuRole:
    580     case MenuBarRole:
    581     case MenuButtonRole:
    582     case MenuItemRole:
    583     case MenuItemCheckboxRole:
    584     case MenuItemRadioRole:
     574    case AccessibilityRole::Menu:
     575    case AccessibilityRole::MenuBar:
     576    case AccessibilityRole::MenuButton:
     577    case AccessibilityRole::MenuItem:
     578    case AccessibilityRole::MenuItemCheckbox:
     579    case AccessibilityRole::MenuItemRadio:
    585580        return true;
    586581    default:
     
    591586bool AccessibilityNodeObject::isMenu() const
    592587{
    593     return roleValue() == MenuRole;
     588    return roleValue() == AccessibilityRole::Menu;
    594589}
    595590
    596591bool AccessibilityNodeObject::isMenuBar() const
    597592{
    598     return roleValue() == MenuBarRole;
     593    return roleValue() == AccessibilityRole::MenuBar;
    599594}
    600595
    601596bool AccessibilityNodeObject::isMenuButton() const
    602597{
    603     return roleValue() == MenuButtonRole;
     598    return roleValue() == AccessibilityRole::MenuButton;
    604599}
    605600
     
    607602{
    608603    switch (roleValue()) {
    609     case MenuItemRole:
    610     case MenuItemRadioRole:
    611     case MenuItemCheckboxRole:
     604    case AccessibilityRole::MenuItem:
     605    case AccessibilityRole::MenuItemRadio:
     606    case AccessibilityRole::MenuItemCheckbox:
    612607        return true;
    613608    default:
     
    637632    }
    638633   
    639     if (roleValue() == HorizontalRuleRole)
     634    if (roleValue() == AccessibilityRole::HorizontalRule)
    640635        return false;
    641636   
     
    683678    bool validRole = false;
    684679    switch (ariaRoleAttribute()) {
    685     case RadioButtonRole:
    686     case CheckBoxRole:
    687     case MenuItemRole:
    688     case MenuItemCheckboxRole:
    689     case MenuItemRadioRole:
    690     case SwitchRole:
     680    case AccessibilityRole::RadioButton:
     681    case AccessibilityRole::CheckBox:
     682    case AccessibilityRole::MenuItem:
     683    case AccessibilityRole::MenuItemCheckbox:
     684    case AccessibilityRole::MenuItemRadio:
     685    case AccessibilityRole::Switch:
    691686        validRole = true;
    692687        break;
     
    737732{
    738733    switch (roleValue()) {
    739     case ButtonRole:
     734    case AccessibilityRole::Button:
    740735        return isFileUploadButton();
    741     case CellRole:
    742     case ColumnHeaderRole:
    743     case CheckBoxRole:
    744     case ComboBoxRole:
    745     case GridRole:
    746     case GridCellRole:
    747     case IncrementorRole:
    748     case ListBoxRole:
    749     case PopUpButtonRole:
    750     case RadioButtonRole:
    751     case RadioGroupRole:
    752     case RowHeaderRole:
    753     case SliderRole:
    754     case SpinButtonRole:
    755     case TableHeaderContainerRole:
    756     case TextAreaRole:
    757     case TextFieldRole:
    758     case ToggleButtonRole:
     736    case AccessibilityRole::Cell:
     737    case AccessibilityRole::ColumnHeader:
     738    case AccessibilityRole::CheckBox:
     739    case AccessibilityRole::ComboBox:
     740    case AccessibilityRole::Grid:
     741    case AccessibilityRole::GridCell:
     742    case AccessibilityRole::Incrementor:
     743    case AccessibilityRole::ListBox:
     744    case AccessibilityRole::PopUpButton:
     745    case AccessibilityRole::RadioButton:
     746    case AccessibilityRole::RadioGroup:
     747    case AccessibilityRole::RowHeader:
     748    case AccessibilityRole::Slider:
     749    case AccessibilityRole::SpinButton:
     750    case AccessibilityRole::TableHeaderContainer:
     751    case AccessibilityRole::TextArea:
     752    case AccessibilityRole::TextField:
     753    case AccessibilityRole::ToggleButton:
    759754        return true;
    760755    default:
     
    796791    // The implicit value of aria-level is 2 for the heading role.
    797792    // https://www.w3.org/TR/wai-aria-1.1/#heading
    798     if (ariaRoleAttribute() == HeadingRole)
     793    if (ariaRoleAttribute() == AccessibilityRole::Heading)
    799794        return 2;
    800795
     
    877872bool AccessibilityNodeObject::isHeading() const
    878873{
    879     return roleValue() == HeadingRole;
     874    return roleValue() == AccessibilityRole::Heading;
    880875}
    881876
    882877bool AccessibilityNodeObject::isLink() const
    883878{
    884     return roleValue() == WebCoreLinkRole;
     879    return roleValue() == AccessibilityRole::WebCoreLink;
    885880}
    886881
     
    906901{
    907902    AccessibilityRole role = roleValue();
    908     return role == GroupRole || role == TextGroupRole || role == ApplicationGroupRole || role == ApplicationTextGroupRole;
     903    return role == AccessibilityRole::Group || role == AccessibilityRole::TextGroup || role == AccessibilityRole::ApplicationGroup || role == AccessibilityRole::ApplicationTextGroup;
    909904}
    910905
     
    916911    // Find the child radio button that is selected (ie. the intValue == 1).
    917912    for (const auto& child : children()) {
    918         if (child->roleValue() == RadioButtonRole && child->checkboxOrRadioValue() == ButtonStateOn)
     913        if (child->roleValue() == AccessibilityRole::RadioButton && child->checkboxOrRadioValue() == AccessibilityButtonState::On)
    919914            return child.get();
    920915    }
     
    942937{
    943938    if (isNativeCheckboxOrRadio())
    944         return isIndeterminate() ? ButtonStateMixed : isChecked() ? ButtonStateOn : ButtonStateOff;
     939        return isIndeterminate() ? AccessibilityButtonState::Mixed : isChecked() ? AccessibilityButtonState::On : AccessibilityButtonState::Off;
    945940
    946941    return AccessibilityObject::checkboxOrRadioValue();
     
    10091004
    10101005    switch (roleValue()) {
    1011     case ButtonRole:
    1012     case PopUpButtonRole:
    1013     case ToggleButtonRole:
    1014     case TabRole:
    1015     case MenuItemRole:
    1016     case MenuItemCheckboxRole:
    1017     case MenuItemRadioRole:
    1018     case ListItemRole:
     1006    case AccessibilityRole::Button:
     1007    case AccessibilityRole::PopUpButton:
     1008    case AccessibilityRole::ToggleButton:
     1009    case AccessibilityRole::Tab:
     1010    case AccessibilityRole::MenuItem:
     1011    case AccessibilityRole::MenuItemCheckbox:
     1012    case AccessibilityRole::MenuItemRadio:
     1013    case AccessibilityRole::ListItem:
    10191014        // Check if the author is hiding the real control element inside the ARIA element.
    10201015        if (Element* nativeElement = nativeActionElement(node))
     
    10671062void AccessibilityNodeObject::alterSliderValue(bool increase)
    10681063{
    1069     if (roleValue() != SliderRole)
     1064    if (roleValue() != AccessibilityRole::Slider)
    10701065        return;
    10711066
     
    11261121   
    11271122    AccessibilityRole role = roleValue();
    1128     if (role == VideoRole || role == AudioRole)
     1123    if (role == AccessibilityRole::Video || role == AccessibilityRole::Audio)
    11291124        return false;
    11301125
    11311126    // If it has an aria role, it's not generic.
    1132     if (m_ariaRole != UnknownRole)
     1127    if (m_ariaRole != AccessibilityRole::Unknown)
    11331128        return false;
    11341129
     
    11421137    // The web area and body element are both focusable, but existing logic handles these
    11431138    // cases already, so we don't need to include them here.
    1144     if (role == WebAreaRole)
     1139    if (role == AccessibilityRole::WebArea)
    11451140        return false;
    11461141    if (node() && node()->hasTagName(bodyTag))
     
    11491144    // An SVG root is focusable by default, but it's probably not interactive, so don't
    11501145    // include it. It can still be made accessible by giving it an ARIA role.
    1151     if (role == SVGRootRole)
     1146    if (role == AccessibilityRole::SVGRoot)
    11521147        return false;
    11531148
     
    12001195Element* AccessibilityNodeObject::menuElementForMenuButton() const
    12011196{
    1202     if (ariaRoleAttribute() != MenuButtonRole)
     1197    if (ariaRoleAttribute() != AccessibilityRole::MenuButton)
    12031198        return nullptr;
    12041199
     
    12151210Element* AccessibilityNodeObject::menuItemElementForMenu() const
    12161211{
    1217     if (ariaRoleAttribute() != MenuRole)
     1212    if (ariaRoleAttribute() != AccessibilityRole::Menu)
    12181213        return nullptr;
    12191214   
     
    12991294           
    13001295            // Only use the <label> text if there's no ARIA override.
    1301             if (!innerText.isEmpty() && !ariaAccessibilityDescription())
    1302                 textOrder.append(AccessibilityText(innerText, isMeter() ? AlternativeText : LabelByElementText, labelObject));
     1296            if (labelObject && !innerText.isEmpty() && !ariaAccessibilityDescription())
     1297                textOrder.append(AccessibilityText(innerText, isMeter() ? AccessibilityTextSource::Alternative : AccessibilityTextSource::LabelByElement, *labelObject));
    13031298            return;
    13041299        }
     
    13071302    AccessibilityObject* titleUIElement = this->titleUIElement();
    13081303    if (titleUIElement)
    1309         textOrder.append(AccessibilityText(String(), LabelByElementText, titleUIElement));
     1304        textOrder.append(AccessibilityText(String(), AccessibilityTextSource::LabelByElement, *titleUIElement));
    13101305}
    13111306
     
    13151310        String webAreaText = alternativeTextForWebArea();
    13161311        if (!webAreaText.isEmpty())
    1317             textOrder.append(AccessibilityText(webAreaText, AlternativeText));
     1312            textOrder.append(AccessibilityText(webAreaText, AccessibilityTextSource::Alternative));
    13181313        return;
    13191314    }
     
    13231318    const AtomicString& ariaLabel = getAttribute(aria_labelAttr);
    13241319    if (!ariaLabel.isEmpty())
    1325         textOrder.append(AccessibilityText(ariaLabel, AlternativeText));
     1320        textOrder.append(AccessibilityText(ariaLabel, AccessibilityTextSource::Alternative));
    13261321   
    13271322    if (usesAltTagForTextComputation()) {
     
    13311326            // RenderImage will return title as a fallback from altText, but we don't want title here because we consider that in helpText.
    13321327            if (!renderAltText.isEmpty() && renderAltText != getAttribute(titleAttr)) {
    1333                 textOrder.append(AccessibilityText(renderAltText, AlternativeText));
     1328                textOrder.append(AccessibilityText(renderAltText, AccessibilityTextSource::Alternative));
    13341329                return;
    13351330            }
     
    13391334        const AtomicString& alt = getAttribute(altAttr);
    13401335        if (!alt.isEmpty())
    1341             textOrder.append(AccessibilityText(alt, AlternativeText));
     1336            textOrder.append(AccessibilityText(alt, AccessibilityTextSource::Alternative));
    13421337    }
    13431338   
     
    13501345        AccessibilityObject* object = axObjectCache()->getOrCreate(downcast<HTMLFieldSetElement>(*node).legend());
    13511346        if (object && !object->isHidden())
    1352             textOrder.append(AccessibilityText(accessibleNameForNode(object->node()), AlternativeText));
     1347            textOrder.append(AccessibilityText(accessibleNameForNode(object->node()), AccessibilityTextSource::Alternative));
    13531348    }
    13541349   
     
    13571352        AccessibilityObject* captionForFigure = this->captionForFigure();
    13581353        if (captionForFigure && !captionForFigure->isHidden())
    1359             textOrder.append(AccessibilityText(accessibleNameForNode(captionForFigure->node()), AlternativeText));
     1354            textOrder.append(AccessibilityText(accessibleNameForNode(captionForFigure->node()), AccessibilityTextSource::Alternative));
    13601355    }
    13611356   
    13621357    // Tree items missing a label are labeled by all child elements.
    13631358    if (isTreeItem() && ariaLabel.isEmpty() && ariaLabeledByAttribute().isEmpty())
    1364         textOrder.append(AccessibilityText(accessibleNameForNode(node), AlternativeText));
     1359        textOrder.append(AccessibilityText(accessibleNameForNode(node), AccessibilityTextSource::Alternative));
    13651360   
    13661361#if ENABLE(MATHML)
    13671362    if (node->isMathMLElement())
    1368         textOrder.append(AccessibilityText(getAttribute(MathMLNames::alttextAttr), AlternativeText));
     1363        textOrder.append(AccessibilityText(getAttribute(MathMLNames::alttextAttr), AccessibilityTextSource::Alternative));
    13691364#endif
    13701365}
     
    13801375        HTMLInputElement& input = downcast<HTMLInputElement>(*node);
    13811376        if (input.isTextButton()) {
    1382             textOrder.append(AccessibilityText(input.valueWithDefault(), VisibleText));
     1377            textOrder.append(AccessibilityText(input.valueWithDefault(), AccessibilityTextSource::Visible));
    13831378            return;
    13841379        }
     
    13921387   
    13931388    switch (roleValue()) {
    1394     case PopUpButtonRole:
     1389    case AccessibilityRole::PopUpButton:
    13951390        // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue().
    13961391        if (node->hasTagName(selectTag))
    13971392            break;
    13981393        FALLTHROUGH;
    1399     case ButtonRole:
    1400     case ToggleButtonRole:
    1401     case CheckBoxRole:
    1402     case ListBoxOptionRole:
     1394    case AccessibilityRole::Button:
     1395    case AccessibilityRole::ToggleButton:
     1396    case AccessibilityRole::CheckBox:
     1397    case AccessibilityRole::ListBoxOption:
    14031398    // MacOS does not expect native <li> elements to expose label information, it only expects leaf node elements to do that.
    14041399#if !PLATFORM(COCOA)
    1405     case ListItemRole:
     1400    case AccessibilityRole::ListItem:
    14061401#endif
    1407     case MenuButtonRole:
    1408     case MenuItemRole:
    1409     case MenuItemCheckboxRole:
    1410     case MenuItemRadioRole:
    1411     case RadioButtonRole:
    1412     case SwitchRole:
    1413     case TabRole:
     1402    case AccessibilityRole::MenuButton:
     1403    case AccessibilityRole::MenuItem:
     1404    case AccessibilityRole::MenuItemCheckbox:
     1405    case AccessibilityRole::MenuItemRadio:
     1406    case AccessibilityRole::RadioButton:
     1407    case AccessibilityRole::Switch:
     1408    case AccessibilityRole::Tab:
    14141409        useTextUnderElement = true;
    14151410        break;
     
    14351430        String text = textUnderElement(mode);
    14361431        if (!text.isEmpty())
    1437             textOrder.append(AccessibilityText(text, ChildrenText));
     1432            textOrder.append(AccessibilityText(text, AccessibilityTextSource::Children));
    14381433    }
    14391434}
     
    14431438    const AtomicString& ariaHelp = getAttribute(aria_helpAttr);
    14441439    if (!ariaHelp.isEmpty())
    1445         textOrder.append(AccessibilityText(ariaHelp, HelpText));
     1440        textOrder.append(AccessibilityText(ariaHelp, AccessibilityTextSource::Help));
    14461441   
    14471442    String describedBy = ariaDescribedByAttribute();
    14481443    if (!describedBy.isEmpty())
    1449         textOrder.append(AccessibilityText(describedBy, SummaryText));
     1444        textOrder.append(AccessibilityText(describedBy, AccessibilityTextSource::Summary));
    14501445
    14511446    // Summary attribute used as help text on tables.
    14521447    const AtomicString& summary = getAttribute(summaryAttr);
    14531448    if (!summary.isEmpty())
    1454         textOrder.append(AccessibilityText(summary, SummaryText));
     1449        textOrder.append(AccessibilityText(summary, AccessibilityTextSource::Summary));
    14551450
    14561451    // The title attribute should be used as help text unless it is already being used as descriptive text.
     
    14581453    // descriptive text. This is problematic in the case of meters because the HTML spec suggests authors
    14591454    // can expose units through this attribute. Therefore, if the element is a meter, change its source
    1460     // type to HelpText.
     1455    // type to AccessibilityTextSource::Help.
    14611456    const AtomicString& title = getAttribute(titleAttr);
    14621457    if (!title.isEmpty()) {
    14631458        if (!isMeter() && !roleIgnoresTitle())
    1464             textOrder.append(AccessibilityText(title, TitleTagText));
     1459            textOrder.append(AccessibilityText(title, AccessibilityTextSource::TitleTag));
    14651460        else
    1466             textOrder.append(AccessibilityText(title, HelpText));
     1461            textOrder.append(AccessibilityText(title, AccessibilityTextSource::Help));
    14671462    }
    14681463}
     
    14771472    String placeholder = placeholderValue();
    14781473    if (!placeholder.isEmpty())
    1479         textOrder.append(AccessibilityText(placeholder, PlaceholderText));
     1474        textOrder.append(AccessibilityText(placeholder, AccessibilityTextSource::Placeholder));
    14801475}
    14811476   
     
    14871482        ariaLabeledByElements(elements);
    14881483       
    1489         Vector<RefPtr<AccessibilityObject>> axElements;
     1484        Vector<Ref<AccessibilityObject>> axElements;
    14901485        for (const auto& element : elements) {
    1491             RefPtr<AccessibilityObject> axElement = axObjectCache()->getOrCreate(element);
    1492             axElements.append(axElement);
     1486            if (auto axElement = axObjectCache()->getOrCreate(element))
     1487                axElements.append(*axElement);
    14931488        }
    14941489       
    1495         textOrder.append(AccessibilityText(ariaLabeledBy, AlternativeText, WTFMove(axElements)));
     1490        textOrder.append(AccessibilityText(ariaLabeledBy, AccessibilityTextSource::Alternative, WTFMove(axElements)));
    14961491    }
    14971492}
     
    15421537{
    15431538    // Static text should not have a description, it should only have a stringValue.
    1544     if (roleValue() == StaticTextRole)
     1539    if (roleValue() == AccessibilityRole::StaticText)
    15451540        return String();
    15461541
     
    15771572bool AccessibilityNodeObject::roleIgnoresTitle() const
    15781573{
    1579     if (ariaRoleAttribute() != UnknownRole)
     1574    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
    15801575        return false;
    15811576
    15821577    switch (roleValue()) {
    1583     case DivRole:
    1584     case UnknownRole:
     1578    case AccessibilityRole::Div:
     1579    case AccessibilityRole::Unknown:
    15851580        return true;
    15861581    default:
     
    16201615        // added to those kinds of elements, it is likely it was meant for a child element.
    16211616        if (AccessibilityObject* axObj = axObjectCache()->getOrCreate(ancestor)) {
    1622             if (!axObj->isGroup() && axObj->roleValue() != UnknownRole)
     1617            if (!axObj->isGroup() && axObj->roleValue() != AccessibilityRole::Unknown)
    16231618                break;
    16241619        }
     
    16391634   
    16401635    // Only tree item will calculate its level through the DOM currently.
    1641     if (roleValue() != TreeItemRole)
     1636    if (roleValue() != AccessibilityRole::TreeItem)
    16421637        return 0;
    16431638   
     
    16471642    for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
    16481643        AccessibilityRole parentRole = parent->ariaRoleAttribute();
    1649         if (parentRole == ApplicationGroupRole)
     1644        if (parentRole == AccessibilityRole::ApplicationGroup)
    16501645            level++;
    1651         else if (parentRole == TreeRole)
     1646        else if (parentRole == AccessibilityRole::Tree)
    16521647            break;
    16531648    }
     
    18061801
    18071802    switch (roleValue()) {
    1808     case PopUpButtonRole:
     1803    case AccessibilityRole::PopUpButton:
    18091804        // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue().
    18101805        if (node->hasTagName(selectTag))
    18111806            return String();
    18121807        FALLTHROUGH;
    1813     case ButtonRole:
    1814     case ToggleButtonRole:
    1815     case CheckBoxRole:
    1816     case ListBoxOptionRole:
    1817     case ListItemRole:
    1818     case MenuButtonRole:
    1819     case MenuItemRole:
    1820     case MenuItemCheckboxRole:
    1821     case MenuItemRadioRole:
    1822     case RadioButtonRole:
    1823     case SwitchRole:
    1824     case TabRole:
     1808    case AccessibilityRole::Button:
     1809    case AccessibilityRole::ToggleButton:
     1810    case AccessibilityRole::CheckBox:
     1811    case AccessibilityRole::ListBoxOption:
     1812    case AccessibilityRole::ListItem:
     1813    case AccessibilityRole::MenuButton:
     1814    case AccessibilityRole::MenuItem:
     1815    case AccessibilityRole::MenuItemCheckbox:
     1816    case AccessibilityRole::MenuItemRadio:
     1817    case AccessibilityRole::RadioButton:
     1818    case AccessibilityRole::Switch:
     1819    case AccessibilityRole::Tab:
    18251820        return textUnderElement();
    18261821    // SVGRoots should not use the text under itself as a title. That could include the text of objects like <text>.
    1827     case SVGRootRole:
     1822    case AccessibilityRole::SVGRoot:
    18281823        return String();
    18291824    default:
     
    18421837{
    18431838    // If this is a user defined static text, use the accessible name computation.                                     
    1844     if (ariaRoleAttribute() == StaticTextRole) {
     1839    if (ariaRoleAttribute() == AccessibilityRole::StaticText) {
    18451840        Vector<AccessibilityText> textOrder;
    18461841        alternativeText(textOrder);
     
    18711866        return String();
    18721867
    1873     if (ariaRoleAttribute() == StaticTextRole) {
     1868    if (ariaRoleAttribute() == AccessibilityRole::StaticText) {
    18741869        String staticText = text();
    18751870        if (!staticText.length())
     
    21292124    const AtomicString& ariaRole = getAttribute(roleAttr);
    21302125    if (ariaRole.isNull() || ariaRole.isEmpty())
    2131         return UnknownRole;
     2126        return AccessibilityRole::Unknown;
    21322127   
    21332128    AccessibilityRole role = ariaRoleToWebCoreRole(ariaRole);
    21342129
    21352130    // ARIA states if an item can get focus, it should not be presentational.
    2136     if (role == PresentationalRole && canSetFocusAttribute())
    2137         return UnknownRole;
    2138 
    2139     if (role == ButtonRole)
     2131    if (role == AccessibilityRole::Presentational && canSetFocusAttribute())
     2132        return AccessibilityRole::Unknown;
     2133
     2134    if (role == AccessibilityRole::Button)
    21402135        role = buttonRoleType();
    21412136
    2142     if (role == TextAreaRole && !ariaIsMultiline())
    2143         role = TextFieldRole;
     2137    if (role == AccessibilityRole::TextArea && !ariaIsMultiline())
     2138        role = AccessibilityRole::TextField;
    21442139
    21452140    role = remapAriaRoleDueToParent(role);
    21462141   
    21472142    // Presentational roles are invalidated by the presence of ARIA attributes.
    2148     if (role == PresentationalRole && supportsARIAAttributes())
    2149         role = UnknownRole;
     2143    if (role == AccessibilityRole::Presentational && supportsARIAAttributes())
     2144        role = AccessibilityRole::Unknown;
    21502145   
    21512146    // The ARIA spec states, "Authors must give each element with role region a brief label that
     
    21532148    // if the region does not have an accessible name, do not expose the element as a landmark.
    21542149    // Use the native host language role of the element instead."
    2155     if (role == LandmarkRegionRole && !hasAttribute(aria_labelAttr) && !hasAttribute(aria_labelledbyAttr))
    2156         role = UnknownRole;
    2157 
    2158     if (role)
     2150    if (role == AccessibilityRole::LandmarkRegion && !hasAttribute(aria_labelAttr) && !hasAttribute(aria_labelledbyAttr))
     2151        role = AccessibilityRole::Unknown;
     2152
     2153    if (static_cast<int>(role))
    21592154        return role;
    21602155
    2161     return UnknownRole;
     2156    return AccessibilityRole::Unknown;
    21622157}
    21632158
     
    21742169    // https://bugs.webkit.org/show_bug.cgi?id=65174
    21752170
    2176     if (role != ListBoxOptionRole && role != MenuItemRole)
     2171    if (role != AccessibilityRole::ListBoxOption && role != AccessibilityRole::MenuItem)
    21772172        return role;
    21782173   
     
    21812176
    21822177        // Selects and listboxes both have options as child roles, but they map to different roles within WebCore.
    2183         if (role == ListBoxOptionRole && parentAriaRole == MenuRole)
    2184             return MenuItemRole;
     2178        if (role == AccessibilityRole::ListBoxOption && parentAriaRole == AccessibilityRole::Menu)
     2179            return AccessibilityRole::MenuItem;
    21852180        // An aria "menuitem" may map to MenuButton or MenuItem depending on its parent.
    2186         if (role == MenuItemRole && parentAriaRole == ApplicationGroupRole)
    2187             return MenuButtonRole;
     2181        if (role == AccessibilityRole::MenuItem && parentAriaRole == AccessibilityRole::ApplicationGroup)
     2182            return AccessibilityRole::MenuButton;
    21882183       
    21892184        // If the parent had a different role, then we don't need to continue searching up the chain.
    2190         if (parentAriaRole)
     2185        if (parentAriaRole != AccessibilityRole::Unknown)
    21912186            break;
    21922187    }
     
    21992194    // Elements that can be selected
    22002195    switch (roleValue()) {
    2201     case CellRole:
    2202     case GridCellRole:
    2203     case RadioButtonRole:
    2204     case RowHeaderRole:
    2205     case RowRole:
    2206     case TabListRole:
    2207     case TabRole:
    2208     case TreeGridRole:
    2209     case TreeItemRole:
    2210     case TreeRole:
    2211     case MenuItemCheckboxRole:
    2212     case MenuItemRadioRole:
    2213     case MenuItemRole:
     2196    case AccessibilityRole::Cell:
     2197    case AccessibilityRole::GridCell:
     2198    case AccessibilityRole::RadioButton:
     2199    case AccessibilityRole::RowHeader:
     2200    case AccessibilityRole::Row:
     2201    case AccessibilityRole::TabList:
     2202    case AccessibilityRole::Tab:
     2203    case AccessibilityRole::TreeGrid:
     2204    case AccessibilityRole::TreeItem:
     2205    case AccessibilityRole::Tree:
     2206    case AccessibilityRole::MenuItemCheckbox:
     2207    case AccessibilityRole::MenuItemRadio:
     2208    case AccessibilityRole::MenuItem:
    22142209        return isEnabled();
    22152210    default:
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h

    r221918 r224074  
    145145    explicit AccessibilityNodeObject(Node*);
    146146
    147     AccessibilityRole m_ariaRole;
    148     mutable AccessibilityRole m_roleForMSAA;
     147    AccessibilityRole m_ariaRole { AccessibilityRole::Unknown };
     148    mutable AccessibilityRole m_roleForMSAA { AccessibilityRole::Unknown };
    149149#ifndef NDEBUG
    150     bool m_initialized;
     150    bool m_initialized { false };
    151151#endif
    152152
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r223766 r224074  
    8585using namespace HTMLNames;
    8686
    87 AccessibilityObject::AccessibilityObject()
    88     : m_id(0)
    89     , m_haveChildren(false)
    90     , m_role(UnknownRole)
    91     , m_lastKnownIsIgnoredValue(DefaultBehavior)
    92     , m_isIgnoredFromParentData(AccessibilityIsIgnoredFromParentData())
    93     , m_childrenDirty(false)
    94     , m_subtreeDirty(false)
    95 #if PLATFORM(GTK)
    96     , m_wrapper(nullptr)
    97 #endif
    98 {
    99 }
    100 
    10187AccessibilityObject::~AccessibilityObject()
    10288{
     
    10793{
    10894    // Menu close events need to notify the platform. No element is used in the notification because it's a destruction event.
    109     if (detachmentType == ElementDestroyed && roleValue() == MenuRole && cache)
     95    if (detachmentType == AccessibilityDetachmentType::ElementDestroyed && roleValue() == AccessibilityRole::Menu && cache)
    11096        cache->postNotification(nullptr, &cache->document(), AXObjectCache::AXMenuClosed);
    11197   
     
    131117{
    132118    switch (criteria->searchKeys[index]) {
    133     // The AnyTypeSearchKey matches any non-null AccessibilityObject.
    134     case AnyTypeSearchKey:
     119    // The AccessibilitySearchKey::AnyType matches any non-null AccessibilityObject.
     120    case AccessibilitySearchKey::AnyType:
    135121        return true;
    136122       
    137     case ArticleSearchKey:
    138         return axObject->roleValue() == DocumentArticleRole;
     123    case AccessibilitySearchKey::Article:
     124        return axObject->roleValue() == AccessibilityRole::DocumentArticle;
    139125           
    140     case BlockquoteSameLevelSearchKey:
     126    case AccessibilitySearchKey::BlockquoteSameLevel:
    141127        return criteria->startObject
    142128            && axObject->isBlockquote()
    143129            && axObject->blockquoteLevel() == criteria->startObject->blockquoteLevel();
    144130       
    145     case BlockquoteSearchKey:
     131    case AccessibilitySearchKey::Blockquote:
    146132        return axObject->isBlockquote();
    147133       
    148     case BoldFontSearchKey:
     134    case AccessibilitySearchKey::BoldFont:
    149135        return axObject->hasBoldFont();
    150136       
    151     case ButtonSearchKey:
     137    case AccessibilitySearchKey::Button:
    152138        return axObject->isButton();
    153139       
    154     case CheckBoxSearchKey:
     140    case AccessibilitySearchKey::CheckBox:
    155141        return axObject->isCheckbox();
    156142       
    157     case ControlSearchKey:
     143    case AccessibilitySearchKey::Control:
    158144        return axObject->isControl();
    159145       
    160     case DifferentTypeSearchKey:
     146    case AccessibilitySearchKey::DifferentType:
    161147        return criteria->startObject
    162148            && axObject->roleValue() != criteria->startObject->roleValue();
    163149       
    164     case FontChangeSearchKey:
     150    case AccessibilitySearchKey::FontChange:
    165151        return criteria->startObject
    166152            && !axObject->hasSameFont(criteria->startObject->renderer());
    167153       
    168     case FontColorChangeSearchKey:
     154    case AccessibilitySearchKey::FontColorChange:
    169155        return criteria->startObject
    170156            && !axObject->hasSameFontColor(criteria->startObject->renderer());
    171157       
    172     case FrameSearchKey:
     158    case AccessibilitySearchKey::Frame:
    173159        return axObject->isWebArea();
    174160       
    175     case GraphicSearchKey:
     161    case AccessibilitySearchKey::Graphic:
    176162        return axObject->isImage();
    177163       
    178     case HeadingLevel1SearchKey:
     164    case AccessibilitySearchKey::HeadingLevel1:
    179165        return axObject->headingLevel() == 1;
    180166       
    181     case HeadingLevel2SearchKey:
     167    case AccessibilitySearchKey::HeadingLevel2:
    182168        return axObject->headingLevel() == 2;
    183169       
    184     case HeadingLevel3SearchKey:
     170    case AccessibilitySearchKey::HeadingLevel3:
    185171        return axObject->headingLevel() == 3;
    186172       
    187     case HeadingLevel4SearchKey:
     173    case AccessibilitySearchKey::HeadingLevel4:
    188174        return axObject->headingLevel() == 4;
    189175       
    190     case HeadingLevel5SearchKey:
     176    case AccessibilitySearchKey::HeadingLevel5:
    191177        return axObject->headingLevel() == 5;
    192178       
    193     case HeadingLevel6SearchKey:
     179    case AccessibilitySearchKey::HeadingLevel6:
    194180        return axObject->headingLevel() == 6;
    195181       
    196     case HeadingSameLevelSearchKey:
     182    case AccessibilitySearchKey::HeadingSameLevel:
    197183        return criteria->startObject
    198184            && axObject->isHeading()
    199185            && axObject->headingLevel() == criteria->startObject->headingLevel();
    200186       
    201     case HeadingSearchKey:
     187    case AccessibilitySearchKey::Heading:
    202188        return axObject->isHeading();
    203189   
    204     case HighlightedSearchKey:
     190    case AccessibilitySearchKey::Highlighted:
    205191        return axObject->hasHighlighting();
    206192           
    207     case ItalicFontSearchKey:
     193    case AccessibilitySearchKey::ItalicFont:
    208194        return axObject->hasItalicFont();
    209195       
    210     case LandmarkSearchKey:
     196    case AccessibilitySearchKey::Landmark:
    211197        return axObject->isLandmark();
    212198       
    213     case LinkSearchKey: {
     199    case AccessibilitySearchKey::Link: {
    214200        bool isLink = axObject->isLink();
    215201#if PLATFORM(IOS)
    216202        if (!isLink)
    217             isLink = axObject->isDescendantOfRole(WebCoreLinkRole);
     203            isLink = axObject->isDescendantOfRole(AccessibilityRole::WebCoreLink);
    218204#endif
    219205        return isLink;
    220206    }
    221207       
    222     case ListSearchKey:
     208    case AccessibilitySearchKey::List:
    223209        return axObject->isList();
    224210       
    225     case LiveRegionSearchKey:
     211    case AccessibilitySearchKey::LiveRegion:
    226212        return axObject->supportsARIALiveRegion();
    227213       
    228     case MisspelledWordSearchKey:
     214    case AccessibilitySearchKey::MisspelledWord:
    229215        return axObject->hasMisspelling();
    230216       
    231     case OutlineSearchKey:
     217    case AccessibilitySearchKey::Outline:
    232218        return axObject->isTree();
    233219       
    234     case PlainTextSearchKey:
     220    case AccessibilitySearchKey::PlainText:
    235221        return axObject->hasPlainText();
    236222       
    237     case RadioGroupSearchKey:
     223    case AccessibilitySearchKey::RadioGroup:
    238224        return axObject->isRadioGroup();
    239225       
    240     case SameTypeSearchKey:
     226    case AccessibilitySearchKey::SameType:
    241227        return criteria->startObject
    242228            && axObject->roleValue() == criteria->startObject->roleValue();
    243229       
    244     case StaticTextSearchKey:
     230    case AccessibilitySearchKey::StaticText:
    245231        return axObject->isStaticText();
    246232       
    247     case StyleChangeSearchKey:
     233    case AccessibilitySearchKey::StyleChange:
    248234        return criteria->startObject
    249235            && !axObject->hasSameStyle(criteria->startObject->renderer());
    250236       
    251     case TableSameLevelSearchKey:
     237    case AccessibilitySearchKey::TableSameLevel:
    252238        return criteria->startObject
    253239            && is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility()
    254240            && downcast<AccessibilityTable>(*axObject).tableLevel() == criteria->startObject->tableLevel();
    255241       
    256     case TableSearchKey:
     242    case AccessibilitySearchKey::Table:
    257243        return is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility();
    258244       
    259     case TextFieldSearchKey:
     245    case AccessibilitySearchKey::TextField:
    260246        return axObject->isTextControl();
    261247       
    262     case UnderlineSearchKey:
     248    case AccessibilitySearchKey::Underline:
    263249        return axObject->hasUnderline();
    264250       
    265     case UnvisitedLinkSearchKey:
     251    case AccessibilitySearchKey::UnvisitedLink:
    266252        return axObject->isUnvisited();
    267253       
    268     case VisitedLinkSearchKey:
     254    case AccessibilitySearchKey::VisitedLink:
    269255        return axObject->isVisited();
    270256       
     
    313299    // First check for objects specifically identified by ARIA.
    314300    switch (ariaRoleAttribute()) {
    315     case ApplicationAlertRole:
    316     case ApplicationAlertDialogRole:
    317     case ApplicationDialogRole:
    318     case ApplicationGroupRole:
    319     case ApplicationLogRole:
    320     case ApplicationMarqueeRole:
    321     case ApplicationStatusRole:
    322     case ApplicationTimerRole:
    323     case ComboBoxRole:
    324     case DefinitionRole:
    325     case DocumentRole:
    326     case DocumentArticleRole:
    327     case DocumentMathRole:
    328     case DocumentNoteRole:
    329     case LandmarkRegionRole:
    330     case LandmarkDocRegionRole:
    331     case FormRole:
    332     case GridRole:
    333     case GroupRole:
    334     case ImageRole:
    335     case ListRole:
    336     case ListBoxRole:
    337     case LandmarkBannerRole:
    338     case LandmarkComplementaryRole:
    339     case LandmarkContentInfoRole:
    340     case LandmarkNavigationRole:
    341     case LandmarkMainRole:
    342     case LandmarkSearchRole:
    343     case MenuRole:
    344     case MenuBarRole:
    345     case ProgressIndicatorRole:
    346     case RadioGroupRole:
    347     case ScrollBarRole:
    348     case SliderRole:
    349     case SpinButtonRole:
    350     case SplitterRole:
    351     case TableRole:
    352     case TabListRole:
    353     case TabPanelRole:
    354     case TextAreaRole:
    355     case TextFieldRole:
    356     case ToolbarRole:
    357     case TreeGridRole:
    358     case TreeRole:
    359     case WebApplicationRole:
     301    case AccessibilityRole::ApplicationAlert:
     302    case AccessibilityRole::ApplicationAlertDialog:
     303    case AccessibilityRole::ApplicationDialog:
     304    case AccessibilityRole::ApplicationGroup:
     305    case AccessibilityRole::ApplicationLog:
     306    case AccessibilityRole::ApplicationMarquee:
     307    case AccessibilityRole::ApplicationStatus:
     308    case AccessibilityRole::ApplicationTimer:
     309    case AccessibilityRole::ComboBox:
     310    case AccessibilityRole::Definition:
     311    case AccessibilityRole::Document:
     312    case AccessibilityRole::DocumentArticle:
     313    case AccessibilityRole::DocumentMath:
     314    case AccessibilityRole::DocumentNote:
     315    case AccessibilityRole::LandmarkRegion:
     316    case AccessibilityRole::LandmarkDocRegion:
     317    case AccessibilityRole::Form:
     318    case AccessibilityRole::Grid:
     319    case AccessibilityRole::Group:
     320    case AccessibilityRole::Image:
     321    case AccessibilityRole::List:
     322    case AccessibilityRole::ListBox:
     323    case AccessibilityRole::LandmarkBanner:
     324    case AccessibilityRole::LandmarkComplementary:
     325    case AccessibilityRole::LandmarkContentInfo:
     326    case AccessibilityRole::LandmarkNavigation:
     327    case AccessibilityRole::LandmarkMain:
     328    case AccessibilityRole::LandmarkSearch:
     329    case AccessibilityRole::Menu:
     330    case AccessibilityRole::MenuBar:
     331    case AccessibilityRole::ProgressIndicator:
     332    case AccessibilityRole::RadioGroup:
     333    case AccessibilityRole::ScrollBar:
     334    case AccessibilityRole::Slider:
     335    case AccessibilityRole::SpinButton:
     336    case AccessibilityRole::Splitter:
     337    case AccessibilityRole::Table:
     338    case AccessibilityRole::TabList:
     339    case AccessibilityRole::TabPanel:
     340    case AccessibilityRole::TextArea:
     341    case AccessibilityRole::TextField:
     342    case AccessibilityRole::Toolbar:
     343    case AccessibilityRole::TreeGrid:
     344    case AccessibilityRole::Tree:
     345    case AccessibilityRole::WebApplication:
    360346        return false;
    361347    default:
     
    365351    // Now check for generically derived elements now that we know the element does not match a specific ARIA role.
    366352    switch (roleValue()) {
    367     case SliderRole:
     353    case AccessibilityRole::Slider:
    368354        return false;
    369355    default:
     
    389375bool AccessibilityObject::isBlockquote() const
    390376{
    391     return roleValue() == BlockquoteRole;
     377    return roleValue() == AccessibilityRole::Blockquote;
    392378}
    393379
     
    395381{
    396382    switch (roleValue()) {
    397     case ComboBoxRole:
    398     case SearchFieldRole:
    399     case TextAreaRole:
    400     case TextFieldRole:
     383    case AccessibilityRole::ComboBox:
     384    case AccessibilityRole::SearchField:
     385    case AccessibilityRole::TextArea:
     386    case AccessibilityRole::TextField:
    401387        return true;
    402388    default:
     
    407393bool AccessibilityObject::isARIATextControl() const
    408394{
    409     return ariaRoleAttribute() == TextAreaRole || ariaRoleAttribute() == TextFieldRole || ariaRoleAttribute() == SearchFieldRole;
     395    return ariaRoleAttribute() == AccessibilityRole::TextArea || ariaRoleAttribute() == AccessibilityRole::TextField || ariaRoleAttribute() == AccessibilityRole::SearchField;
    410396}
    411397
     
    419405    AccessibilityRole role = roleValue();
    420406   
    421     return role == LandmarkBannerRole
    422         || role == LandmarkComplementaryRole
    423         || role == LandmarkContentInfoRole
    424         || role == LandmarkDocRegionRole
    425         || role == LandmarkMainRole
    426         || role == LandmarkNavigationRole
    427         || role == LandmarkRegionRole
    428         || role == LandmarkSearchRole;
     407    return role == AccessibilityRole::LandmarkBanner
     408        || role == AccessibilityRole::LandmarkComplementary
     409        || role == AccessibilityRole::LandmarkContentInfo
     410        || role == AccessibilityRole::LandmarkDocRegion
     411        || role == AccessibilityRole::LandmarkMain
     412        || role == AccessibilityRole::LandmarkNavigation
     413        || role == AccessibilityRole::LandmarkRegion
     414        || role == AccessibilityRole::LandmarkSearch;
    429415}
    430416
     
    678664        startObject = this;
    679665   
    680     bool isForward = criteria->searchDirection == SearchDirectionNext;
     666    bool isForward = criteria->searchDirection == AccessibilitySearchDirection::Next;
    681667   
    682668    // The first iteration of the outer loop will examine the children of the start object for matches. However, when
     
    761747        return nullptr;
    762748   
    763     bool isBackwardSearch = searchDirection == SearchDirectionPrevious;
     749    bool isBackwardSearch = searchDirection == AccessibilitySearchDirection::Previous;
    764750    FindOptions findOptions = AtWordStarts | AtWordEnds | CaseInsensitive | StartInSelection;
    765751    if (isBackwardSearch)
     
    833819    RefPtr<Range> closestBeforeStringRange = nullptr;
    834820    // Search forward if necessary.
    835     if (ambiguityResolution == ClosestAfterSelectionAmbiguityResolution || ambiguityResolution == ClosestToSelectionAmbiguityResolution)
    836         closestAfterStringRange = rangeOfStringClosestToRangeInDirection(selectedStringRange.get(), SearchDirectionNext, searchStrings);
     821    if (ambiguityResolution == AccessibilitySelectTextAmbiguityResolution::ClosestAfter || ambiguityResolution == AccessibilitySelectTextAmbiguityResolution::ClosestTo)
     822        closestAfterStringRange = rangeOfStringClosestToRangeInDirection(selectedStringRange.get(), AccessibilitySearchDirection::Next, searchStrings);
    837823    // Search backward if necessary.
    838     if (ambiguityResolution == ClosestBeforeSelectionAmbiguityResolution || ambiguityResolution == ClosestToSelectionAmbiguityResolution)
    839         closestBeforeStringRange = rangeOfStringClosestToRangeInDirection(selectedStringRange.get(), SearchDirectionPrevious, searchStrings);
     824    if (ambiguityResolution == AccessibilitySelectTextAmbiguityResolution::ClosestBefore || ambiguityResolution == AccessibilitySelectTextAmbiguityResolution::ClosestTo)
     825        closestBeforeStringRange = rangeOfStringClosestToRangeInDirection(selectedStringRange.get(), AccessibilitySearchDirection::Previous, searchStrings);
    840826   
    841827    // Determine which candidate is closest to the selection and perform the activity.
     
    851837        if (frame->selection().setSelectedRange(closestStringRange.get(), DOWNSTREAM, true)) {
    852838            switch (activity) {
    853             case FindAndCapitalize:
     839            case AccessibilitySelectTextActivity::FindAndCapitalize:
    854840                replacementString = closestString;
    855841                makeCapitalized(&replacementString, 0);
    856842                replaceSelection = true;
    857843                break;
    858             case FindAndUppercase:
     844            case AccessibilitySelectTextActivity::FindAndUppercase:
    859845                replacementString = closestString.convertToUppercaseWithoutLocale(); // FIXME: Needs locale to work correctly.
    860846                replaceSelection = true;
    861847                break;
    862             case FindAndLowercase:
     848            case AccessibilitySelectTextActivity::FindAndLowercase:
    863849                replacementString = closestString.convertToLowercaseWithoutLocale(); // FIXME: Needs locale to work correctly.
    864850                replaceSelection = true;
    865851                break;
    866             case FindAndReplaceActivity: {
     852            case AccessibilitySelectTextActivity::FindAndReplace: {
    867853                replaceSelection = true;
    868854                // When applying find and replace activities, we want to match the capitalization of the replaced text,
     
    876862                break;
    877863            }
    878             case FindAndSelectActivity:
     864            case AccessibilitySelectTextActivity::FindAndSelect:
    879865                break;
    880866            }
     
    913899bool AccessibilityObject::isARIAInput(AccessibilityRole ariaRole)
    914900{
    915     return ariaRole == RadioButtonRole || ariaRole == CheckBoxRole || ariaRole == TextFieldRole || ariaRole == SwitchRole || ariaRole == SearchFieldRole;
     901    return ariaRole == AccessibilityRole::RadioButton || ariaRole == AccessibilityRole::CheckBox || ariaRole == AccessibilityRole::TextField || ariaRole == AccessibilityRole::Switch || ariaRole == AccessibilityRole::SearchField;
    916902}   
    917903   
    918904bool AccessibilityObject::isARIAControl(AccessibilityRole ariaRole)
    919905{
    920     return isARIAInput(ariaRole) || ariaRole == TextAreaRole || ariaRole == ButtonRole
    921     || ariaRole == ComboBoxRole || ariaRole == SliderRole;
     906    return isARIAInput(ariaRole) || ariaRole == AccessibilityRole::TextArea || ariaRole == AccessibilityRole::Button || ariaRole == AccessibilityRole::ComboBox || ariaRole == AccessibilityRole::Slider;
    922907}
    923908   
     
    925910{
    926911    switch (roleValue()) {
    927     case ProgressIndicatorRole:
    928     case SliderRole:
    929     case ScrollBarRole:
    930     case SpinButtonRole:
     912    case AccessibilityRole::ProgressIndicator:
     913    case AccessibilityRole::Slider:
     914    case AccessibilityRole::ScrollBar:
     915    case AccessibilityRole::SpinButton:
    931916        return true;
    932     case SplitterRole:
     917    case AccessibilityRole::Splitter:
    933918        return canSetFocusAttribute();
    934919    default:
     
    14601445   
    14611446    // FIXME: Add support for right-to-left languages.
    1462     IntPoint corner = (visiblePositionForBounds == FirstVisiblePositionForBounds) ? rect.minXMinYCorner() : rect.maxXMaxYCorner();
     1447    IntPoint corner = (visiblePositionForBounds == AccessibilityVisiblePositionForBounds::First) ? rect.minXMinYCorner() : rect.maxXMaxYCorner();
    14631448    VisiblePosition position = mainFrame->visiblePositionForPoint(corner);
    14641449   
     
    16531638    AccessibilityRole role = roleValue();
    16541639
    1655     return role == CheckBoxRole
    1656         || role == ColumnHeaderRole
    1657         || role == ComboBoxRole
    1658         || role == GridRole
    1659         || role == GridCellRole
    1660         || role == ListBoxRole
    1661         || role == MenuItemCheckboxRole
    1662         || role == MenuItemRadioRole
    1663         || role == RadioGroupRole
    1664         || role == RowHeaderRole
    1665         || role == SearchFieldRole
    1666         || role == SliderRole
    1667         || role == SpinButtonRole
    1668         || role == SwitchRole
    1669         || role == TextFieldRole
    1670         || role == TreeGridRole
     1640    return role == AccessibilityRole::CheckBox
     1641        || role == AccessibilityRole::ColumnHeader
     1642        || role == AccessibilityRole::ComboBox
     1643        || role == AccessibilityRole::Grid
     1644        || role == AccessibilityRole::GridCell
     1645        || role == AccessibilityRole::ListBox
     1646        || role == AccessibilityRole::MenuItemCheckbox
     1647        || role == AccessibilityRole::MenuItemRadio
     1648        || role == AccessibilityRole::RadioGroup
     1649        || role == AccessibilityRole::RowHeader
     1650        || role == AccessibilityRole::SearchField
     1651        || role == AccessibilityRole::Slider
     1652        || role == AccessibilityRole::SpinButton
     1653        || role == AccessibilityRole::Switch
     1654        || role == AccessibilityRole::TextField
     1655        || role == AccessibilityRole::TreeGrid
    16711656        || isPasswordField();
    16721657}
     
    16751660{
    16761661    if (!hasAttribute(aria_readonlyAttr))
    1677         return ariaRoleAttribute() != UnknownRole && supportsARIAReadOnly() ? "false" : String();
     1662        return ariaRoleAttribute() != AccessibilityRole::Unknown && supportsARIAReadOnly() ? "false" : String();
    16781663
    16791664    return getAttribute(aria_readonlyAttr).string().convertToASCIILowercase();
     
    18921877   
    18931878    return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*axObject, true, [] (const AccessibilityObject& object) {
    1894         return object.roleValue() == HeadingRole;
     1879        return object.roleValue() == AccessibilityRole::Heading;
    18951880    }));
    18961881}
     
    19101895    for (const auto& child : children()) {
    19111896        // Add tree items as the rows.
    1912         if (child->roleValue() == TreeItemRole)
     1897        if (child->roleValue() == AccessibilityRole::TreeItem)
    19131898            result.append(child);
    19141899
     
    19221907    // The ARIA tree item content are the item that are not other tree items or their containing groups.
    19231908    for (const auto& child : children()) {
    1924         if (!child->isGroup() && child->roleValue() != TreeItemRole)
     1909        if (!child->isGroup() && child->roleValue() != AccessibilityRole::TreeItem)
    19251910            result.append(child);
    19261911    }
     
    19311916    for (const auto& obj : children()) {
    19321917        // Add tree items as the rows.
    1933         if (obj->roleValue() == TreeItemRole)
     1918        if (obj->roleValue() == AccessibilityRole::TreeItem)
    19341919            result.append(obj);
    19351920        // If it's not a tree item, then descend into the group to find more tree items.
     
    19421927{
    19431928    switch (role) {
    1944     case ApplicationAlertDialogRole:
    1945     case ApplicationAlertRole:
     1929    case AccessibilityRole::ApplicationAlertDialog:
     1930    case AccessibilityRole::ApplicationAlert:
    19461931        return ASCIILiteral("assertive");
    1947     case ApplicationLogRole:
    1948     case ApplicationStatusRole:
     1932    case AccessibilityRole::ApplicationLog:
     1933    case AccessibilityRole::ApplicationStatus:
    19491934        return ASCIILiteral("polite");
    1950     case ApplicationTimerRole:
    1951     case ApplicationMarqueeRole:
     1935    case AccessibilityRole::ApplicationTimer:
     1936    case AccessibilityRole::ApplicationMarquee:
    19521937        return ASCIILiteral("off");
    19531938    default:
     
    19721957
    19731958    switch (roleValue()) {
    1974     case ButtonRole:
    1975     case ToggleButtonRole:
     1959    case AccessibilityRole::Button:
     1960    case AccessibilityRole::ToggleButton:
    19761961        return buttonAction;
    1977     case TextFieldRole:
    1978     case TextAreaRole:
     1962    case AccessibilityRole::TextField:
     1963    case AccessibilityRole::TextArea:
    19791964        return textFieldAction;
    1980     case RadioButtonRole:
     1965    case AccessibilityRole::RadioButton:
    19811966        return radioButtonAction;
    1982     case CheckBoxRole:
    1983     case SwitchRole:
     1967    case AccessibilityRole::CheckBox:
     1968    case AccessibilityRole::Switch:
    19841969        return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction;
    1985     case LinkRole:
    1986     case WebCoreLinkRole:
     1970    case AccessibilityRole::Link:
     1971    case AccessibilityRole::WebCoreLink:
    19871972        return linkAction;
    1988     case PopUpButtonRole:
     1973    case AccessibilityRole::PopUpButton:
    19891974        return menuListAction;
    1990     case MenuListPopupRole:
     1975    case AccessibilityRole::MenuListPopup:
    19911976        return menuListPopupAction;
    1992     case ListItemRole:
     1977    case AccessibilityRole::ListItem:
    19931978        return listItemAction;
    19941979    default:
     
    20532038    // If "false", empty, or missing, return false state.
    20542039    if (currentStateValue.isEmpty() || currentStateValue == "false")
    2055         return ARIACurrentFalse;
     2040        return AccessibilityARIACurrentState::False;
    20562041   
    20572042    if (currentStateValue == "page")
    2058         return ARIACurrentPage;
     2043        return AccessibilityARIACurrentState::Page;
    20592044    if (currentStateValue == "step")
    2060         return ARIACurrentStep;
     2045        return AccessibilityARIACurrentState::Step;
    20612046    if (currentStateValue == "location")
    2062         return ARIACurrentLocation;
     2047        return AccessibilityARIACurrentState::Location;
    20632048    if (currentStateValue == "date")
    2064         return ARIACurrentDate;
     2049        return AccessibilityARIACurrentState::Date;
    20652050    if (currentStateValue == "time")
    2066         return ARIACurrentTime;
     2051        return AccessibilityARIACurrentState::Time;
    20672052   
    20682053    // Any value not included in the list of allowed values should be treated as "true".
    2069     return ARIACurrentTrue;
     2054    return AccessibilityARIACurrentState::True;
    20702055}
    20712056
     
    20732058{
    20742059    switch (ariaCurrentState()) {
    2075     case ARIACurrentFalse:
     2060    case AccessibilityARIACurrentState::False:
    20762061        return "false";
    2077     case ARIACurrentPage:
     2062    case AccessibilityARIACurrentState::Page:
    20782063        return "page";
    2079     case ARIACurrentStep:
     2064    case AccessibilityARIACurrentState::Step:
    20802065        return "step";
    2081     case ARIACurrentLocation:
     2066    case AccessibilityARIACurrentState::Location:
    20822067        return "location";
    2083     case ARIACurrentTime:
     2068    case AccessibilityARIACurrentState::Time:
    20842069        return "time";
    2085     case ARIACurrentDate:
     2070    case AccessibilityARIACurrentState::Date:
    20862071        return "date";
    20872072    default:
    2088     case ARIACurrentTrue:
     2073    case AccessibilityARIACurrentState::True:
    20892074        return "true";
    20902075    }
     
    21652150    LayoutRect bounds = elementRect();
    21662151    if (bounds.size().width() > bounds.size().height())
    2167         return AccessibilityOrientationHorizontal;
     2152        return AccessibilityOrientation::Horizontal;
    21682153    if (bounds.size().height() > bounds.size().width())
    2169         return AccessibilityOrientationVertical;
    2170 
    2171     return AccessibilityOrientationUndefined;
     2154        return AccessibilityOrientation::Vertical;
     2155
     2156    return AccessibilityOrientation::Undefined;
    21722157}   
    21732158
     
    22172202
    22182203    const RoleEntry roles[] = {
    2219         { "alert", ApplicationAlertRole },
    2220         { "alertdialog", ApplicationAlertDialogRole },
    2221         { "application", WebApplicationRole },
    2222         { "article", DocumentArticleRole },
    2223         { "banner", LandmarkBannerRole },
    2224         { "button", ButtonRole },
    2225         { "checkbox", CheckBoxRole },
    2226         { "complementary", LandmarkComplementaryRole },
    2227         { "contentinfo", LandmarkContentInfoRole },
    2228         { "dialog", ApplicationDialogRole },
    2229         { "directory", DirectoryRole },
     2204        { "alert", AccessibilityRole::ApplicationAlert },
     2205        { "alertdialog", AccessibilityRole::ApplicationAlertDialog },
     2206        { "application", AccessibilityRole::WebApplication },
     2207        { "article", AccessibilityRole::DocumentArticle },
     2208        { "banner", AccessibilityRole::LandmarkBanner },
     2209        { "button", AccessibilityRole::Button },
     2210        { "checkbox", AccessibilityRole::CheckBox },
     2211        { "complementary", AccessibilityRole::LandmarkComplementary },
     2212        { "contentinfo", AccessibilityRole::LandmarkContentInfo },
     2213        { "dialog", AccessibilityRole::ApplicationDialog },
     2214        { "directory", AccessibilityRole::Directory },
    22302215        // The 'doc-*' roles are defined the ARIA DPUB mobile: https://www.w3.org/TR/dpub-aam-1.0/
    22312216        // Editor's draft is currently at https://rawgit.com/w3c/aria/master/dpub-aam/dpub-aam.html
    2232         { "doc-abstract", ApplicationTextGroupRole },
    2233         { "doc-acknowledgments", LandmarkDocRegionRole },
    2234         { "doc-afterword", LandmarkDocRegionRole },
    2235         { "doc-appendix", LandmarkDocRegionRole },
    2236         { "doc-backlink", WebCoreLinkRole },
    2237         { "doc-biblioentry", ListItemRole },
    2238         { "doc-bibliography", LandmarkDocRegionRole },
    2239         { "doc-biblioref", WebCoreLinkRole },
    2240         { "doc-chapter", LandmarkDocRegionRole },
    2241         { "doc-colophon", ApplicationTextGroupRole },
    2242         { "doc-conclusion", LandmarkDocRegionRole },
    2243         { "doc-cover", ImageRole },
    2244         { "doc-credit", ApplicationTextGroupRole },
    2245         { "doc-credits", LandmarkDocRegionRole },
    2246         { "doc-dedication", ApplicationTextGroupRole },
    2247         { "doc-endnote", ListItemRole },
    2248         { "doc-endnotes", LandmarkDocRegionRole },
    2249         { "doc-epigraph", ApplicationTextGroupRole },
    2250         { "doc-epilogue", LandmarkDocRegionRole },
    2251         { "doc-errata", LandmarkDocRegionRole },
    2252         { "doc-example", ApplicationTextGroupRole },
    2253         { "doc-footnote", FootnoteRole },
    2254         { "doc-foreword", LandmarkDocRegionRole },
    2255         { "doc-glossary", LandmarkDocRegionRole },
    2256         { "doc-glossref", WebCoreLinkRole },
    2257         { "doc-index", LandmarkNavigationRole },
    2258         { "doc-introduction", LandmarkDocRegionRole },
    2259         { "doc-noteref", WebCoreLinkRole },
    2260         { "doc-notice", DocumentNoteRole },
    2261         { "doc-pagebreak", SplitterRole },
    2262         { "doc-pagelist", LandmarkNavigationRole },
    2263         { "doc-part", LandmarkDocRegionRole },
    2264         { "doc-preface", LandmarkDocRegionRole },
    2265         { "doc-prologue", LandmarkDocRegionRole },
    2266         { "doc-pullquote", ApplicationTextGroupRole },
    2267         { "doc-qna", ApplicationTextGroupRole },
    2268         { "doc-subtitle", HeadingRole },
    2269         { "doc-tip", DocumentNoteRole },
    2270         { "doc-toc", LandmarkNavigationRole },
    2271         { "figure", FigureRole },
    2272         { "grid", GridRole },
    2273         { "gridcell", GridCellRole },
    2274         { "table", TableRole },
    2275         { "cell", CellRole },
    2276         { "columnheader", ColumnHeaderRole },
    2277         { "combobox", ComboBoxRole },
    2278         { "definition", DefinitionRole },
    2279         { "document", DocumentRole },
    2280         { "feed", FeedRole },
    2281         { "form", FormRole },
    2282         { "rowheader", RowHeaderRole },
    2283         { "group", ApplicationGroupRole },
    2284         { "heading", HeadingRole },
    2285         { "img", ImageRole },
    2286         { "link", WebCoreLinkRole },
    2287         { "list", ListRole },       
    2288         { "listitem", ListItemRole },       
    2289         { "listbox", ListBoxRole },
    2290         { "log", ApplicationLogRole },
    2291         { "main", LandmarkMainRole },
    2292         { "marquee", ApplicationMarqueeRole },
    2293         { "math", DocumentMathRole },
    2294         { "menu", MenuRole },
    2295         { "menubar", MenuBarRole },
    2296         { "menuitem", MenuItemRole },
    2297         { "menuitemcheckbox", MenuItemCheckboxRole },
    2298         { "menuitemradio", MenuItemRadioRole },
    2299         { "none", PresentationalRole },
    2300         { "note", DocumentNoteRole },
    2301         { "navigation", LandmarkNavigationRole },
    2302         { "option", ListBoxOptionRole },
    2303         { "presentation", PresentationalRole },
    2304         { "progressbar", ProgressIndicatorRole },
    2305         { "radio", RadioButtonRole },
    2306         { "radiogroup", RadioGroupRole },
    2307         { "region", LandmarkRegionRole },
    2308         { "row", RowRole },
    2309         { "rowgroup", RowGroupRole },
    2310         { "scrollbar", ScrollBarRole },
    2311         { "search", LandmarkSearchRole },
    2312         { "searchbox", SearchFieldRole },
    2313         { "separator", SplitterRole },
    2314         { "slider", SliderRole },
    2315         { "spinbutton", SpinButtonRole },
    2316         { "status", ApplicationStatusRole },
    2317         { "switch", SwitchRole },
    2318         { "tab", TabRole },
    2319         { "tablist", TabListRole },
    2320         { "tabpanel", TabPanelRole },
    2321         { "text", StaticTextRole },
    2322         { "textbox", TextAreaRole },
    2323         { "term", TermRole },
    2324         { "timer", ApplicationTimerRole },
    2325         { "toolbar", ToolbarRole },
    2326         { "tooltip", UserInterfaceTooltipRole },
    2327         { "tree", TreeRole },
    2328         { "treegrid", TreeGridRole },
    2329         { "treeitem", TreeItemRole }
     2217        { "doc-abstract", AccessibilityRole::ApplicationTextGroup },
     2218        { "doc-acknowledgments", AccessibilityRole::LandmarkDocRegion },
     2219        { "doc-afterword", AccessibilityRole::LandmarkDocRegion },
     2220        { "doc-appendix", AccessibilityRole::LandmarkDocRegion },
     2221        { "doc-backlink", AccessibilityRole::WebCoreLink },
     2222        { "doc-biblioentry", AccessibilityRole::ListItem },
     2223        { "doc-bibliography", AccessibilityRole::LandmarkDocRegion },
     2224        { "doc-biblioref", AccessibilityRole::WebCoreLink },
     2225        { "doc-chapter", AccessibilityRole::LandmarkDocRegion },
     2226        { "doc-colophon", AccessibilityRole::ApplicationTextGroup },
     2227        { "doc-conclusion", AccessibilityRole::LandmarkDocRegion },
     2228        { "doc-cover", AccessibilityRole::Image },
     2229        { "doc-credit", AccessibilityRole::ApplicationTextGroup },
     2230        { "doc-credits", AccessibilityRole::LandmarkDocRegion },
     2231        { "doc-dedication", AccessibilityRole::ApplicationTextGroup },
     2232        { "doc-endnote", AccessibilityRole::ListItem },
     2233        { "doc-endnotes", AccessibilityRole::LandmarkDocRegion },
     2234        { "doc-epigraph", AccessibilityRole::ApplicationTextGroup },
     2235        { "doc-epilogue", AccessibilityRole::LandmarkDocRegion },
     2236        { "doc-errata", AccessibilityRole::LandmarkDocRegion },
     2237        { "doc-example", AccessibilityRole::ApplicationTextGroup },
     2238        { "doc-footnote", AccessibilityRole::Footnote },
     2239        { "doc-foreword", AccessibilityRole::LandmarkDocRegion },
     2240        { "doc-glossary", AccessibilityRole::LandmarkDocRegion },
     2241        { "doc-glossref", AccessibilityRole::WebCoreLink },
     2242        { "doc-index", AccessibilityRole::LandmarkNavigation },
     2243        { "doc-introduction", AccessibilityRole::LandmarkDocRegion },
     2244        { "doc-noteref", AccessibilityRole::WebCoreLink },
     2245        { "doc-notice", AccessibilityRole::DocumentNote },
     2246        { "doc-pagebreak", AccessibilityRole::Splitter },
     2247        { "doc-pagelist", AccessibilityRole::LandmarkNavigation },
     2248        { "doc-part", AccessibilityRole::LandmarkDocRegion },
     2249        { "doc-preface", AccessibilityRole::LandmarkDocRegion },
     2250        { "doc-prologue", AccessibilityRole::LandmarkDocRegion },
     2251        { "doc-pullquote", AccessibilityRole::ApplicationTextGroup },
     2252        { "doc-qna", AccessibilityRole::ApplicationTextGroup },
     2253        { "doc-subtitle", AccessibilityRole::Heading },
     2254        { "doc-tip", AccessibilityRole::DocumentNote },
     2255        { "doc-toc", AccessibilityRole::LandmarkNavigation },
     2256        { "figure", AccessibilityRole::Figure },
     2257        { "grid", AccessibilityRole::Grid },
     2258        { "gridcell", AccessibilityRole::GridCell },
     2259        { "table", AccessibilityRole::Table },
     2260        { "cell", AccessibilityRole::Cell },
     2261        { "columnheader", AccessibilityRole::ColumnHeader },
     2262        { "combobox", AccessibilityRole::ComboBox },
     2263        { "definition", AccessibilityRole::Definition },
     2264        { "document", AccessibilityRole::Document },
     2265        { "feed", AccessibilityRole::Feed },
     2266        { "form", AccessibilityRole::Form },
     2267        { "rowheader", AccessibilityRole::RowHeader },
     2268        { "group", AccessibilityRole::ApplicationGroup },
     2269        { "heading", AccessibilityRole::Heading },
     2270        { "img", AccessibilityRole::Image },
     2271        { "link", AccessibilityRole::WebCoreLink },
     2272        { "list", AccessibilityRole::List },
     2273        { "listitem", AccessibilityRole::ListItem },
     2274        { "listbox", AccessibilityRole::ListBox },
     2275        { "log", AccessibilityRole::ApplicationLog },
     2276        { "main", AccessibilityRole::LandmarkMain },
     2277        { "marquee", AccessibilityRole::ApplicationMarquee },
     2278        { "math", AccessibilityRole::DocumentMath },
     2279        { "menu", AccessibilityRole::Menu },
     2280        { "menubar", AccessibilityRole::MenuBar },
     2281        { "menuitem", AccessibilityRole::MenuItem },
     2282        { "menuitemcheckbox", AccessibilityRole::MenuItemCheckbox },
     2283        { "menuitemradio", AccessibilityRole::MenuItemRadio },
     2284        { "none", AccessibilityRole::Presentational },
     2285        { "note", AccessibilityRole::DocumentNote },
     2286        { "navigation", AccessibilityRole::LandmarkNavigation },
     2287        { "option", AccessibilityRole::ListBoxOption },
     2288        { "presentation", AccessibilityRole::Presentational },
     2289        { "progressbar", AccessibilityRole::ProgressIndicator },
     2290        { "radio", AccessibilityRole::RadioButton },
     2291        { "radiogroup", AccessibilityRole::RadioGroup },
     2292        { "region", AccessibilityRole::LandmarkRegion },
     2293        { "row", AccessibilityRole::Row },
     2294        { "rowgroup", AccessibilityRole::RowGroup },
     2295        { "scrollbar", AccessibilityRole::ScrollBar },
     2296        { "search", AccessibilityRole::LandmarkSearch },
     2297        { "searchbox", AccessibilityRole::SearchField },
     2298        { "separator", AccessibilityRole::Splitter },
     2299        { "slider", AccessibilityRole::Slider },
     2300        { "spinbutton", AccessibilityRole::SpinButton },
     2301        { "status", AccessibilityRole::ApplicationStatus },
     2302        { "switch", AccessibilityRole::Switch },
     2303        { "tab", AccessibilityRole::Tab },
     2304        { "tablist", AccessibilityRole::TabList },
     2305        { "tabpanel", AccessibilityRole::TabPanel },
     2306        { "text", AccessibilityRole::StaticText },
     2307        { "textbox", AccessibilityRole::TextArea },
     2308        { "term", AccessibilityRole::Term },
     2309        { "timer", AccessibilityRole::ApplicationTimer },
     2310        { "toolbar", AccessibilityRole::Toolbar },
     2311        { "tooltip", AccessibilityRole::UserInterfaceTooltip },
     2312        { "tree", AccessibilityRole::Tree },
     2313        { "treegrid", AccessibilityRole::TreeGrid },
     2314        { "treeitem", AccessibilityRole::TreeItem }
    23302315    };
    23312316
     
    23352320    for (size_t i = 0; i < roleLength; ++i) {
    23362321        gAriaRoleMap->set(roles[i].ariaRole, roles[i].webcoreRole);
    2337         gAriaReverseRoleMap->set(roles[i].webcoreRole, roles[i].ariaRole);
     2322        gAriaReverseRoleMap->set(static_cast<int>(roles[i].webcoreRole), roles[i].ariaRole);
    23382323    }
    23392324}
     
    23552340    ASSERT(!value.isEmpty());
    23562341    for (auto roleName : StringView(value).split(' ')) {
    2357         if (AccessibilityRole role = ariaRoleMap().get<ASCIICaseInsensitiveStringViewHashTranslator>(roleName))
     2342        AccessibilityRole role = ariaRoleMap().get<ASCIICaseInsensitiveStringViewHashTranslator>(roleName);
     2343        if (static_cast<int>(role))
    23582344            return role;
    23592345    }
    2360     return UnknownRole;
     2346    return AccessibilityRole::Unknown;
    23612347}
    23622348
     
    23672353
    23682354    // We do not compute a role string for generic block elements with user-agent assigned roles.
    2369     if (role == GroupRole || role == TextGroupRole)
     2355    if (role == AccessibilityRole::Group || role == AccessibilityRole::TextGroup)
    23702356        return "";
    23712357
    23722358    // We do compute a role string for block elements with author-provided roles.
    2373     if (role == ApplicationTextGroupRole || role == FootnoteRole)
    2374         return reverseAriaRoleMap().get(ApplicationGroupRole);
    2375 
    2376     if (role == HorizontalRuleRole)
    2377         return reverseAriaRoleMap().get(SplitterRole);
    2378 
    2379     if (role == PopUpButtonRole || role == ToggleButtonRole)
    2380         return reverseAriaRoleMap().get(ButtonRole);
    2381 
    2382     if (role == LandmarkDocRegionRole)
    2383         return reverseAriaRoleMap().get(LandmarkRegionRole);
    2384 
    2385     return reverseAriaRoleMap().get(role);
     2359    if (role == AccessibilityRole::ApplicationTextGroup || role == AccessibilityRole::Footnote)
     2360        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::ApplicationGroup));
     2361
     2362    if (role == AccessibilityRole::HorizontalRule)
     2363        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Splitter));
     2364
     2365    if (role == AccessibilityRole::PopUpButton || role == AccessibilityRole::ToggleButton)
     2366        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Button));
     2367
     2368    if (role == AccessibilityRole::LandmarkDocRegion)
     2369        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::LandmarkRegion));
     2370
     2371    return reverseAriaRoleMap().get(static_cast<int>(role));
    23862372}
    23872373
     
    24102396    if (isButton())
    24112397        return true;
    2412     if (roleValue() == DetailsRole)
     2398    if (roleValue() == AccessibilityRole::Details)
    24132399        return true;
    24142400   
     
    24232409            // Search within for immediate descendants that are static text. If we find more than one
    24242410            // then this is an event delegator actionElement and we should expose the press action.
    2425             Vector<AccessibilitySearchKey> keys({ StaticTextSearchKey, ControlSearchKey, GraphicSearchKey, HeadingSearchKey, LinkSearchKey });
    2426             AccessibilitySearchCriteria criteria(axObj, SearchDirectionNext, emptyString(), 2, false, false);
     2411            Vector<AccessibilitySearchKey> keys({ AccessibilitySearchKey::StaticText, AccessibilitySearchKey::Control, AccessibilitySearchKey::Graphic, AccessibilitySearchKey::Heading, AccessibilitySearchKey::Link });
     2412            AccessibilitySearchCriteria criteria(axObj, AccessibilitySearchDirection::Next, emptyString(), 2, false, false);
    24272413            criteria.searchKeys = keys;
    24282414            axObj->findMatchingObjects(&criteria, results);
     
    25952581{
    25962582    AccessibilityRole role = roleValue();
    2597     if (role != RowHeaderRole && role != ColumnHeaderRole)
    2598         return SortDirectionInvalid;
     2583    if (role != AccessibilityRole::RowHeader && role != AccessibilityRole::ColumnHeader)
     2584        return AccessibilitySortDirection::Invalid;
    25992585
    26002586    const AtomicString& sortAttribute = getAttribute(aria_sortAttr);
    26012587    if (equalLettersIgnoringASCIICase(sortAttribute, "ascending"))
    2602         return SortDirectionAscending;
     2588        return AccessibilitySortDirection::Ascending;
    26032589    if (equalLettersIgnoringASCIICase(sortAttribute, "descending"))
    2604         return SortDirectionDescending;
     2590        return AccessibilitySortDirection::Descending;
    26052591    if (equalLettersIgnoringASCIICase(sortAttribute, "other"))
    2606         return SortDirectionOther;
    2607    
    2608     return SortDirectionNone;
     2592        return AccessibilitySortDirection::Other;
     2593   
     2594    return AccessibilitySortDirection::None;
    26092595}
    26102596
     
    26962682        return true;
    26972683    switch (roleValue()) {
    2698     case ComboBoxRole:
    2699     case DisclosureTriangleRole:
    2700     case DetailsRole:
     2684    case AccessibilityRole::ComboBox:
     2685    case AccessibilityRole::DisclosureTriangle:
     2686    case AccessibilityRole::Details:
    27012687        return true;
    27022688    default:
     
    27162702    if (isSummary()) {
    27172703        if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) {
    2718             return object.roleValue() == DetailsRole;
     2704            return object.roleValue() == AccessibilityRole::Details;
    27192705        }))
    27202706            return parent->isExpanded();
     
    27272713{
    27282714    switch (roleValue()) {
    2729     case CheckBoxRole:
    2730     case MenuItemCheckboxRole:
    2731     case MenuItemRadioRole:
    2732     case RadioButtonRole:
    2733     case SwitchRole:
     2715    case AccessibilityRole::CheckBox:
     2716    case AccessibilityRole::MenuItemCheckbox:
     2717    case AccessibilityRole::MenuItemRadio:
     2718    case AccessibilityRole::RadioButton:
     2719    case AccessibilityRole::Switch:
    27342720        return true;
    27352721    default:
     
    27472733        const AtomicString& ariaPressed = getAttribute(aria_pressedAttr);
    27482734        if (equalLettersIgnoringASCIICase(ariaPressed, "true"))
    2749             return ButtonStateOn;
     2735            return AccessibilityButtonState::On;
    27502736        if (equalLettersIgnoringASCIICase(ariaPressed, "mixed"))
    2751             return ButtonStateMixed;
    2752         return ButtonStateOff;
     2737            return AccessibilityButtonState::Mixed;
     2738        return AccessibilityButtonState::Off;
    27532739    }
    27542740   
    27552741    const AtomicString& result = getAttribute(aria_checkedAttr);
    27562742    if (equalLettersIgnoringASCIICase(result, "true"))
    2757         return ButtonStateOn;
     2743        return AccessibilityButtonState::On;
    27582744    if (equalLettersIgnoringASCIICase(result, "mixed")) {
    27592745        // ARIA says that radio, menuitemradio, and switch elements must NOT expose button state mixed.
    27602746        AccessibilityRole ariaRole = ariaRoleAttribute();
    2761         if (ariaRole == RadioButtonRole || ariaRole == MenuItemRadioRole || ariaRole == SwitchRole)
    2762             return ButtonStateOff;
    2763         return ButtonStateMixed;
     2747        if (ariaRole == AccessibilityRole::RadioButton || ariaRole == AccessibilityRole::MenuItemRadio || ariaRole == AccessibilityRole::Switch)
     2748            return AccessibilityButtonState::Off;
     2749        return AccessibilityButtonState::Mixed;
    27642750    }
    27652751   
    27662752    if (isIndeterminate())
    2767         return ButtonStateMixed;
    2768    
    2769     return ButtonStateOff;
     2753        return AccessibilityButtonState::Mixed;
     2754   
     2755    return AccessibilityButtonState::Off;
    27702756}
    27712757
     
    30663052    IntRect scrollVisibleRect = scrollableArea->visibleContentRect(ScrollableArea::LegacyIOSDocumentVisibleRect);
    30673053    switch (direction) {
    3068     case Right: {
     3054    case ScrollByPageDirection::Right: {
    30693055        int scrollAmount = scrollVisibleRect.size().width();
    30703056        int newX = scrollPosition.x() - scrollAmount;
     
    30723058        break;
    30733059    }
    3074     case Left: {
     3060    case ScrollByPageDirection::Left: {
    30753061        int scrollAmount = scrollVisibleRect.size().width();
    30763062        int newX = scrollAmount + scrollPosition.x();
     
    30793065        break;
    30803066    }
    3081     case Up: {
     3067    case ScrollByPageDirection::Up: {
    30823068        int scrollAmount = scrollVisibleRect.size().height();
    30833069        int newY = scrollPosition.y() - scrollAmount;
     
    30853071        break;
    30863072    }
    3087     case Down: {
     3073    case ScrollByPageDirection::Down: {
    30883074        int scrollAmount = scrollVisibleRect.size().height();
    30893075        int newY = scrollAmount + scrollPosition.y();
     
    30923078        break;
    30933079    }
    3094     default:
    3095         break;
    30963080    }
    30973081   
     
    31083092bool AccessibilityObject::lastKnownIsIgnoredValue()
    31093093{
    3110     if (m_lastKnownIsIgnoredValue == DefaultBehavior)
    3111         m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : IncludeObject;
    3112 
    3113     return m_lastKnownIsIgnoredValue == IgnoreObject;
     3094    if (m_lastKnownIsIgnoredValue == AccessibilityObjectInclusion::DefaultBehavior)
     3095        m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject;
     3096
     3097    return m_lastKnownIsIgnoredValue == AccessibilityObjectInclusion::IgnoreObject;
    31143098}
    31153099
    31163100void AccessibilityObject::setLastKnownIsIgnoredValue(bool isIgnored)
    31173101{
    3118     m_lastKnownIsIgnoredValue = isIgnored ? IgnoreObject : IncludeObject;
     3102    m_lastKnownIsIgnoredValue = isIgnored ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject;
    31193103}
    31203104
     
    31523136    // http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
    31533137    if (ariaPressedIsPresent())
    3154         return ToggleButtonRole;
     3138        return AccessibilityRole::ToggleButton;
    31553139    if (ariaHasPopup())
    3156         return PopUpButtonRole;
    3157     // We don't contemplate RadioButtonRole, as it depends on the input
     3140        return AccessibilityRole::PopUpButton;
     3141    // We don't contemplate AccessibilityRole::RadioButton, as it depends on the input
    31583142    // type.
    31593143
    3160     return ButtonRole;
     3144    return AccessibilityRole::Button;
    31613145}
    31623146
     
    31653149    AccessibilityRole role = roleValue();
    31663150
    3167     return role == ButtonRole || role == PopUpButtonRole || role == ToggleButtonRole;
     3151    return role == AccessibilityRole::Button || role == AccessibilityRole::PopUpButton || role == AccessibilityRole::ToggleButton;
    31683152}
    31693153
    31703154bool AccessibilityObject::accessibilityIsIgnoredByDefault() const
    31713155{
    3172     return defaultObjectInclusion() == IgnoreObject;
     3156    return defaultObjectInclusion() == AccessibilityObjectInclusion::IgnoreObject;
    31733157}
    31743158
     
    32133197   
    32143198    if (useParentData ? m_isIgnoredFromParentData.isARIAHidden : isARIAHidden())
    3215         return IgnoreObject;
     3199        return AccessibilityObjectInclusion::IgnoreObject;
    32163200   
    32173201    if (ignoredFromARIAModalPresence())
    3218         return IgnoreObject;
     3202        return AccessibilityObjectInclusion::IgnoreObject;
    32193203   
    32203204    if (useParentData ? m_isIgnoredFromParentData.isPresentationalChildOfAriaRole : isPresentationalChildOfAriaRole())
    3221         return IgnoreObject;
     3205        return AccessibilityObjectInclusion::IgnoreObject;
    32223206   
    32233207    return accessibilityPlatformIncludesObject();
     
    32343218        AccessibilityObjectInclusion ignored = attributeCache->getIgnored(axObjectID());
    32353219        switch (ignored) {
    3236         case IgnoreObject:
     3220        case AccessibilityObjectInclusion::IgnoreObject:
    32373221            return true;
    3238         case IncludeObject:
     3222        case AccessibilityObjectInclusion::IncludeObject:
    32393223            return false;
    3240         case DefaultBehavior:
     3224        case AccessibilityObjectInclusion::DefaultBehavior:
    32413225            break;
    32423226        }
     
    32473231    // In case computing axIsIgnored disables attribute caching, we should refetch the object to see if it exists.
    32483232    if (cache && (attributeCache = cache->computedObjectAttributeCache()))
    3249         attributeCache->setIgnored(axObjectID(), result ? IgnoreObject : IncludeObject);
     3233        attributeCache->setIgnored(axObjectID(), result ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject);
    32503234
    32513235    return result;
     
    33703354        return false;
    33713355   
    3372     if (ariaRoleAttribute() != UnknownRole)
     3356    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
    33733357        return false;
    33743358
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r223766 r224074  
    9393typedef unsigned AXID;
    9494
    95 enum AccessibilityRole {
    96     AnnotationRole = 1,
    97     ApplicationRole,
    98     ApplicationAlertRole,
    99     ApplicationAlertDialogRole,
    100     ApplicationDialogRole,
    101     ApplicationGroupRole,
    102     ApplicationLogRole,
    103     ApplicationMarqueeRole,
    104     ApplicationStatusRole,
    105     ApplicationTextGroupRole,
    106     ApplicationTimerRole,
    107     AudioRole,
    108     BlockquoteRole,
    109     BrowserRole,
    110     BusyIndicatorRole,
    111     ButtonRole,
    112     CanvasRole,
    113     CaptionRole,
    114     CellRole,
    115     CheckBoxRole,
    116     ColorWellRole,
    117     ColumnRole,
    118     ColumnHeaderRole,
    119     ComboBoxRole,
    120     DefinitionRole,
    121     DescriptionListRole,
    122     DescriptionListTermRole,
    123     DescriptionListDetailRole,
    124     DetailsRole,
    125     DirectoryRole,
    126     DisclosureTriangleRole,
    127     DivRole,
    128     DocumentRole,
    129     DocumentArticleRole,
    130     DocumentMathRole,
    131     DocumentNoteRole,
    132     DrawerRole,
    133     EditableTextRole,
    134     FeedRole,
    135     FigureRole,
    136     FooterRole,
    137     FootnoteRole,
    138     FormRole,
    139     GridRole,
    140     GridCellRole,
    141     GroupRole,
    142     GrowAreaRole,
    143     HeadingRole,
    144     HelpTagRole,
    145     HorizontalRuleRole,
    146     IgnoredRole,
    147     InlineRole,
    148     ImageRole,
    149     ImageMapRole,
    150     ImageMapLinkRole,
    151     IncrementorRole,
    152     LabelRole,
    153     LandmarkBannerRole,
    154     LandmarkComplementaryRole,
    155     LandmarkContentInfoRole,
    156     LandmarkDocRegionRole,
    157     LandmarkMainRole,
    158     LandmarkNavigationRole,
    159     LandmarkRegionRole,
    160     LandmarkSearchRole,
    161     LegendRole,
    162     LinkRole,
    163     ListRole,
    164     ListBoxRole,
    165     ListBoxOptionRole,
    166     ListItemRole,
    167     ListMarkerRole,
    168     MarkRole,
    169     MathElementRole,
    170     MatteRole,
    171     MenuRole,
    172     MenuBarRole,
    173     MenuButtonRole,
    174     MenuItemRole,
    175     MenuItemCheckboxRole,
    176     MenuItemRadioRole,
    177     MenuListPopupRole,
    178     MenuListOptionRole,
    179     OutlineRole,
    180     ParagraphRole,
    181     PopUpButtonRole,
    182     PreRole,
    183     PresentationalRole,
    184     ProgressIndicatorRole,
    185     RadioButtonRole,
    186     RadioGroupRole,
    187     RowHeaderRole,
    188     RowRole,
    189     RowGroupRole,
    190     RubyBaseRole,
    191     RubyBlockRole,
    192     RubyInlineRole,
    193     RubyRunRole,
    194     RubyTextRole,
    195     RulerRole,
    196     RulerMarkerRole,
    197     ScrollAreaRole,
    198     ScrollBarRole,
    199     SearchFieldRole,
    200     SheetRole,
    201     SliderRole,
    202     SliderThumbRole,
    203     SpinButtonRole,
    204     SpinButtonPartRole,
    205     SplitGroupRole,
    206     SplitterRole,
    207     StaticTextRole,
    208     SummaryRole,
    209     SwitchRole,
    210     SystemWideRole,
    211     SVGRootRole,
    212     SVGTextRole,
    213     SVGTSpanRole,
    214     SVGTextPathRole,
    215     TabGroupRole,
    216     TabListRole,
    217     TabPanelRole,           
    218     TabRole,
    219     TableRole,
    220     TableHeaderContainerRole,
    221     TextAreaRole,
    222     TextGroupRole,
    223     TermRole,
    224     TimeRole,
    225     TreeRole,
    226     TreeGridRole,
    227     TreeItemRole,
    228     TextFieldRole,
    229     ToggleButtonRole,
    230     ToolbarRole,
    231     UnknownRole,
    232     UserInterfaceTooltipRole,
    233     ValueIndicatorRole,
    234     VideoRole,
    235     WebApplicationRole,
    236     WebAreaRole,
    237     WebCoreLinkRole,
    238     WindowRole,
    239 };
    240 
    241 enum AccessibilityTextSource {
    242     AlternativeText,
    243     ChildrenText,
    244     SummaryText,
    245     HelpText,
    246     VisibleText,
    247     TitleTagText,
    248     PlaceholderText,
    249     LabelByElementText,
    250     TitleText,
    251     SubtitleText,
    252     ActionText,
     95enum class AccessibilityRole {
     96    Annotation = 1,
     97    Application,
     98    ApplicationAlert,
     99    ApplicationAlertDialog,
     100    ApplicationDialog,
     101    ApplicationGroup,
     102    ApplicationLog,
     103    ApplicationMarquee,
     104    ApplicationStatus,
     105    ApplicationTextGroup,
     106    ApplicationTimer,
     107    Audio,
     108    Blockquote,
     109    Browser,
     110    BusyIndicator,
     111    Button,
     112    Canvas,
     113    Caption,
     114    Cell,
     115    CheckBox,
     116    ColorWell,
     117    Column,
     118    ColumnHeader,
     119    ComboBox,
     120    Definition,
     121    DescriptionList,
     122    DescriptionListTerm,
     123    DescriptionListDetail,
     124    Details,
     125    Directory,
     126    DisclosureTriangle,
     127    Div,
     128    Document,
     129    DocumentArticle,
     130    DocumentMath,
     131    DocumentNote,
     132    Drawer,
     133    EditableText,
     134    Feed,
     135    Figure,
     136    Footer,
     137    Footnote,
     138    Form,
     139    Grid,
     140    GridCell,
     141    Group,
     142    GrowArea,
     143    Heading,
     144    HelpTag,
     145    HorizontalRule,
     146    Ignored,
     147    Inline,
     148    Image,
     149    ImageMap,
     150    ImageMapLink,
     151    Incrementor,
     152    Label,
     153    LandmarkBanner,
     154    LandmarkComplementary,
     155    LandmarkContentInfo,
     156    LandmarkDocRegion,
     157    LandmarkMain,
     158    LandmarkNavigation,
     159    LandmarkRegion,
     160    LandmarkSearch,
     161    Legend,
     162    Link,
     163    List,
     164    ListBox,
     165    ListBoxOption,
     166    ListItem,
     167    ListMarker,
     168    Mark,
     169    MathElement,
     170    Matte,
     171    Menu,
     172    MenuBar,
     173    MenuButton,
     174    MenuItem,
     175    MenuItemCheckbox,
     176    MenuItemRadio,
     177    MenuListPopup,
     178    MenuListOption,
     179    Outline,
     180    Paragraph,
     181    PopUpButton,
     182    Pre,
     183    Presentational,
     184    ProgressIndicator,
     185    RadioButton,
     186    RadioGroup,
     187    RowHeader,
     188    Row,
     189    RowGroup,
     190    RubyBase,
     191    RubyBlock,
     192    RubyInline,
     193    RubyRun,
     194    RubyText,
     195    Ruler,
     196    RulerMarker,
     197    ScrollArea,
     198    ScrollBar,
     199    SearchField,
     200    Sheet,
     201    Slider,
     202    SliderThumb,
     203    SpinButton,
     204    SpinButtonPart,
     205    SplitGroup,
     206    Splitter,
     207    StaticText,
     208    Summary,
     209    Switch,
     210    SystemWide,
     211    SVGRoot,
     212    SVGText,
     213    SVGTSpan,
     214    SVGTextPath,
     215    TabGroup,
     216    TabList,
     217    TabPanel,
     218    Tab,
     219    Table,
     220    TableHeaderContainer,
     221    TextArea,
     222    TextGroup,
     223    Term,
     224    Time,
     225    Tree,
     226    TreeGrid,
     227    TreeItem,
     228    TextField,
     229    ToggleButton,
     230    Toolbar,
     231    Unknown,
     232    UserInterfaceTooltip,
     233    ValueIndicator,
     234    Video,
     235    WebApplication,
     236    WebArea,
     237    WebCoreLink,
     238    Window,
     239};
     240
     241enum class AccessibilityTextSource {
     242    Alternative,
     243    Children,
     244    Summary,
     245    Help,
     246    Visible,
     247    TitleTag,
     248    Placeholder,
     249    LabelByElement,
     250    Title,
     251    Subtitle,
     252    Action,
    253253};
    254254   
     
    256256    String text;
    257257    AccessibilityTextSource textSource;
    258     Vector<RefPtr<AccessibilityObject>> textElements;
     258    Vector<Ref<AccessibilityObject>> textElements;
    259259   
    260260    AccessibilityText(const String& t, const AccessibilityTextSource& s)
    261     : text(t)
    262     , textSource(s)
     261        : text(t)
     262        , textSource(s)
    263263    { }
    264264
    265     AccessibilityText(const String& t, const AccessibilityTextSource& s, Vector<RefPtr<AccessibilityObject>> elements)
    266     : text(t)
    267     , textSource(s)
    268     , textElements(WTFMove(elements))
     265    AccessibilityText(const String& t, const AccessibilityTextSource& s, Vector<Ref<AccessibilityObject>> elements)
     266        : text(t)
     267        , textSource(s)
     268        , textElements(WTFMove(elements))
    269269    { }
    270270
    271     AccessibilityText(const String& t, const AccessibilityTextSource& s, const RefPtr<AccessibilityObject> element)
    272     : text(t)
    273     , textSource(s)
     271    AccessibilityText(const String& t, const AccessibilityTextSource& s, Ref<AccessibilityObject>&& element)
     272        : text(t)
     273        , textSource(s)
    274274    {
    275         textElements.append(element);
     275        textElements.append(WTFMove(element));
    276276    }
    277277};
     
    292292        , includeFocusableContent(i)
    293293        , ignoredChildNode(ignored)
    294         { }
     294    { }
    295295};
    296296
     
    298298// we avoid going up the parent chain for each element while traversing the tree with useful information already.
    299299struct AccessibilityIsIgnoredFromParentData {
    300     AccessibilityObject* parent;
    301     bool isARIAHidden;
    302     bool isPresentationalChildOfAriaRole;
    303     bool isDescendantOfBarrenParent;
     300    AccessibilityObject* parent { nullptr };
     301    bool isARIAHidden { false };
     302    bool isPresentationalChildOfAriaRole { false };
     303    bool isDescendantOfBarrenParent { false };
    304304   
    305305    AccessibilityIsIgnoredFromParentData(AccessibilityObject* parent = nullptr)
    306306        : parent(parent)
    307         , isARIAHidden(false)
    308         , isPresentationalChildOfAriaRole(false)
    309         , isDescendantOfBarrenParent(false)
    310         { }
    311    
     307    { }
     308
    312309    bool isNull() const { return !parent; }
    313310};
    314311   
    315 enum AccessibilityOrientation {
    316     AccessibilityOrientationVertical,
    317     AccessibilityOrientationHorizontal,
    318     AccessibilityOrientationUndefined,
    319 };
    320    
    321 enum AccessibilityObjectInclusion {
     312enum class AccessibilityOrientation {
     313    Vertical,
     314    Horizontal,
     315    Undefined,
     316};
     317   
     318enum class AccessibilityObjectInclusion {
    322319    IncludeObject,
    323320    IgnoreObject,
     
    325322};
    326323   
    327 enum AccessibilityButtonState {
    328     ButtonStateOff = 0,
    329     ButtonStateOn,
    330     ButtonStateMixed,
    331 };
    332    
    333 enum AccessibilitySortDirection {
    334     SortDirectionNone,
    335     SortDirectionAscending,
    336     SortDirectionDescending,
    337     SortDirectionOther,
    338     SortDirectionInvalid
    339 };
    340 
    341 enum AccessibilitySearchDirection {
    342     SearchDirectionNext = 1,
    343     SearchDirectionPrevious
    344 };
    345 
    346 enum AccessibilitySearchKey {
    347     AnyTypeSearchKey = 1,
    348     ArticleSearchKey,
    349     BlockquoteSameLevelSearchKey,
    350     BlockquoteSearchKey,
    351     BoldFontSearchKey,
    352     ButtonSearchKey,
    353     CheckBoxSearchKey,
    354     ControlSearchKey,
    355     DifferentTypeSearchKey,
    356     FontChangeSearchKey,
    357     FontColorChangeSearchKey,
    358     FrameSearchKey,
    359     GraphicSearchKey,
    360     HeadingLevel1SearchKey,
    361     HeadingLevel2SearchKey,
    362     HeadingLevel3SearchKey,
    363     HeadingLevel4SearchKey,
    364     HeadingLevel5SearchKey,
    365     HeadingLevel6SearchKey,
    366     HeadingSameLevelSearchKey,
    367     HeadingSearchKey,
    368     HighlightedSearchKey,
    369     ItalicFontSearchKey,
    370     LandmarkSearchKey,
    371     LinkSearchKey,
    372     ListSearchKey,
    373     LiveRegionSearchKey,
    374     MisspelledWordSearchKey,
    375     OutlineSearchKey,
    376     PlainTextSearchKey,
    377     RadioGroupSearchKey,
    378     SameTypeSearchKey,
    379     StaticTextSearchKey,
    380     StyleChangeSearchKey,
    381     TableSameLevelSearchKey,
    382     TableSearchKey,
    383     TextFieldSearchKey,
    384     UnderlineSearchKey,
    385     UnvisitedLinkSearchKey,
    386     VisitedLinkSearchKey
    387 };
    388 
    389 enum AccessibilityVisiblePositionForBounds {
    390     FirstVisiblePositionForBounds,
    391     LastVisiblePositionForBounds
     324enum class AccessibilityButtonState {
     325    Off = 0,
     326    On,
     327    Mixed,
     328};
     329   
     330enum class AccessibilitySortDirection {
     331    None,
     332    Ascending,
     333    Descending,
     334    Other,
     335    Invalid,
     336};
     337
     338enum class AccessibilitySearchDirection {
     339    Next = 1,
     340    Previous,
     341};
     342
     343enum class AccessibilitySearchKey {
     344    AnyType = 1,
     345    Article,
     346    BlockquoteSameLevel,
     347    Blockquote,
     348    BoldFont,
     349    Button,
     350    CheckBox,
     351    Control,
     352    DifferentType,
     353    FontChange,
     354    FontColorChange,
     355    Frame,
     356    Graphic,
     357    HeadingLevel1,
     358    HeadingLevel2,
     359    HeadingLevel3,
     360    HeadingLevel4,
     361    HeadingLevel5,
     362    HeadingLevel6,
     363    HeadingSameLevel,
     364    Heading,
     365    Highlighted,
     366    ItalicFont,
     367    Landmark,
     368    Link,
     369    List,
     370    LiveRegion,
     371    MisspelledWord,
     372    Outline,
     373    PlainText,
     374    RadioGroup,
     375    SameType,
     376    StaticText,
     377    StyleChange,
     378    TableSameLevel,
     379    Table,
     380    TextField,
     381    Underline,
     382    UnvisitedLink,
     383    VisitedLink,
     384};
     385
     386enum class AccessibilityVisiblePositionForBounds {
     387    First,
     388    Last,
    392389};
    393390
     
    411408};
    412409   
    413 enum AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed };
     410enum class AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed };
    414411
    415412struct VisiblePositionRange {
     
    435432struct PlainTextRange {
    436433       
    437     unsigned start;
    438     unsigned length;
    439    
    440     PlainTextRange()
    441         : start(0)
    442         , length(0)
    443     { }
     434    unsigned start { 0 };
     435    unsigned length { 0 };
     436   
     437    PlainTextRange() = default;
    444438   
    445439    PlainTextRange(unsigned s, unsigned l)
     
    451445};
    452446
    453 enum AccessibilitySelectTextActivity {
    454     FindAndReplaceActivity,
    455     FindAndSelectActivity,
     447enum class AccessibilitySelectTextActivity {
     448    FindAndReplace,
     449    FindAndSelect,
    456450    FindAndCapitalize,
    457451    FindAndLowercase,
     
    459453};
    460454
    461 enum AccessibilitySelectTextAmbiguityResolution {
    462     ClosestAfterSelectionAmbiguityResolution,
    463     ClosestBeforeSelectionAmbiguityResolution,
    464     ClosestToSelectionAmbiguityResolution
     455enum class AccessibilitySelectTextAmbiguityResolution {
     456    ClosestAfter,
     457    ClosestBefore,
     458    ClosestTo
    465459};
    466460
     
    478472};
    479473
    480 enum AccessibilityMathScriptObjectType { Subscript, Superscript };
    481 enum AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript };
    482 
    483 enum AccessibilityARIACurrentState { ARIACurrentFalse, ARIACurrentTrue, ARIACurrentPage, ARIACurrentStep, ARIACurrentLocation, ARIACurrentDate, ARIACurrentTime };
     474enum class AccessibilityMathScriptObjectType { Subscript, Superscript };
     475enum class AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript };
     476
     477enum class AccessibilityARIACurrentState { False, True, Page, Step, Location, Date, Time };
    484478   
    485479bool nodeHasPresentationRole(Node*);
     
    487481class AccessibilityObject : public RefCounted<AccessibilityObject> {
    488482protected:
    489     AccessibilityObject();
     483    AccessibilityObject() = default;
    490484   
    491485public:
     
    518512    virtual bool isLink() const { return false; }
    519513    virtual bool isImage() const { return false; }
    520     virtual bool isImageMap() const { return roleValue() == ImageMapRole; }
     514    virtual bool isImageMap() const { return roleValue() == AccessibilityRole::ImageMap; }
    521515    virtual bool isNativeImage() const { return false; }
    522516    virtual bool isImageButton() const { return false; }
     
    526520    virtual bool isNativeTextControl() const { return false; }
    527521    virtual bool isSearchField() const { return false; }
    528     bool isWebArea() const { return roleValue() == WebAreaRole; }
    529     virtual bool isCheckbox() const { return roleValue() == CheckBoxRole; }
    530     virtual bool isRadioButton() const { return roleValue() == RadioButtonRole; }
     522    bool isWebArea() const { return roleValue() == AccessibilityRole::WebArea; }
     523    virtual bool isCheckbox() const { return roleValue() == AccessibilityRole::CheckBox; }
     524    virtual bool isRadioButton() const { return roleValue() == AccessibilityRole::RadioButton; }
    531525    virtual bool isNativeListBox() const { return false; }
    532     bool isListBox() const { return roleValue() == ListBoxRole; }
     526    bool isListBox() const { return roleValue() == AccessibilityRole::ListBox; }
    533527    virtual bool isListBoxOption() const { return false; }
    534528    virtual bool isAttachment() const { return false; }
     
    560554    virtual bool isMenuListPopup() const { return false; }
    561555    virtual bool isMenuListOption() const { return false; }
    562     virtual bool isSpinButton() const { return roleValue() == SpinButtonRole; }
     556    virtual bool isSpinButton() const { return roleValue() == AccessibilityRole::SpinButton; }
    563557    virtual bool isNativeSpinButton() const { return false; }
    564558    virtual bool isSpinButtonPart() const { return false; }
     
    566560    virtual bool isMediaControlLabel() const { return false; }
    567561    virtual bool isMediaObject() const { return false; }
    568     bool isSwitch() const { return roleValue() == SwitchRole; }
    569     bool isToggleButton() const { return roleValue() == ToggleButtonRole; }
     562    bool isSwitch() const { return roleValue() == AccessibilityRole::Switch; }
     563    bool isToggleButton() const { return roleValue() == AccessibilityRole::ToggleButton; }
    570564    bool isTextControl() const;
    571565    bool isARIATextControl() const;
    572566    bool isNonNativeTextControl() const;
    573     bool isTabList() const { return roleValue() == TabListRole; }
    574     bool isTabItem() const { return roleValue() == TabRole; }
    575     bool isRadioGroup() const { return roleValue() == RadioGroupRole; }
    576     bool isComboBox() const { return roleValue() == ComboBoxRole; }
    577     bool isTree() const { return roleValue() == TreeRole; }
    578     bool isTreeGrid() const { return roleValue() == TreeGridRole; }
    579     bool isTreeItem() const { return roleValue() == TreeItemRole; }
    580     bool isScrollbar() const { return roleValue() == ScrollBarRole; }
     567    bool isTabList() const { return roleValue() == AccessibilityRole::TabList; }
     568    bool isTabItem() const { return roleValue() == AccessibilityRole::Tab; }
     569    bool isRadioGroup() const { return roleValue() == AccessibilityRole::RadioGroup; }
     570    bool isComboBox() const { return roleValue() == AccessibilityRole::ComboBox; }
     571    bool isTree() const { return roleValue() == AccessibilityRole::Tree; }
     572    bool isTreeGrid() const { return roleValue() == AccessibilityRole::TreeGrid; }
     573    bool isTreeItem() const { return roleValue() == AccessibilityRole::TreeItem; }
     574    bool isScrollbar() const { return roleValue() == AccessibilityRole::ScrollBar; }
    581575    bool isButton() const;
    582     bool isListItem() const { return roleValue() == ListItemRole; }
     576    bool isListItem() const { return roleValue() == AccessibilityRole::ListItem; }
    583577    bool isCheckboxOrRadio() const { return isCheckbox() || isRadioButton(); }
    584     bool isScrollView() const { return roleValue() == ScrollAreaRole; }
    585     bool isCanvas() const { return roleValue() == CanvasRole; }
    586     bool isPopUpButton() const { return roleValue() == PopUpButtonRole; }
     578    bool isScrollView() const { return roleValue() == AccessibilityRole::ScrollArea; }
     579    bool isCanvas() const { return roleValue() == AccessibilityRole::Canvas; }
     580    bool isPopUpButton() const { return roleValue() == AccessibilityRole::PopUpButton; }
    587581    bool isBlockquote() const;
    588582    bool isLandmark() const;
    589     bool isColorWell() const { return roleValue() == ColorWellRole; }
     583    bool isColorWell() const { return roleValue() == AccessibilityRole::ColorWell; }
    590584    bool isRangeControl() const;
    591585    bool isMeter() const;
    592     bool isSplitter() const { return roleValue() == SplitterRole; }
    593     bool isToolbar() const { return roleValue() == ToolbarRole; }
     586    bool isSplitter() const { return roleValue() == AccessibilityRole::Splitter; }
     587    bool isToolbar() const { return roleValue() == AccessibilityRole::Toolbar; }
    594588    bool isStyleFormatGroup() const;
    595589    bool isSubscriptStyleGroup() const;
    596590    bool isSuperscriptStyleGroup() const;
    597591    bool isFigureElement() const;
    598     bool isSummary() const { return roleValue() == SummaryRole; }
     592    bool isSummary() const { return roleValue() == AccessibilityRole::Summary; }
    599593    bool isOutput() const;
    600594   
     
    629623    virtual bool hasSameFontColor(RenderObject*) const { return false; }
    630624    virtual bool hasSameStyle(RenderObject*) const { return false; }
    631     bool isStaticText() const { return roleValue() == StaticTextRole; }
     625    bool isStaticText() const { return roleValue() == AccessibilityRole::StaticText; }
    632626    virtual bool hasUnderline() const { return false; }
    633627    bool hasHighlighting() const;
     
    760754    virtual AccessibilityObject* scrollBar(AccessibilityOrientation) { return nullptr; }
    761755   
    762     virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; }
     756    virtual AccessibilityRole ariaRoleAttribute() const { return AccessibilityRole::Unknown; }
    763757    virtual bool isPresentationalChildOfAriaRole() const { return false; }
    764758    virtual bool ariaRoleHasPresentationalChildren() const { return false; }
     
    10091003    virtual void scrollToGlobalPoint(const IntPoint&) const;
    10101004   
    1011     enum ScrollByPageDirection { Up, Down, Left, Right };
     1005    enum class ScrollByPageDirection { Up, Down, Left, Right };
    10121006    bool scrollByPage(ScrollByPageDirection) const;
    10131007    IntPoint scrollPosition() const;
     
    11031097#else
    11041098    bool accessibilityIgnoreAttachment() const { return true; }
    1105     AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return DefaultBehavior; }
     1099    AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return AccessibilityObjectInclusion::DefaultBehavior; }
    11061100#endif
    11071101
     
    11361130   
    11371131protected:
    1138     AXID m_id;
     1132    AXID m_id { 0 };
    11391133    AccessibilityChildrenVector m_children;
    1140     mutable bool m_haveChildren;
    1141     AccessibilityRole m_role;
    1142     AccessibilityObjectInclusion m_lastKnownIsIgnoredValue;
    1143     AccessibilityIsIgnoredFromParentData m_isIgnoredFromParentData;
    1144     bool m_childrenDirty;
    1145     bool m_subtreeDirty;
     1134    mutable bool m_haveChildren { false };
     1135    AccessibilityRole m_role { AccessibilityRole::Unknown };
     1136    AccessibilityObjectInclusion m_lastKnownIsIgnoredValue { AccessibilityObjectInclusion::DefaultBehavior };
     1137    AccessibilityIsIgnoredFromParentData m_isIgnoredFromParentData { };
     1138    bool m_childrenDirty { false };
     1139    bool m_subtreeDirty { false };
    11461140
    11471141    void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData& data) { m_isIgnoredFromParentData = data; }
     
    11811175    COMPtr<AccessibilityObjectWrapper> m_wrapper;
    11821176#elif PLATFORM(GTK)
    1183     AtkObject* m_wrapper;
     1177    AtkObject* m_wrapper { nullptr };
    11841178#elif PLATFORM(WPE)
    11851179    RefPtr<AccessibilityObjectWrapper> m_wrapper;
  • trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h

    r208179 r224074  
    4343
    4444private:
    45     AccessibilityRole roleValue() const override { return ProgressIndicatorRole; }
     45    AccessibilityRole roleValue() const override { return AccessibilityRole::ProgressIndicator; }
    4646
    4747    bool isProgressIndicator() const override { return true; }
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r223766 r224074  
    492492        return nullptr;
    493493   
    494     if (ariaRoleAttribute() == MenuBarRole)
     494    if (ariaRoleAttribute() == AccessibilityRole::MenuBar)
    495495        return axObjectCache()->getOrCreate(m_renderer->parent());
    496496
    497497    // menuButton and its corresponding menu are DOM siblings, but Accessibility needs them to be parent/child
    498     if (ariaRoleAttribute() == MenuRole) {
     498    if (ariaRoleAttribute() == AccessibilityRole::Menu) {
    499499        AccessibilityObject* parent = menuButtonForMenu();
    500500        if (parent)
     
    525525    bool isWidget = renderer->isWidget();
    526526
    527     return isWidget && ariaRoleAttribute() == UnknownRole;
     527    return isWidget && ariaRoleAttribute() == AccessibilityRole::Unknown;
    528528}
    529529
     
    613613        // added to those kinds of elements, it is likely it was meant for a child element.
    614614        if (AccessibilityObject* axObj = axObjectCache()->getOrCreate(ancestor)) {
    615             if (!axObj->isGroup() && axObj->roleValue() != UnknownRole)
     615            if (!axObj->isGroup() && axObj->roleValue() != AccessibilityRole::Unknown)
    616616                break;
    617617        }
     
    744744    RenderBoxModelObject* cssBox = renderBoxModelObject();
    745745
    746     if (ariaRoleAttribute() == StaticTextRole) {
     746    if (ariaRoleAttribute() == AccessibilityRole::StaticText) {
    747747        String staticText = text();
    748748        if (!staticText.length())
     
    962962{
    963963    for (const auto& child : parent->children()) {
    964         if (child->roleValue() == RadioButtonRole)
     964        if (child->roleValue() == AccessibilityRole::RadioButton)
    965965            linkedUIElements.append(child);
    966966        else
     
    971971void AccessibilityRenderObject::addRadioButtonGroupMembers(AccessibilityChildrenVector& linkedUIElements) const
    972972{
    973     if (roleValue() != RadioButtonRole)
     973    if (roleValue() != AccessibilityRole::RadioButton)
    974974        return;
    975975   
     
    984984        // If we didn't find any radio button siblings with the traditional naming, lets search for a radio group role and find its children.
    985985        for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
    986             if (parent->roleValue() == RadioGroupRole)
     986            if (parent->roleValue() == AccessibilityRole::RadioGroup)
    987987                addRadioButtonGroupChildren(parent, linkedUIElements);
    988988        }
     
    10021002    }
    10031003
    1004     if (roleValue() == RadioButtonRole)
     1004    if (roleValue() == AccessibilityRole::RadioButton)
    10051005        addRadioButtonGroupMembers(linkedUIElements);
    10061006}
     
    11071107    bool isTreeItemDescendant = false;
    11081108    while (axObj) {
    1109         if (axObj->roleValue() == TreeItemRole)
     1109        if (axObj->roleValue() == AccessibilityRole::TreeItem)
    11101110            isTreeItemDescendant = true;
    11111111        if (axObj->isTree()) {
     
    11191119    if (isInTree) {
    11201120        AccessibilityRole role = roleValue();
    1121         if (role != TreeItemRole && role != StaticTextRole && !isTreeItemDescendant)
     1121        if (role != AccessibilityRole::TreeItem && role != AccessibilityRole::StaticText && !isTreeItemDescendant)
    11221122            return false;
    11231123    }
     
    11291129    // Don't ignore an image that has an alt tag.
    11301130    if (!altText.containsOnlyWhitespace())
    1131         return IncludeObject;
     1131        return AccessibilityObjectInclusion::IncludeObject;
    11321132   
    11331133    // The informal standard is to ignore images with zero-length alt strings.
    11341134    if (!altText.isNull())
    1135         return IgnoreObject;
    1136    
    1137     return DefaultBehavior;
     1135        return AccessibilityObjectInclusion::IgnoreObject;
     1136   
     1137    return AccessibilityObjectInclusion::DefaultBehavior;
    11381138}
    11391139
     
    11431143   
    11441144    if (!m_renderer)
    1145         return IgnoreObject;
     1145        return AccessibilityObjectInclusion::IgnoreObject;
    11461146
    11471147    if (m_renderer->style().visibility() != VISIBLE) {
    11481148        // aria-hidden is meant to override visibility as the determinant in AX hierarchy inclusion.
    11491149        if (equalLettersIgnoringASCIICase(getAttribute(aria_hiddenAttr), "false"))
    1150             return DefaultBehavior;
     1150            return AccessibilityObjectInclusion::DefaultBehavior;
    11511151       
    1152         return IgnoreObject;
     1152        return AccessibilityObjectInclusion::IgnoreObject;
    11531153    }
    11541154
     
    11801180    // that AccessibilityRenderObjects take on.
    11811181    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    1182     if (decision == IncludeObject)
    1183         return false;
    1184     if (decision == IgnoreObject)
     1182    if (decision == AccessibilityObjectInclusion::IncludeObject)
     1183        return false;
     1184    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    11851185        return true;
    11861186   
     
    11891189        return true;   
    11901190   
    1191     if (roleValue() == IgnoredRole)
     1191    if (roleValue() == AccessibilityRole::Ignored)
    11921192        return true;
    11931193   
    1194     if (roleValue() == PresentationalRole || inheritsPresentationalRole())
     1194    if (roleValue() == AccessibilityRole::Presentational || inheritsPresentationalRole())
    11951195        return true;
    11961196   
     
    12271227        // static text beneath MenuItems and MenuButtons are just reported along with the menu item, so it's ignored on an individual level
    12281228        AccessibilityObject* parent = parentObjectUnignored();
    1229         if (parent && (parent->isMenuItem() || parent->ariaRoleAttribute() == MenuButtonRole))
     1229        if (parent && (parent->isMenuItem() || parent->ariaRoleAttribute() == AccessibilityRole::MenuButton))
    12301230            return true;
    12311231        auto& renderText = downcast<RenderText>(*m_renderer);
     
    12351235        // static text beneath TextControls is reported along with the text control text so it's ignored.
    12361236        for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
    1237             if (parent->roleValue() == TextFieldRole)
     1237            if (parent->roleValue() == AccessibilityRole::TextField)
    12381238                return true;
    12391239        }
     
    12461246        if (is<RenderTextFragment>(renderText)) {
    12471247            AccessibilityObjectInclusion altTextInclusion = objectInclusionFromAltText(downcast<RenderTextFragment>(renderText).altText());
    1248             if (altTextInclusion == IgnoreObject)
     1248            if (altTextInclusion == AccessibilityObjectInclusion::IgnoreObject)
    12491249                return true;
    1250             if (altTextInclusion == IncludeObject)
     1250            if (altTextInclusion == AccessibilityObjectInclusion::IncludeObject)
    12511251                return false;
    12521252            if (downcast<RenderTextFragment>(renderText).firstLetter())
     
    12751275
    12761276    switch (roleValue()) {
    1277     case AudioRole:
    1278     case DescriptionListTermRole:
    1279     case DescriptionListDetailRole:
    1280     case DetailsRole:
    1281     case DocumentArticleRole:
    1282     case LandmarkRegionRole:
    1283     case ListItemRole:
    1284     case TimeRole:
    1285     case VideoRole:
     1277    case AccessibilityRole::Audio:
     1278    case AccessibilityRole::DescriptionListTerm:
     1279    case AccessibilityRole::DescriptionListDetail:
     1280    case AccessibilityRole::Details:
     1281    case AccessibilityRole::DocumentArticle:
     1282    case AccessibilityRole::LandmarkRegion:
     1283    case AccessibilityRole::ListItem:
     1284    case AccessibilityRole::Time:
     1285    case AccessibilityRole::Video:
    12861286        return false;
    12871287    default:
     
    12891289    }
    12901290   
    1291     if (ariaRoleAttribute() != UnknownRole)
    1292         return false;
    1293    
    1294     if (roleValue() == HorizontalRuleRole)
     1291    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
     1292        return false;
     1293   
     1294    if (roleValue() == AccessibilityRole::HorizontalRule)
    12951295        return false;
    12961296   
     
    13321332        // First check the RenderImage's altText (which can be set through a style sheet, or come from the Element).
    13331333        // However, if this is not a native image, fallback to the attribute on the Element.
    1334         AccessibilityObjectInclusion altTextInclusion = DefaultBehavior;
     1334        AccessibilityObjectInclusion altTextInclusion = AccessibilityObjectInclusion::DefaultBehavior;
    13351335        bool isRenderImage = is<RenderImage>(renderer());
    13361336        if (isRenderImage)
     
    13391339            altTextInclusion = objectInclusionFromAltText(getAttribute(altAttr).string());
    13401340
    1341         if (altTextInclusion == IgnoreObject)
     1341        if (altTextInclusion == AccessibilityObjectInclusion::IgnoreObject)
    13421342            return true;
    1343         if (altTextInclusion == IncludeObject)
     1343        if (altTextInclusion == AccessibilityObjectInclusion::IncludeObject)
    13441344            return false;
    13451345       
     
    14041404    // <span> tags are inline tags and not meant to convey information if they have no other aria
    14051405    // information on them. If we don't ignore them, they may emit signals expected to come from
    1406     // their parent. In addition, because included spans are GroupRole objects, and GroupRole
     1406    // their parent. In addition, because included spans are AccessibilityRole::Group objects, and AccessibilityRole::Group
    14071407    // objects are often containers with meaningful information, the inclusion of a span can have
    14081408    // the side effect of causing the immediate parent accessible to be ignored. This is especially
     
    15291529    AccessibilityRole ariaRole = ariaRoleAttribute();
    15301530    // Use the text control native range if it's a native object and it has no ARIA role (or has a text based ARIA role).
    1531     if (isNativeTextControl() && (ariaRole == UnknownRole || isARIATextControl())) {
     1531    if (isNativeTextControl() && (ariaRole == AccessibilityRole::Unknown || isARIATextControl())) {
    15321532        HTMLTextFormControlElement& textControl = downcast<RenderTextControl>(*m_renderer).textFormControlElement();
    15331533        return PlainTextRange(textControl.selectionStart(), textControl.selectionEnd() - textControl.selectionStart());
     
    16761676
    16771677        // A tab item should only control tab panels.
    1678         if (!tabPanel || tabPanel->roleValue() != TabPanelRole)
     1678        if (!tabPanel || tabPanel->roleValue() != AccessibilityRole::TabPanel)
    16791679            continue;
    16801680       
     
    17051705    // Check instead if the frame's selection controller is focused
    17061706    if (focusedElement == m_renderer->node()
    1707         || (roleValue() == WebAreaRole && document.frame()->selection().isFocusedAndActive()))
     1707        || (roleValue() == AccessibilityRole::WebArea && document.frame()->selection().isFocusedAndActive()))
    17081708        return true;
    17091709   
     
    17471747    // Setting selected only makes sense in trees and tables (and tree-tables).
    17481748    AccessibilityRole role = roleValue();
    1749     if (role != TreeRole && role != TreeGridRole && role != TableRole && role != GridRole)
     1749    if (role != AccessibilityRole::Tree && role != AccessibilityRole::TreeGrid && role != AccessibilityRole::Table && role != AccessibilityRole::Grid)
    17501750        return;
    17511751   
     
    18361836            auto* parent = current->parentNode();
    18371837            if (is<HTMLAreaElement>(*current) && is<HTMLMapElement>(parent)) {
    1838                 auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(ImageMapLinkRole));
     1838                auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(AccessibilityRole::ImageMapLink));
    18391839                HTMLMapElement& map = downcast<HTMLMapElement>(*parent);
    18401840                areaObject.setHTMLAreaElement(downcast<HTMLAreaElement>(current));
     
    24122412{
    24132413    switch (ariaRoleAttribute()) {
    2414     case ApplicationGroupRole:
    2415     case ListBoxRole:
    2416     case MenuRole:
    2417     case MenuBarRole:
    2418     case RadioGroupRole:
    2419     case RowRole:
    2420     case PopUpButtonRole:
    2421     case ProgressIndicatorRole:
    2422     case ToolbarRole:
    2423     case OutlineRole:
    2424     case TreeRole:
    2425     case GridRole:
     2414    case AccessibilityRole::ApplicationGroup:
     2415    case AccessibilityRole::ListBox:
     2416    case AccessibilityRole::Menu:
     2417    case AccessibilityRole::MenuBar:
     2418    case AccessibilityRole::RadioGroup:
     2419    case AccessibilityRole::Row:
     2420    case AccessibilityRole::PopUpButton:
     2421    case AccessibilityRole::ProgressIndicator:
     2422    case AccessibilityRole::Toolbar:
     2423    case AccessibilityRole::Outline:
     2424    case AccessibilityRole::Tree:
     2425    case AccessibilityRole::Grid:
    24262426    /* FIXME: replace these with actual roles when they are added to AccessibilityRole
    24272427    composite
     
    24752475       
    24762476        switch (containerParent->roleValue()) {
    2477         case TreeRole:
    2478         case TreeGridRole:
    2479         case GridRole:
    2480         case TableRole:
    2481         case BrowserRole:
     2477        case AccessibilityRole::Tree:
     2478        case AccessibilityRole::TreeGrid:
     2479        case AccessibilityRole::Grid:
     2480        case AccessibilityRole::Table:
     2481        case AccessibilityRole::Browser:
    24822482            foundParent = true;
    24832483            break;
     
    25012501
    25022502    // Post that the specific row either collapsed or expanded.
    2503     if (roleValue() == RowRole || roleValue() == TreeItemRole)
     2503    if (roleValue() == AccessibilityRole::Row || roleValue() == AccessibilityRole::TreeItem)
    25042504        cache->postNotification(this, document(), isExpanded() ? AXObjectCache::AXRowExpanded : AXObjectCache::AXRowCollapsed);
    25052505    else
     
    26102610bool AccessibilityRenderObject::supportsExpandedTextValue() const
    26112611{
    2612     if (roleValue() == StaticTextRole) {
     2612    if (roleValue() == AccessibilityRole::StaticText) {
    26132613        if (AccessibilityObject* parent = parentObject())
    26142614            return parent->hasTagName(abbrTag) || parent->hasTagName(acronymTag);
     
    26212621{
    26222622    if (!m_renderer)
    2623         return UnknownRole;
     2623        return AccessibilityRole::Unknown;
    26242624
    26252625    // Sometimes we need to ignore the attribute role. Like if a tree is malformed,
    26262626    // we want to ignore the treeitem's attribute role.
    2627     if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole && !shouldIgnoreAttributeRole())
     2627    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown && !shouldIgnoreAttributeRole())
    26282628        return m_ariaRole;
    26292629   
     
    26322632
    26332633    if (node && node->isLink())
    2634         return WebCoreLinkRole;
     2634        return AccessibilityRole::WebCoreLink;
    26352635    if (node && is<HTMLImageElement>(*node) && downcast<HTMLImageElement>(*node).hasAttributeWithoutSynchronization(usemapAttr))
    2636         return ImageMapRole;
     2636        return AccessibilityRole::ImageMap;
    26372637    if ((cssBox && cssBox->isListItem()) || (node && node->hasTagName(liTag)))
    2638         return ListItemRole;
     2638        return AccessibilityRole::ListItem;
    26392639    if (m_renderer->isListMarker())
    2640         return ListMarkerRole;
     2640        return AccessibilityRole::ListMarker;
    26412641    if (node && node->hasTagName(buttonTag))
    26422642        return buttonRoleType();
    26432643    if (node && node->hasTagName(legendTag))
    2644         return LegendRole;
     2644        return AccessibilityRole::Legend;
    26452645    if (m_renderer->isText())
    2646         return StaticTextRole;
     2646        return AccessibilityRole::StaticText;
    26472647    if (cssBox && cssBox->isImage()) {
    26482648        if (is<HTMLInputElement>(node))
    2649             return ariaHasPopup() ? PopUpButtonRole : ButtonRole;
     2649            return ariaHasPopup() ? AccessibilityRole::PopUpButton : AccessibilityRole::Button;
    26502650        if (isSVGImage())
    2651             return SVGRootRole;
    2652         return ImageRole;
     2651            return AccessibilityRole::SVGRoot;
     2652        return AccessibilityRole::Image;
    26532653    }
    26542654   
    26552655    if (node && node->hasTagName(canvasTag))
    2656         return CanvasRole;
     2656        return AccessibilityRole::Canvas;
    26572657
    26582658    if (cssBox && cssBox->isRenderView())
    2659         return WebAreaRole;
     2659        return AccessibilityRole::WebArea;
    26602660   
    26612661    if (cssBox && cssBox->isTextField()) {
    26622662        if (is<HTMLInputElement>(node))
    2663             return downcast<HTMLInputElement>(*node).isSearchField() ? SearchFieldRole : TextFieldRole;
     2663            return downcast<HTMLInputElement>(*node).isSearchField() ? AccessibilityRole::SearchField : AccessibilityRole::TextField;
    26642664    }
    26652665   
    26662666    if (cssBox && cssBox->isTextArea())
    2667         return TextAreaRole;
     2667        return AccessibilityRole::TextArea;
    26682668
    26692669    if (is<HTMLInputElement>(node)) {
    26702670        HTMLInputElement& input = downcast<HTMLInputElement>(*node);
    26712671        if (input.isCheckbox())
    2672             return CheckBoxRole;
     2672            return AccessibilityRole::CheckBox;
    26732673        if (input.isRadioButton())
    2674             return RadioButtonRole;
     2674            return AccessibilityRole::RadioButton;
    26752675        if (input.isTextButton())
    26762676            return buttonRoleType();
     
    26782678#if PLATFORM(IOS)
    26792679        if (input.isDateField() || input.isTimeField())
    2680             return PopUpButtonRole;
     2680            return AccessibilityRole::PopUpButton;
    26812681#endif
    26822682#if ENABLE(INPUT_TYPE_COLOR)
    26832683        if (input.isColorControl())
    2684             return ColorWellRole;
     2684            return AccessibilityRole::ColorWell;
    26852685#endif
    26862686    }
    26872687   
    26882688    if (hasContentEditableAttributeSet())
    2689         return TextAreaRole;
     2689        return AccessibilityRole::TextArea;
    26902690   
    26912691    if (isFileUploadButton())
    2692         return ButtonRole;
     2692        return AccessibilityRole::Button;
    26932693   
    26942694    if (cssBox && cssBox->isMenuList())
    2695         return PopUpButtonRole;
     2695        return AccessibilityRole::PopUpButton;
    26962696   
    26972697    if (headingLevel())
    2698         return HeadingRole;
     2698        return AccessibilityRole::Heading;
    26992699   
    27002700    if (m_renderer->isSVGRoot())
    2701         return SVGRootRole;
     2701        return AccessibilityRole::SVGRoot;
    27022702   
    27032703    if (isStyleFormatGroup())
    2704         return is<RenderInline>(*m_renderer) ? InlineRole : TextGroupRole;
     2704        return is<RenderInline>(*m_renderer) ? AccessibilityRole::Inline : AccessibilityRole::TextGroup;
    27052705   
    27062706    if (node && node->hasTagName(ddTag))
    2707         return DescriptionListDetailRole;
     2707        return AccessibilityRole::DescriptionListDetail;
    27082708   
    27092709    if (node && node->hasTagName(dtTag))
    2710         return DescriptionListTermRole;
     2710        return AccessibilityRole::DescriptionListTerm;
    27112711
    27122712    if (node && node->hasTagName(dlTag))
    2713         return DescriptionListRole;
     2713        return AccessibilityRole::DescriptionList;
    27142714
    27152715    if (node && node->hasTagName(fieldsetTag))
    2716         return GroupRole;
     2716        return AccessibilityRole::Group;
    27172717
    27182718    if (node && node->hasTagName(figureTag))
    2719         return FigureRole;
     2719        return AccessibilityRole::Figure;
    27202720
    27212721    // Check for Ruby elements
    27222722    if (m_renderer->isRubyText())
    2723         return RubyTextRole;
     2723        return AccessibilityRole::RubyText;
    27242724    if (m_renderer->isRubyBase())
    2725         return RubyBaseRole;
     2725        return AccessibilityRole::RubyBase;
    27262726    if (m_renderer->isRubyRun())
    2727         return RubyRunRole;
     2727        return AccessibilityRole::RubyRun;
    27282728    if (m_renderer->isRubyBlock())
    2729         return RubyBlockRole;
     2729        return AccessibilityRole::RubyBlock;
    27302730    if (m_renderer->isRubyInline())
    2731         return RubyInlineRole;
     2731        return AccessibilityRole::RubyInline;
    27322732   
    27332733    // This return value is what will be used if AccessibilityTableCell determines
    27342734    // the cell should not be treated as a cell (e.g. because it is a layout table.
    27352735    if (is<RenderTableCell>(renderer()))
    2736         return TextGroupRole;
     2736        return AccessibilityRole::TextGroup;
    27372737
    27382738    // Table sections should be ignored.
    27392739    if (m_renderer->isTableSection())
    2740         return IgnoredRole;
     2740        return AccessibilityRole::Ignored;
    27412741
    27422742    if (m_renderer->isHR())
    2743         return HorizontalRuleRole;
     2743        return AccessibilityRole::HorizontalRule;
    27442744
    27452745    if (node && node->hasTagName(pTag))
    2746         return ParagraphRole;
     2746        return AccessibilityRole::Paragraph;
    27472747
    27482748    if (is<HTMLLabelElement>(node))
    2749         return LabelRole;
     2749        return AccessibilityRole::Label;
    27502750
    27512751    if (node && node->hasTagName(dfnTag))
    2752         return DefinitionRole;
     2752        return AccessibilityRole::Definition;
    27532753
    27542754    if (node && node->hasTagName(divTag))
    2755         return DivRole;
     2755        return AccessibilityRole::Div;
    27562756
    27572757    if (is<HTMLFormElement>(node))
    2758         return FormRole;
     2758        return AccessibilityRole::Form;
    27592759
    27602760    if (node && node->hasTagName(articleTag))
    2761         return DocumentArticleRole;
     2761        return AccessibilityRole::DocumentArticle;
    27622762
    27632763    if (node && node->hasTagName(mainTag))
    2764         return LandmarkMainRole;
     2764        return AccessibilityRole::LandmarkMain;
    27652765
    27662766    if (node && node->hasTagName(navTag))
    2767         return LandmarkNavigationRole;
     2767        return AccessibilityRole::LandmarkNavigation;
    27682768
    27692769    if (node && node->hasTagName(asideTag))
    2770         return LandmarkComplementaryRole;
     2770        return AccessibilityRole::LandmarkComplementary;
    27712771
    27722772    // The default role attribute value for the section element, region, became a landmark in ARIA 1.1.
     
    27742774    // for section elements which have names.
    27752775    if (node && node->hasTagName(sectionTag))
    2776         return hasAttribute(aria_labelAttr) || hasAttribute(aria_labelledbyAttr) ? LandmarkRegionRole : TextGroupRole;
     2776        return hasAttribute(aria_labelAttr) || hasAttribute(aria_labelledbyAttr) ? AccessibilityRole::LandmarkRegion : AccessibilityRole::TextGroup;
    27772777
    27782778    if (node && node->hasTagName(addressTag))
    2779         return LandmarkContentInfoRole;
     2779        return AccessibilityRole::LandmarkContentInfo;
    27802780
    27812781    if (node && node->hasTagName(blockquoteTag))
    2782         return BlockquoteRole;
     2782        return AccessibilityRole::Blockquote;
    27832783
    27842784    if (node && node->hasTagName(captionTag))
    2785         return CaptionRole;
     2785        return AccessibilityRole::Caption;
    27862786   
    27872787    if (node && node->hasTagName(markTag))
    2788         return MarkRole;
     2788        return AccessibilityRole::Mark;
    27892789
    27902790    if (node && node->hasTagName(preTag))
    2791         return PreRole;
     2791        return AccessibilityRole::Pre;
    27922792
    27932793    if (is<HTMLDetailsElement>(node))
    2794         return DetailsRole;
     2794        return AccessibilityRole::Details;
    27952795    if (is<HTMLSummaryElement>(node))
    2796         return SummaryRole;
     2796        return AccessibilityRole::Summary;
    27972797   
    27982798    // http://rawgit.com/w3c/aria/master/html-aam/html-aam.html
    27992799    // Output elements should be mapped to status role.
    28002800    if (isOutput())
    2801         return ApplicationStatusRole;
     2801        return AccessibilityRole::ApplicationStatus;
    28022802
    28032803#if ENABLE(VIDEO)
    28042804    if (is<HTMLVideoElement>(node))
    2805         return VideoRole;
     2805        return AccessibilityRole::Video;
    28062806    if (is<HTMLAudioElement>(node))
    2807         return AudioRole;
     2807        return AccessibilityRole::Audio;
    28082808#endif
    28092809   
    28102810    // The HTML element should not be exposed as an element. That's what the RenderView element does.
    28112811    if (node && node->hasTagName(htmlTag))
    2812         return IgnoredRole;
     2812        return AccessibilityRole::Ignored;
    28132813
    28142814    // There should only be one banner/contentInfo per page. If header/footer are being used within an article or section
    28152815    // then it should not be exposed as whole page's banner/contentInfo
    28162816    if (node && node->hasTagName(headerTag) && !isDescendantOfElementType(articleTag) && !isDescendantOfElementType(sectionTag))
    2817         return LandmarkBannerRole;
     2817        return AccessibilityRole::LandmarkBanner;
    28182818    if (node && node->hasTagName(footerTag) && !isDescendantOfElementType(articleTag) && !isDescendantOfElementType(sectionTag))
    2819         return FooterRole;
     2819        return AccessibilityRole::Footer;
    28202820   
    28212821    // menu tags with toolbar type should have Toolbar role.
    28222822    if (node && node->hasTagName(menuTag) && equalLettersIgnoringASCIICase(getAttribute(typeAttr), "toolbar"))
    2823         return ToolbarRole;
     2823        return AccessibilityRole::Toolbar;
    28242824   
    28252825    if (node && node->hasTagName(timeTag))
    2826         return TimeRole;
     2826        return AccessibilityRole::Time;
    28272827   
    28282828    // If the element does not have role, but it has ARIA attributes, or accepts tab focus, accessibility should fallback to exposing it as a group.
    28292829    if (supportsARIAAttributes() || canSetFocusAttribute())
    2830         return GroupRole;
     2830        return AccessibilityRole::Group;
    28312831
    28322832    if (m_renderer->isRenderBlockFlow())
    2833         return m_renderer->isAnonymousBlock() ? TextGroupRole : GroupRole;
    2834    
    2835     // InlineRole is the final fallback before assigning UnknownRole to an object. It makes it
     2833        return m_renderer->isAnonymousBlock() ? AccessibilityRole::TextGroup : AccessibilityRole::Group;
     2834   
     2835    // InlineRole is the final fallback before assigning AccessibilityRole::Unknown to an object. It makes it
    28362836    // possible to distinguish truly unknown objects from non-focusable inline text elements
    28372837    // which have an event handler or attribute suggesting possible inclusion by the platform.
     
    28402840            || (node && node->hasEventListeners())
    28412841            || (supportsDatetimeAttribute() && !getAttribute(datetimeAttr).isEmpty())))
    2842         return InlineRole;
    2843 
    2844     return UnknownRole;
     2842        return AccessibilityRole::Inline;
     2843
     2844    return AccessibilityRole::Unknown;
    28452845}
    28462846
     
    28492849    const AtomicString& ariaOrientation = getAttribute(aria_orientationAttr);
    28502850    if (equalLettersIgnoringASCIICase(ariaOrientation, "horizontal"))
    2851         return AccessibilityOrientationHorizontal;
     2851        return AccessibilityOrientation::Horizontal;
    28522852    if (equalLettersIgnoringASCIICase(ariaOrientation, "vertical"))
    2853         return AccessibilityOrientationVertical;
     2853        return AccessibilityOrientation::Vertical;
    28542854    if (equalLettersIgnoringASCIICase(ariaOrientation, "undefined"))
    2855         return AccessibilityOrientationUndefined;
     2855        return AccessibilityOrientation::Undefined;
    28562856
    28572857    // In ARIA 1.1, the implicit value of aria-orientation changed from horizontal
     
    28592859    // addition, the implicit value of combobox became undefined.
    28602860    if (isComboBox() || isRadioGroup() || isTreeGrid())
    2861         return AccessibilityOrientationUndefined;
     2861        return AccessibilityOrientation::Undefined;
    28622862
    28632863    if (isScrollbar() || isListBox() || isMenu() || isTree())
    2864         return AccessibilityOrientationVertical;
     2864        return AccessibilityOrientation::Vertical;
    28652865   
    28662866    if (isMenuBar() || isSplitter() || isTabList() || isToolbar() || isSlider())
    2867         return AccessibilityOrientationHorizontal;
     2867        return AccessibilityOrientation::Horizontal;
    28682868   
    28692869    return AccessibilityObject::orientation();
     
    28822882    const Vector<const HTMLQualifiedName*>* parentTags;
    28832883    switch (roleValue()) {
    2884     case ListItemRole:
    2885     case ListMarkerRole: {
     2884    case AccessibilityRole::ListItem:
     2885    case AccessibilityRole::ListMarker: {
    28862886        static const auto listItemParents = makeNeverDestroyed(Vector<const HTMLQualifiedName*> { &dlTag, &olTag, &ulTag });
    28872887        parentTags = &listItemParents.get();
    28882888        break;
    28892889    }
    2890     case GridCellRole:
    2891     case CellRole: {
     2890    case AccessibilityRole::GridCell:
     2891    case AccessibilityRole::Cell: {
    28922892        static const auto tableCellParents = makeNeverDestroyed(Vector<const HTMLQualifiedName*> { &tableTag });
    28932893        parentTags = &tableCellParents.get();
     
    29112911        auto& name = downcast<Element>(*node).tagQName();
    29122912        if (std::any_of(parentTags->begin(), parentTags->end(), [&name] (auto* possibleName) { return *possibleName == name; }))
    2913             return parent->roleValue() == PresentationalRole;
     2913            return parent->roleValue() == AccessibilityRole::Presentational;
    29142914    }
    29152915
     
    29302930{
    29312931    switch (m_ariaRole) {
    2932     case ButtonRole:
    2933     case SliderRole:
    2934     case ImageRole:
    2935     case ProgressIndicatorRole:
    2936     case SpinButtonRole:
     2932    case AccessibilityRole::Button:
     2933    case AccessibilityRole::Slider:
     2934    case AccessibilityRole::Image:
     2935    case AccessibilityRole::ProgressIndicator:
     2936    case AccessibilityRole::SpinButton:
    29372937    // case SeparatorRole:
    29382938        return true;
     
    29442944bool AccessibilityRenderObject::canSetExpandedAttribute() const
    29452945{
    2946     if (roleValue() == DetailsRole)
     2946    if (roleValue() == AccessibilityRole::Details)
    29472947        return true;
    29482948   
     
    29982998        if (!area.isLink())
    29992999            continue;
    3000         auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(ImageMapLinkRole));
     3000        auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(AccessibilityRole::ImageMapLink));
    30013001        areaObject.setHTMLAreaElement(&area);
    30023002        areaObject.setHTMLMapElement(map);
     
    30333033        return;
    30343034
    3035     auto& axSpinButton = downcast<AccessibilitySpinButton>(*axObjectCache()->getOrCreate(SpinButtonRole));
     3035    auto& axSpinButton = downcast<AccessibilitySpinButton>(*axObjectCache()->getOrCreate(AccessibilityRole::SpinButton));
    30363036    axSpinButton.setSpinButtonElement(downcast<SpinButtonElement>(spinButtonElement));
    30373037    axSpinButton.setParent(this);
     
    32063206{
    32073207    // If a menu does not have valid menuitem children, it should not be exposed as a menu.
    3208     if (roleValue() == MenuRole) {
     3208    if (roleValue() == AccessibilityRole::Menu) {
    32093209        // Elements marked as menus must have at least one menu item child.
    32103210        size_t menuItemCount = 0;
     
    32173217
    32183218        if (!menuItemCount)
    3219             m_role = GroupRole;
     3219            m_role = AccessibilityRole::Group;
    32203220    }
    32213221}
     
    32913291    // WAI-ARIA "alert" and "status" roles have an implicit aria-atomic value of true.
    32923292    switch (roleValue()) {
    3293     case ApplicationAlertRole:
    3294     case ApplicationStatusRole:
     3293    case AccessibilityRole::ApplicationAlert:
     3294    case AccessibilityRole::ApplicationStatus:
    32953295        return true;
    32963296    default:
     
    33083308    switch (roleValue()) {
    33093309    // These roles are containers whose children support aria-selected:
    3310     case GridRole:
    3311     case ListBoxRole:
    3312     case TabListRole:
    3313     case TreeRole:
    3314     case TreeGridRole:
     3310    case AccessibilityRole::Grid:
     3311    case AccessibilityRole::ListBox:
     3312    case AccessibilityRole::TabList:
     3313    case AccessibilityRole::Tree:
     3314    case AccessibilityRole::TreeGrid:
    33153315    // These roles are containers whose children are treated as selected by assistive
    33163316    // technologies. We can get the "selected" item via aria-activedescendant or the
    33173317    // focused element.
    3318     case MenuRole:
    3319     case MenuBarRole:
     3318    case AccessibilityRole::Menu:
     3319    case AccessibilityRole::MenuBar:
    33203320        return true;
    33213321    default:
     
    33643364    for (const auto& child : children()) {
    33653365        // Every child should have aria-role option, and if so, check for selected attribute/state.
    3366         if (child->isSelected() && child->ariaRoleAttribute() == ListBoxOptionRole) {
     3366        if (child->isSelected() && child->ariaRoleAttribute() == AccessibilityRole::ListBoxOption) {
    33673367            result.append(child);
    33683368            if (!isMulti)
     
    33803380
    33813381    switch (roleValue()) {
    3382     case ListBoxRole:
     3382    case AccessibilityRole::ListBox:
    33833383        // native list boxes would be AccessibilityListBoxes, so only check for aria list boxes
    33843384        ariaListboxSelectedChildren(result);
    33853385        return;
    3386     case GridRole:
    3387     case TreeRole:
    3388     case TreeGridRole:
     3386    case AccessibilityRole::Grid:
     3387    case AccessibilityRole::Tree:
     3388    case AccessibilityRole::TreeGrid:
    33893389        ariaSelectedRows(result);
    33903390        return;
    3391     case TabListRole:
     3391    case AccessibilityRole::TabList:
    33923392        if (AccessibilityObject* selectedTab = selectedTabItem())
    33933393            result.append(selectedTab);
    33943394        return;
    3395     case MenuRole:
    3396     case MenuBarRole:
     3395    case AccessibilityRole::Menu:
     3396    case AccessibilityRole::MenuBar:
    33973397        if (AccessibilityObject* descendant = activeDescendant()) {
    33983398            result.append(descendant);
     
    34253425       
    34263426    // only listboxes are asked for their visible children.
    3427     if (ariaRoleAttribute() != ListBoxRole) { // native list boxes would be AccessibilityListBoxes, so only check for aria list boxes
     3427    if (ariaRoleAttribute() != AccessibilityRole::ListBox) {
     3428        // native list boxes would be AccessibilityListBoxes, so only check for aria list boxes
    34283429        ASSERT_NOT_REACHED();
    34293430        return;
     
    34343435void AccessibilityRenderObject::tabChildren(AccessibilityChildrenVector& result)
    34353436{
    3436     ASSERT(roleValue() == TabListRole);
     3437    ASSERT(roleValue() == AccessibilityRole::TabList);
    34373438   
    34383439    for (const auto& child : children()) {
     
    34543455
    34553456    switch (roleValue()) {
    3456     case ButtonRole:
    3457     case ToggleButtonRole:
     3457    case AccessibilityRole::Button:
     3458    case AccessibilityRole::ToggleButton:
    34583459        return buttonAction;
    3459     case TextFieldRole:
    3460     case TextAreaRole:
     3460    case AccessibilityRole::TextField:
     3461    case AccessibilityRole::TextArea:
    34613462        return textFieldAction;
    3462     case RadioButtonRole:
     3463    case AccessibilityRole::RadioButton:
    34633464        return radioButtonAction;
    3464     case CheckBoxRole:
     3465    case AccessibilityRole::CheckBox:
    34653466        return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction;
    3466     case LinkRole:
    3467     case WebCoreLinkRole:
     3467    case AccessibilityRole::Link:
     3468    case AccessibilityRole::WebCoreLink:
    34683469        return linkAction;
    34693470    default:
     
    36563657{
    36573658    if (!renderer)
    3658         return UnknownRole;
     3659        return AccessibilityRole::Unknown;
    36593660
    36603661    if (is<RenderText>(*renderer))
    3661         return EditableTextRole;
     3662        return AccessibilityRole::EditableText;
    36623663
    36633664    if (is<RenderListItem>(*renderer))
    3664         return ListItemRole;
    3665 
    3666     return UnknownRole;
     3665        return AccessibilityRole::ListItem;
     3666
     3667    return AccessibilityRole::Unknown;
    36673668}
    36683669
    36693670AccessibilityRole AccessibilityRenderObject::roleValueForMSAA() const
    36703671{
    3671     if (m_roleForMSAA != UnknownRole)
     3672    if (m_roleForMSAA != AccessibilityRole::Unknown)
    36723673        return m_roleForMSAA;
    36733674
    36743675    m_roleForMSAA = msaaRoleForRenderer(renderer());
    36753676
    3676     if (m_roleForMSAA == UnknownRole)
     3677    if (m_roleForMSAA == AccessibilityRole::Unknown)
    36773678        m_roleForMSAA = roleValue();
    36783679
  • trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp

    r223728 r224074  
    112112    String description = accessibilityDescription();
    113113    if (!description.isEmpty())
    114         textOrder.append(AccessibilityText(description, AlternativeText));
     114        textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative));
    115115
    116116    String helptext = helpText();
    117117    if (!helptext.isEmpty())
    118         textOrder.append(AccessibilityText(helptext, HelpText));
     118        textOrder.append(AccessibilityText(helptext, AccessibilityTextSource::Help));
    119119}
    120120
     
    218218
    219219    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    220     if (decision == IgnoreObject)
     220    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    221221        return true;
    222222
     
    231231    }
    232232
    233     if (roleValue() == PresentationalRole || inheritsPresentationalRole())
     233    if (roleValue() == AccessibilityRole::Presentational || inheritsPresentationalRole())
    234234        return true;
    235235
    236     if (ariaRoleAttribute() != UnknownRole)
     236    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
    237237        return false;
    238238
     
    259259
    260260    AccessibilityRole role = roleValue();
    261     if (role != SVGTextPathRole && role != SVGTSpanRole)
     261    if (role != AccessibilityRole::SVGTextPath && role != AccessibilityRole::SVGTSpan)
    262262        return false;
    263263
    264264    for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
    265265        if (is<AccessibilityRenderObject>(*parent) && parent->element()->hasTagName(SVGNames::textTag))
    266             return parent->roleValue() == PresentationalRole;
     266            return parent->roleValue() == AccessibilityRole::Presentational;
    267267    }
    268268
     
    273273{
    274274    AccessibilityRole role = AccessibilityRenderObject::determineAriaRoleAttribute();
    275     if (role != PresentationalRole)
     275    if (role != AccessibilityRole::Presentational)
    276276        return role;
    277277
     
    281281    for (const auto& child : childrenOfType<SVGElement>(*element())) {
    282282        if ((is<SVGTitleElement>(child) || is<SVGDescElement>(child)))
    283             return UnknownRole;
     283            return AccessibilityRole::Unknown;
    284284    }
    285285
     
    289289AccessibilityRole AccessibilitySVGElement::determineAccessibilityRole()
    290290{
    291     if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)
     291    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown)
    292292        return m_ariaRole;
    293293
     
    295295
    296296    if (m_renderer->isSVGShape() || m_renderer->isSVGPath() || m_renderer->isSVGImage() || is<SVGUseElement>(svgElement))
    297         return ImageRole;
     297        return AccessibilityRole::Image;
    298298    if (m_renderer->isSVGForeignObject() || is<SVGGElement>(svgElement))
    299         return GroupRole;
     299        return AccessibilityRole::Group;
    300300    if (m_renderer->isSVGText())
    301         return SVGTextRole;
     301        return AccessibilityRole::SVGText;
    302302    if (m_renderer->isSVGTextPath())
    303         return SVGTextPathRole;
     303        return AccessibilityRole::SVGTextPath;
    304304    if (m_renderer->isSVGTSpan())
    305         return SVGTSpanRole;
     305        return AccessibilityRole::SVGTSpan;
    306306    if (is<SVGAElement>(svgElement))
    307         return WebCoreLinkRole;
     307        return AccessibilityRole::WebCoreLink;
    308308
    309309    return AccessibilityRenderObject::determineAccessibilityRole();
  • trunk/Source/WebCore/accessibility/AccessibilitySVGRoot.h

    r220551 r224074  
    4848
    4949    WeakPtr<AccessibilityRenderObject> m_parent;
    50     AccessibilityRole roleValue() const override { return GroupRole; }
     50    AccessibilityRole roleValue() const override { return AccessibilityRole::Group; }
    5151};
    5252   
  • trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp

    r219075 r224074  
    6666    switch (orientation) {
    6767    // ARIA 1.1 Elements with the role scrollbar have an implicit aria-orientation value of vertical.
    68     case AccessibilityOrientationUndefined:
    69     case AccessibilityOrientationVertical:
     68    case AccessibilityOrientation::Undefined:
     69    case AccessibilityOrientation::Vertical:
    7070        return m_verticalScrollbar ? m_verticalScrollbar.get() : nullptr;
    71     case AccessibilityOrientationHorizontal:
     71    case AccessibilityOrientation::Horizontal:
    7272        return m_horizontalScrollbar ? m_horizontalScrollbar.get() : nullptr;
    7373    }
  • trunk/Source/WebCore/accessibility/AccessibilityScrollView.h

    r208179 r224074  
    3737public:
    3838    static Ref<AccessibilityScrollView> create(ScrollView*);
    39     AccessibilityRole roleValue() const override { return ScrollAreaRole; }
     39    AccessibilityRole roleValue() const override { return AccessibilityRole::ScrollArea; }
    4040    ScrollView* scrollView() const { return m_scrollView; }
    4141
  • trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp

    r190648 r224074  
    6868    // ARIA 1.1 Elements with the role scrollbar have an implicit aria-orientation value of vertical.
    6969    if (!m_scrollbar)
    70         return AccessibilityOrientationVertical;
     70        return AccessibilityOrientation::Vertical;
    7171
    7272    if (m_scrollbar->orientation() == HorizontalScrollbar)
    73         return AccessibilityOrientationHorizontal;
     73        return AccessibilityOrientation::Horizontal;
    7474    if (m_scrollbar->orientation() == VerticalScrollbar)
    75         return AccessibilityOrientationVertical;
     75        return AccessibilityOrientation::Vertical;
    7676
    77     return AccessibilityOrientationVertical;
     77    return AccessibilityOrientation::Vertical;
    7878}
    7979
  • trunk/Source/WebCore/accessibility/AccessibilityScrollbar.h

    r208179 r224074  
    5050    LayoutRect elementRect() const override;
    5151   
    52     AccessibilityRole roleValue() const override { return ScrollBarRole; }
     52    AccessibilityRole roleValue() const override { return AccessibilityRole::ScrollBar; }
    5353    AccessibilityOrientation orientation() const override;
    5454    Document* document() const override;
  • trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp

    r223151 r224074  
    5555    // Default to horizontal in the unknown case.
    5656    if (!m_renderer)
    57         return AccessibilityOrientationHorizontal;
     57        return AccessibilityOrientation::Horizontal;
    5858   
    5959    const RenderStyle& style = m_renderer->style();
     
    6565    case MediaSliderPart:
    6666    case MediaFullScreenVolumeSliderPart:
    67         return AccessibilityOrientationHorizontal;
     67        return AccessibilityOrientation::Horizontal;
    6868   
    6969    case SliderThumbVerticalPart:
    7070    case SliderVerticalPart:
    7171    case MediaVolumeSliderPart:
    72         return AccessibilityOrientationVertical;
     72        return AccessibilityOrientation::Vertical;
    7373       
    7474    default:
    75         return AccessibilityOrientationHorizontal;
     75        return AccessibilityOrientation::Horizontal;
    7676    }
    7777}
     
    8585    AXObjectCache* cache = m_renderer->document().axObjectCache();
    8686
    87     auto& thumb = downcast<AccessibilitySliderThumb>(*cache->getOrCreate(SliderThumbRole));
     87    auto& thumb = downcast<AccessibilitySliderThumb>(*cache->getOrCreate(AccessibilityRole::SliderThumb));
    8888    thumb.setParent(this);
    8989
  • trunk/Source/WebCore/accessibility/AccessibilitySlider.h

    r223728 r224074  
    4848    AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override;
    4949
    50     AccessibilityRole roleValue() const override { return SliderRole; }
     50    AccessibilityRole roleValue() const override { return AccessibilityRole::Slider; }
    5151    bool isSlider() const final { return true; }
    5252    bool isInputSlider() const override { return true; }
     
    7070    virtual ~AccessibilitySliderThumb() = default;
    7171
    72     AccessibilityRole roleValue() const override { return SliderThumbRole; }
     72    AccessibilityRole roleValue() const override { return AccessibilityRole::SliderThumb; }
    7373    LayoutRect elementRect() const override;
    7474
  • trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp

    r223728 r224074  
    8989    m_haveChildren = true;
    9090   
    91     auto& incrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(SpinButtonPartRole));
     91    auto& incrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(AccessibilityRole::SpinButtonPart));
    9292    incrementor.setIsIncrementor(true);
    9393    incrementor.setParent(this);
    9494    m_children.append(&incrementor);
    9595
    96     auto& decrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(SpinButtonPartRole));
     96    auto& decrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(AccessibilityRole::SpinButtonPart));
    9797    decrementor.setIsIncrementor(false);
    9898    decrementor.setParent(this);
  • trunk/Source/WebCore/accessibility/AccessibilitySpinButton.h

    r223728 r224074  
    4646    AccessibilitySpinButton();
    4747
    48     AccessibilityRole roleValue() const override { return SpinButtonRole; }
     48    AccessibilityRole roleValue() const override { return AccessibilityRole::SpinButton; }
    4949    bool isSpinButton() const override { return true; }
    5050    bool isNativeSpinButton() const override { return true; }
     
    6767   
    6868    bool press() override;
    69     AccessibilityRole roleValue() const override { return ButtonRole; }
     69    AccessibilityRole roleValue() const override { return AccessibilityRole::Button; }
    7070    bool isSpinButtonPart() const override { return true; }
    7171    LayoutRect elementRect() const override;
  • trunk/Source/WebCore/accessibility/AccessibilityTable.cpp

    r223728 r224074  
    7777   
    7878    AccessibilityRole ariaRole = ariaRoleAttribute();
    79     if (ariaRole != UnknownRole)
     79    if (ariaRole != AccessibilityRole::Unknown)
    8080        return true;
    8181
     
    417417    unsigned length = maxColumnCount;
    418418    for (unsigned i = 0; i < length; ++i) {
    419         auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(ColumnRole));
     419        auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(AccessibilityRole::Column));
    420420        column.setColumnIndex((int)i);
    421421        column.setParent(this);
     
    506506        return m_headerContainer.get();
    507507   
    508     auto& tableHeader = downcast<AccessibilityMockObject>(*axObjectCache()->getOrCreate(TableHeaderContainerRole));
     508    auto& tableHeader = downcast<AccessibilityMockObject>(*axObjectCache()->getOrCreate(AccessibilityRole::TableHeaderContainer));
    509509    tableHeader.setParent(this);
    510510
     
    648648   
    649649    AccessibilityRole ariaRole = ariaRoleAttribute();
    650     if (ariaRole == GridRole || ariaRole == TreeGridRole)
     650    if (ariaRole == AccessibilityRole::Grid || ariaRole == AccessibilityRole::TreeGrid)
    651651        return ariaRole;
    652652
    653     return TableRole;
     653    return AccessibilityRole::Table;
    654654}
    655655   
     
    657657{
    658658    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    659     if (decision == IncludeObject)
    660         return false;
    661     if (decision == IgnoreObject)
     659    if (decision == AccessibilityObjectInclusion::IncludeObject)
     660        return false;
     661    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    662662        return true;
    663663   
     
    672672    String title = this->title();
    673673    if (!title.isEmpty())
    674         textOrder.append(AccessibilityText(title, LabelByElementText));
     674        textOrder.append(AccessibilityText(title, AccessibilityTextSource::LabelByElement));
    675675}
    676676
  • trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp

    r223728 r224074  
    5959{
    6060    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    61     if (decision == IncludeObject)
     61    if (decision == AccessibilityObjectInclusion::IncludeObject)
    6262        return false;
    63     if (decision == IgnoreObject)
     63    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    6464        return true;
    6565   
     
    129129    // should not be exposed as a cell. Thus if we already know it's a cell, return that.
    130130    AccessibilityRole defaultRole = AccessibilityRenderObject::determineAccessibilityRole();
    131     if (defaultRole == ColumnHeaderRole || defaultRole == RowHeaderRole || defaultRole == CellRole || defaultRole == GridCellRole)
     131    if (defaultRole == AccessibilityRole::ColumnHeader || defaultRole == AccessibilityRole::RowHeader || defaultRole == AccessibilityRole::Cell || defaultRole == AccessibilityRole::GridCell)
    132132        return defaultRole;
    133133
     
    135135        return defaultRole;
    136136    if (isColumnHeaderCell())
    137         return ColumnHeaderRole;
     137        return AccessibilityRole::ColumnHeader;
    138138    if (isRowHeaderCell())
    139         return RowHeaderRole;
    140 
    141     return CellRole;
     139        return AccessibilityRole::RowHeader;
     140
     141    return AccessibilityRole::Cell;
    142142}
    143143   
  • trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp

    r223728 r224074  
    8888    if (parentTable.isAriaTable()) {
    8989        for (const auto& cell : children()) {
    90             if (cell->ariaRoleAttribute() == ColumnHeaderRole)
     90            if (cell->ariaRoleAttribute() == AccessibilityRole::ColumnHeader)
    9191                return cell.get();
    9292        }
  • trunk/Source/WebCore/accessibility/AccessibilityTableColumn.h

    r208179 r224074  
    4444    AccessibilityObject* headerObject();
    4545       
    46     AccessibilityRole roleValue() const override { return ColumnRole; }
     46    AccessibilityRole roleValue() const override { return AccessibilityRole::Column; }
    4747   
    4848    void setColumnIndex(int columnIndex) { m_columnIndex = columnIndex; }
  • trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h

    r208179 r224074  
    4040    virtual ~AccessibilityTableHeaderContainer();
    4141   
    42     AccessibilityRole roleValue() const override { return TableHeaderContainerRole; }
     42    AccessibilityRole roleValue() const override { return AccessibilityRole::TableHeaderContainer; }
    4343   
    4444    void addChildren() override;
  • trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp

    r223728 r224074  
    6060        return AccessibilityRenderObject::determineAccessibilityRole();
    6161
    62     if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)
     62    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown)
    6363        return m_ariaRole;
    6464
    65     return RowRole;
     65    return AccessibilityRole::Row;
    6666}
    6767
     
    8181{   
    8282    AccessibilityObjectInclusion decision = defaultObjectInclusion();
    83     if (decision == IncludeObject)
     83    if (decision == AccessibilityObjectInclusion::IncludeObject)
    8484        return false;
    85     if (decision == IgnoreObject)
     85    if (decision == AccessibilityObjectInclusion::IgnoreObject)
    8686        return true;
    8787   
  • trunk/Source/WebCore/accessibility/AccessibilityTree.cpp

    r223728 r224074  
    6060AccessibilityRole AccessibilityTree::determineAccessibilityRole()
    6161{
    62     if ((m_ariaRole = determineAriaRoleAttribute()) != TreeRole)
     62    if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Tree)
    6363        return AccessibilityRenderObject::determineAccessibilityRole();
    6464
    65     return isTreeValid() ? TreeRole : GroupRole;
     65    return isTreeValid() ? AccessibilityRole::Tree : AccessibilityRole::Group;
    6666}
    6767
  • trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp

    r223766 r224074  
    4444    // If an object is being detached NOT because of the AXObjectCache being destroyed,
    4545    // then it's being removed from the accessibility tree and we should emit a signal.
    46     if (detachmentType != CacheDestroyed) {
     46    if (detachmentType != AccessibilityDetachmentType::CacheDestroyed) {
    4747        if (obj->document()) {
    4848            // Look for the right object to emit the signal from, but using the implementation
     
    245245
    246246    case AXCurrentChanged:
    247         atk_object_notify_state_change(axObject, ATK_STATE_ACTIVE, coreObject->ariaCurrentState() != ARIACurrentFalse);
     247        atk_object_notify_state_change(axObject, ATK_STATE_ACTIVE, coreObject->ariaCurrentState() != AccessibilityARIACurrentState::False);
    248248        break;
    249249
  • trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp

    r208929 r224074  
    4444    AccessibilityObject* parent = parentObject();
    4545    if (!parent)
    46         return DefaultBehavior;
     46        return AccessibilityObjectInclusion::DefaultBehavior;
    4747
    4848    // If the author has provided a role, platform-specific inclusion likely doesn't apply.
    49     if (ariaRoleAttribute() != UnknownRole)
    50         return DefaultBehavior;
     49    if (ariaRoleAttribute() != AccessibilityRole::Unknown)
     50        return AccessibilityObjectInclusion::DefaultBehavior;
    5151
    5252    AccessibilityRole role = roleValue();
    5353    // We expose the slider as a whole but not its value indicator.
    54     if (role == SliderThumbRole)
    55         return IgnoreObject;
     54    if (role == AccessibilityRole::SliderThumb)
     55        return AccessibilityObjectInclusion::IgnoreObject;
    5656
    5757    // When a list item is made up entirely of children (e.g. paragraphs)
    5858    // the list item gets ignored. We need it.
    5959    if (isGroup() && parent->isList())
    60         return IncludeObject;
     60        return AccessibilityObjectInclusion::IncludeObject;
    6161
    6262    // Entries and password fields have extraneous children which we want to ignore.
    6363    if (parent->isPasswordField() || parent->isTextControl())
    64         return IgnoreObject;
     64        return AccessibilityObjectInclusion::IgnoreObject;
    6565
    6666    // Include all tables, even layout tables. The AT can decide what to do with each.
    67     if (role == CellRole || role == TableRole || role == ColumnHeaderRole || role == RowHeaderRole)
    68         return IncludeObject;
     67    if (role == AccessibilityRole::Cell || role == AccessibilityRole::Table || role == AccessibilityRole::ColumnHeader || role == AccessibilityRole::RowHeader)
     68        return AccessibilityObjectInclusion::IncludeObject;
    6969
    7070    // The object containing the text should implement AtkText itself.
    7171    // However, WebCore also maps ARIA's "text" role to the StaticTextRole.
    72     if (role == StaticTextRole)
    73         return ariaRoleAttribute() != UnknownRole ? DefaultBehavior : IgnoreObject;
     72    if (role == AccessibilityRole::StaticText)
     73        return ariaRoleAttribute() != AccessibilityRole::Unknown ? AccessibilityObjectInclusion::DefaultBehavior : AccessibilityObjectInclusion::IgnoreObject;
    7474
    7575    // Include all list items, regardless they have or not inline children
    76     if (role == ListItemRole)
    77         return IncludeObject;
     76    if (role == AccessibilityRole::ListItem)
     77        return AccessibilityObjectInclusion::IncludeObject;
    7878
    7979    // Bullets/numbers for list items shouldn't be exposed as AtkObjects.
    80     if (role == ListMarkerRole)
    81         return IgnoreObject;
     80    if (role == AccessibilityRole::ListMarker)
     81        return AccessibilityObjectInclusion::IgnoreObject;
    8282
    8383    // Never expose an unknown object, since AT's won't know what to
    8484    // do with them. This is what is done on the Mac as well.
    85     if (role == UnknownRole)
    86         return IgnoreObject;
    87 
    88     if (role == InlineRole)
    89         return IncludeObject;
     85    if (role == AccessibilityRole::Unknown)
     86        return AccessibilityObjectInclusion::IgnoreObject;
     87
     88    if (role == AccessibilityRole::Inline)
     89        return AccessibilityObjectInclusion::IncludeObject;
    9090
    9191    // Lines past this point only make sense for AccessibilityRenderObjects.
    9292    RenderObject* renderObject = renderer();
    9393    if (!renderObject)
    94         return DefaultBehavior;
     94        return AccessibilityObjectInclusion::DefaultBehavior;
    9595
    9696    // We always want to include paragraphs that have rendered content.
    9797    // WebCore Accessibility does so unless there is a RenderBlock child.
    98     if (role == ParagraphRole) {
     98    if (role == AccessibilityRole::Paragraph) {
    9999        auto child = childrenOfType<RenderBlock>(downcast<RenderElement>(*renderObject)).first();
    100         return child ? IncludeObject : DefaultBehavior;
     100        return child ? AccessibilityObjectInclusion::IncludeObject : AccessibilityObjectInclusion::DefaultBehavior;
    101101    }
    102102
     
    105105        for (const auto& child : childrenOfType<RenderObject>(downcast<RenderElement>(*renderObject))) {
    106106            if (is<RenderInline>(child) || is<RenderText>(child) || is<HTMLSpanElement>(child.node()))
    107                 return IncludeObject;
     107                return AccessibilityObjectInclusion::IncludeObject;
    108108        }
    109         return DefaultBehavior;
     109        return AccessibilityObjectInclusion::DefaultBehavior;
    110110    }
    111111
     
    113113        // The text displayed by an ARIA menu item is exposed through the accessible name.
    114114        if (parent->isMenuItem())
    115             return IgnoreObject;
     115            return AccessibilityObjectInclusion::IgnoreObject;
    116116
    117117        // The text displayed in headings is typically exposed in the heading itself.
    118118        if (parent->isHeading())
    119             return IgnoreObject;
     119            return AccessibilityObjectInclusion::IgnoreObject;
    120120
    121121        // The text displayed in list items is typically exposed in the list item itself.
    122122        if (parent->isListItem())
    123             return IgnoreObject;
     123            return AccessibilityObjectInclusion::IgnoreObject;
    124124
    125125        // The text displayed in links is typically exposed in the link itself.
    126126        if (parent->isLink())
    127             return IgnoreObject;
     127            return AccessibilityObjectInclusion::IgnoreObject;
    128128
    129129        // FIXME: This next one needs some further consideration. But paragraphs are not
    130130        // typically huge (like divs). And ignoring anonymous block children of paragraphs
    131131        // will preserve existing behavior.
    132         if (parent->roleValue() == ParagraphRole)
    133             return IgnoreObject;
    134 
    135         return DefaultBehavior;
     132        if (parent->roleValue() == AccessibilityRole::Paragraph)
     133            return AccessibilityObjectInclusion::IgnoreObject;
     134
     135        return AccessibilityObjectInclusion::DefaultBehavior;
    136136    }
    137137
    138138    Node* node = renderObject->node();
    139139    if (!node)
    140         return DefaultBehavior;
     140        return AccessibilityObjectInclusion::DefaultBehavior;
    141141
    142142    // We don't want <span> elements to show up in the accessibility hierarchy unless
     
    145145    // atk_component_grab_focus() to set the focus to it.
    146146    if (is<HTMLSpanElement>(node) && !canSetFocusAttribute() && !hasAttributesRequiredForInclusion() && !supportsARIAAttributes())
    147         return IgnoreObject;
     147        return AccessibilityObjectInclusion::IgnoreObject;
    148148
    149149    // If we include TextControlInnerTextElement children, changes to those children
     
    152152    // key echo enabled when typing in a password input.
    153153    if (is<TextControlInnerTextElement>(node))
    154         return IgnoreObject;
    155 
    156     return DefaultBehavior;
     154        return AccessibilityObjectInclusion::IgnoreObject;
     155
     156    return AccessibilityObjectInclusion::DefaultBehavior;
    157157}
    158158
     
    184184    // Check roles as the last fallback mechanism.
    185185    AccessibilityRole role = roleValue();
    186     return role == ParagraphRole || role == LabelRole || role == DivRole || role == FormRole || role == PreRole;
     186    return role == AccessibilityRole::Paragraph || role == AccessibilityRole::Label || role == AccessibilityRole::Div || role == AccessibilityRole::Form || role == AccessibilityRole::Pre;
    187187}
    188188
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp

    r219544 r224074  
    448448
    449449#if ENABLE(INPUT_TYPE_COLOR)
    450     if (coreObject->roleValue() == ColorWellRole) {
     450    if (coreObject->roleValue() == AccessibilityRole::ColorWell) {
    451451        int r, g, b;
    452452        coreObject->colorValue(r, g, b);
     
    466466    // Prefix a item number/bullet if needed
    467467    int actualEndOffset = endOffset == -1 ? ret.length() : endOffset;
    468     if (coreObject->roleValue() == ListItemRole) {
     468    if (coreObject->roleValue() == AccessibilityRole::ListItem) {
    469469        RenderObject* objRenderer = coreObject->renderer();
    470470        if (is<RenderListItem>(objRenderer)) {
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleUtil.cpp

    r208479 r224074  
    9797    for (const AccessibilityText& text : textOrder) {
    9898        // Once we encounter visible text, or the text from our children that should be used foremost.
    99         if (text.textSource == VisibleText || text.textSource == ChildrenText)
     99        if (text.textSource == AccessibilityTextSource::Visible || text.textSource == AccessibilityTextSource::Children)
    100100            return text.text;
    101101
    102102        // If there's an element that labels this object and it's not exposed, then we should use
    103103        // that text as our title.
    104         if (text.textSource == LabelByElementText && !coreObject->exposesTitleUIElement())
     104        if (text.textSource == AccessibilityTextSource::LabelByElement && !coreObject->exposesTitleUIElement())
    105105            return text.text;
    106106
    107         // Elements of role ToolbarRole will return its title as AlternativeText.
    108         if (coreObject->roleValue() == ToolbarRole && text.textSource == AlternativeText)
     107        // Elements of role AccessibilityRole::Toolbar will return its title as AccessibilityTextSource::Alternative.
     108        if (coreObject->roleValue() == AccessibilityRole::Toolbar && text.textSource == AccessibilityTextSource::Alternative)
    109109            return text.text;
    110110
    111111        // FIXME: The title tag is used in certain cases for the title. This usage should
    112112        // probably be in the description field since it's not "visible".
    113         if (text.textSource == TitleTagText && !titleTagShouldBeUsedInDescriptionField(coreObject))
     113        if (text.textSource == AccessibilityTextSource::TitleTag && !titleTagShouldBeUsedInDescriptionField(coreObject))
    114114            return text.text;
    115115    }
     
    125125    bool visibleTextAvailable = false;
    126126    for (const AccessibilityText& text : textOrder) {
    127         if (text.textSource == AlternativeText)
     127        if (text.textSource == AccessibilityTextSource::Alternative)
    128128            return text.text;
    129129
    130130        switch (text.textSource) {
    131         case VisibleText:
    132         case ChildrenText:
    133         case LabelByElementText:
     131        case AccessibilityTextSource::Visible:
     132        case AccessibilityTextSource::Children:
     133        case AccessibilityTextSource::LabelByElement:
    134134            visibleTextAvailable = true;
    135135        default:
     
    137137        }
    138138
    139         if (text.textSource == TitleTagText && !visibleTextAvailable)
     139        if (text.textSource == AccessibilityTextSource::TitleTag && !visibleTextAvailable)
    140140            return text.text;
    141141    }
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp

    r223766 r224074  
    127127        // in the order defined by that spec. So take the first thing that our platform
    128128        // does not expose via the AtkObject description.
    129         if (text.textSource != HelpText && text.textSource != SummaryText)
     129        if (text.textSource != AccessibilityTextSource::Help && text.textSource != AccessibilityTextSource::Summary)
    130130            return cacheAndReturnAtkProperty(object, AtkCachedAccessibleName, text.text);
    131131    }
     
    147147        // in the order defined by that spec. So take the first thing that our platform
    148148        // does not expose via the AtkObject name.
    149         if (text.textSource == HelpText || text.textSource == SummaryText)
     149        if (text.textSource == AccessibilityTextSource::Help || text.textSource == AccessibilityTextSource::Summary)
    150150            return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, text.text);
    151151
    152152        // If there is no other text alternative, the title tag contents will have been
    153153        // used for the AtkObject name. We don't want to duplicate it here.
    154         if (text.textSource == TitleTagText && nameTextAvailable)
     154        if (text.textSource == AccessibilityTextSource::TitleTag && nameTextAvailable)
    155155            return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, text.text);
    156156
     
    186186        if (AccessibilityObject* label = coreObject->titleUIElement())
    187187            atk_relation_set_add_relation_by_type(relationSet, ATK_RELATION_LABELLED_BY, label->wrapper());
    188     } else if (coreObject->roleValue() == LegendRole) {
     188    } else if (coreObject->roleValue() == AccessibilityRole::Legend) {
    189189        if (RenderBlock* renderFieldset = ancestorsOfType<RenderBlock>(*coreObject->renderer()).first()) {
    190190            if (renderFieldset->isFieldset()) {
     
    456456    }
    457457
    458     if (coreObject->roleValue() == MathElementRole) {
    459         if (coreObject->isMathMultiscriptObject(PreSuperscript) || coreObject->isMathMultiscriptObject(PreSubscript))
     458    if (coreObject->roleValue() == AccessibilityRole::MathElement) {
     459        if (coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PreSuperscript) || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PreSubscript))
    460460            attributeSet = addToAtkAttributeSet(attributeSet, "multiscript-type", "pre");
    461         else if (coreObject->isMathMultiscriptObject(PostSuperscript) || coreObject->isMathMultiscriptObject(PostSubscript))
     461        else if (coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSuperscript) || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSubscript))
    462462            attributeSet = addToAtkAttributeSet(attributeSet, "multiscript-type", "post");
    463463    }
     
    512512    if (coreObject->hasAttribute(HTMLNames::aria_sortAttr)) {
    513513        switch (coreObject->sortDirection()) {
    514         case SortDirectionInvalid:
     514        case AccessibilitySortDirection::Invalid:
    515515            break;
    516         case SortDirectionAscending:
     516        case AccessibilitySortDirection::Ascending:
    517517            attributeSet = addToAtkAttributeSet(attributeSet, "sort", "ascending");
    518518            break;
    519         case SortDirectionDescending:
     519        case AccessibilitySortDirection::Descending:
    520520            attributeSet = addToAtkAttributeSet(attributeSet, "sort", "descending");
    521521            break;
    522         case SortDirectionOther:
     522        case AccessibilitySortDirection::Other:
    523523            attributeSet = addToAtkAttributeSet(attributeSet, "sort", "other");
    524524            break;
    525         default:
     525        case AccessibilitySortDirection::None:
    526526            attributeSet = addToAtkAttributeSet(attributeSet, "sort", "none");
    527527        }
     
    557557        // The HTML AAM maps several elements to ARIA landmark roles. In order for the type of landmark
    558558        // to be obtainable in the same fashion as an ARIA landmark, fall back on the computedRoleString.
    559         if (coreObject->ariaRoleAttribute() == UnknownRole && coreObject->isLandmark())
     559        if (coreObject->ariaRoleAttribute() == AccessibilityRole::Unknown && coreObject->isLandmark())
    560560            attributeSet = addToAtkAttributeSet(attributeSet, "xml-roles", computedRoleString.utf8().data());
    561561    }
     
    614614    AccessibilityRole role = coreObject->roleValue();
    615615    switch (role) {
    616     case ApplicationAlertRole:
     616    case AccessibilityRole::ApplicationAlert:
    617617        return ATK_ROLE_ALERT;
    618     case ApplicationAlertDialogRole:
    619     case ApplicationDialogRole:
     618    case AccessibilityRole::ApplicationAlertDialog:
     619    case AccessibilityRole::ApplicationDialog:
    620620        return ATK_ROLE_DIALOG;
    621     case ApplicationStatusRole:
     621    case AccessibilityRole::ApplicationStatus:
    622622        return ATK_ROLE_STATUSBAR;
    623     case UnknownRole:
     623    case AccessibilityRole::Unknown:
    624624        return ATK_ROLE_UNKNOWN;
    625     case AudioRole:
     625    case AccessibilityRole::Audio:
    626626#if ATK_CHECK_VERSION(2, 11, 3)
    627627        return ATK_ROLE_AUDIO;
    628628#endif
    629     case VideoRole:
     629    case AccessibilityRole::Video:
    630630#if ATK_CHECK_VERSION(2, 11, 3)
    631631        return ATK_ROLE_VIDEO;
    632632#endif
    633633        return ATK_ROLE_EMBEDDED;
    634     case ButtonRole:
     634    case AccessibilityRole::Button:
    635635        return ATK_ROLE_PUSH_BUTTON;
    636     case SwitchRole:
    637     case ToggleButtonRole:
     636    case AccessibilityRole::Switch:
     637    case AccessibilityRole::ToggleButton:
    638638        return ATK_ROLE_TOGGLE_BUTTON;
    639     case RadioButtonRole:
     639    case AccessibilityRole::RadioButton:
    640640        return ATK_ROLE_RADIO_BUTTON;
    641     case CheckBoxRole:
     641    case AccessibilityRole::CheckBox:
    642642        return ATK_ROLE_CHECK_BOX;
    643     case SliderRole:
     643    case AccessibilityRole::Slider:
    644644        return ATK_ROLE_SLIDER;
    645     case TabGroupRole:
    646     case TabListRole:
     645    case AccessibilityRole::TabGroup:
     646    case AccessibilityRole::TabList:
    647647        return ATK_ROLE_PAGE_TAB_LIST;
    648     case TextFieldRole:
    649     case TextAreaRole:
    650     case SearchFieldRole:
     648    case AccessibilityRole::TextField:
     649    case AccessibilityRole::TextArea:
     650    case AccessibilityRole::SearchField:
    651651        return ATK_ROLE_ENTRY;
    652     case StaticTextRole:
     652    case AccessibilityRole::StaticText:
    653653#if ATK_CHECK_VERSION(2, 15, 2)
    654654        return ATK_ROLE_STATIC;
     
    656656        return ATK_ROLE_TEXT;
    657657#endif
    658     case OutlineRole:
    659     case TreeRole:
     658    case AccessibilityRole::Outline:
     659    case AccessibilityRole::Tree:
    660660        return ATK_ROLE_TREE;
    661     case TreeItemRole:
     661    case AccessibilityRole::TreeItem:
    662662        return ATK_ROLE_TREE_ITEM;
    663     case MenuBarRole:
     663    case AccessibilityRole::MenuBar:
    664664        return ATK_ROLE_MENU_BAR;
    665     case MenuListPopupRole:
    666     case MenuRole:
     665    case AccessibilityRole::MenuListPopup:
     666    case AccessibilityRole::Menu:
    667667        return ATK_ROLE_MENU;
    668     case MenuListOptionRole:
    669     case MenuItemRole:
    670     case MenuButtonRole:
     668    case AccessibilityRole::MenuListOption:
     669    case AccessibilityRole::MenuItem:
     670    case AccessibilityRole::MenuButton:
    671671        return ATK_ROLE_MENU_ITEM;
    672     case MenuItemCheckboxRole:
     672    case AccessibilityRole::MenuItemCheckbox:
    673673        return ATK_ROLE_CHECK_MENU_ITEM;
    674     case MenuItemRadioRole:
     674    case AccessibilityRole::MenuItemRadio:
    675675        return ATK_ROLE_RADIO_MENU_ITEM;
    676     case ColumnRole:
     676    case AccessibilityRole::Column:
    677677        // return ATK_ROLE_TABLE_COLUMN_HEADER; // Is this right?
    678678        return ATK_ROLE_UNKNOWN; // Matches Mozilla
    679     case RowRole:
     679    case AccessibilityRole::Row:
    680680        return ATK_ROLE_TABLE_ROW;
    681     case ToolbarRole:
     681    case AccessibilityRole::Toolbar:
    682682        return ATK_ROLE_TOOL_BAR;
    683     case BusyIndicatorRole:
     683    case AccessibilityRole::BusyIndicator:
    684684        return ATK_ROLE_PROGRESS_BAR; // Is this right?
    685     case ProgressIndicatorRole:
     685    case AccessibilityRole::ProgressIndicator:
    686686        return coreObject->isMeter() ? ATK_ROLE_LEVEL_BAR : ATK_ROLE_PROGRESS_BAR;
    687     case WindowRole:
     687    case AccessibilityRole::Window:
    688688        return ATK_ROLE_WINDOW;
    689     case PopUpButtonRole:
     689    case AccessibilityRole::PopUpButton:
    690690        return coreObject->ariaHasPopup() ? ATK_ROLE_PUSH_BUTTON : ATK_ROLE_COMBO_BOX;
    691     case ComboBoxRole:
     691    case AccessibilityRole::ComboBox:
    692692        return ATK_ROLE_COMBO_BOX;
    693     case SplitGroupRole:
     693    case AccessibilityRole::SplitGroup:
    694694        return ATK_ROLE_SPLIT_PANE;
    695     case SplitterRole:
     695    case AccessibilityRole::Splitter:
    696696        return ATK_ROLE_SEPARATOR;
    697     case ColorWellRole:
     697    case AccessibilityRole::ColorWell:
    698698#if PLATFORM(GTK)
    699699        // ATK_ROLE_COLOR_CHOOSER is defined as a dialog (i.e. it's what appears when you push the button).
    700700        return ATK_ROLE_PUSH_BUTTON;
    701701#endif
    702     case ListRole:
     702    case AccessibilityRole::List:
    703703        return ATK_ROLE_LIST;
    704     case ScrollBarRole:
     704    case AccessibilityRole::ScrollBar:
    705705        return ATK_ROLE_SCROLL_BAR;
    706     case ScrollAreaRole:
    707     case TabPanelRole:
     706    case AccessibilityRole::ScrollArea:
     707    case AccessibilityRole::TabPanel:
    708708        return ATK_ROLE_SCROLL_PANE;
    709     case GridRole:
    710     case TableRole:
     709    case AccessibilityRole::Grid:
     710    case AccessibilityRole::Table:
    711711        return ATK_ROLE_TABLE;
    712     case TreeGridRole:
     712    case AccessibilityRole::TreeGrid:
    713713        return ATK_ROLE_TREE_TABLE;
    714     case ApplicationRole:
     714    case AccessibilityRole::Application:
    715715        return ATK_ROLE_APPLICATION;
    716     case ApplicationGroupRole:
    717     case FeedRole:
    718     case FigureRole:
    719     case GroupRole:
    720     case RadioGroupRole:
    721     case SVGRootRole:
     716    case AccessibilityRole::ApplicationGroup:
     717    case AccessibilityRole::Feed:
     718    case AccessibilityRole::Figure:
     719    case AccessibilityRole::Group:
     720    case AccessibilityRole::RadioGroup:
     721    case AccessibilityRole::SVGRoot:
    722722        return ATK_ROLE_PANEL;
    723     case RowHeaderRole:
     723    case AccessibilityRole::RowHeader:
    724724        return ATK_ROLE_ROW_HEADER;
    725     case ColumnHeaderRole:
     725    case AccessibilityRole::ColumnHeader:
    726726        return ATK_ROLE_COLUMN_HEADER;
    727     case CaptionRole:
     727    case AccessibilityRole::Caption:
    728728        return ATK_ROLE_CAPTION;
    729     case CellRole:
    730     case GridCellRole:
     729    case AccessibilityRole::Cell:
     730    case AccessibilityRole::GridCell:
    731731        return coreObject->inheritsPresentationalRole() ? ATK_ROLE_SECTION : ATK_ROLE_TABLE_CELL;
    732     case LinkRole:
    733     case WebCoreLinkRole:
    734     case ImageMapLinkRole:
     732    case AccessibilityRole::Link:
     733    case AccessibilityRole::WebCoreLink:
     734    case AccessibilityRole::ImageMapLink:
    735735        return ATK_ROLE_LINK;
    736     case ImageMapRole:
     736    case AccessibilityRole::ImageMap:
    737737        return ATK_ROLE_IMAGE_MAP;
    738     case ImageRole:
     738    case AccessibilityRole::Image:
    739739        return ATK_ROLE_IMAGE;
    740     case ListMarkerRole:
     740    case AccessibilityRole::ListMarker:
    741741        return ATK_ROLE_TEXT;
    742     case DocumentArticleRole:
     742    case AccessibilityRole::DocumentArticle:
    743743#if ATK_CHECK_VERSION(2, 11, 3)
    744744        return ATK_ROLE_ARTICLE;
    745745#endif
    746     case DocumentRole:
     746    case AccessibilityRole::Document:
    747747        return ATK_ROLE_DOCUMENT_FRAME;
    748     case DocumentNoteRole:
     748    case AccessibilityRole::DocumentNote:
    749749        return ATK_ROLE_COMMENT;
    750     case HeadingRole:
     750    case AccessibilityRole::Heading:
    751751        return ATK_ROLE_HEADING;
    752     case ListBoxRole:
     752    case AccessibilityRole::ListBox:
    753753        // https://rawgit.com/w3c/aria/master/core-aam/core-aam.html#role-map-listbox
    754         return coreObject->isDescendantOfRole(ComboBoxRole) ? ATK_ROLE_MENU : ATK_ROLE_LIST_BOX;
    755     case ListItemRole:
     754        return coreObject->isDescendantOfRole(AccessibilityRole::ComboBox) ? ATK_ROLE_MENU : ATK_ROLE_LIST_BOX;
     755    case AccessibilityRole::ListItem:
    756756        return coreObject->inheritsPresentationalRole() ? ATK_ROLE_SECTION : ATK_ROLE_LIST_ITEM;
    757     case ListBoxOptionRole:
    758         return coreObject->isDescendantOfRole(ComboBoxRole) ? ATK_ROLE_MENU_ITEM : ATK_ROLE_LIST_ITEM;
    759     case ParagraphRole:
     757    case AccessibilityRole::ListBoxOption:
     758        return coreObject->isDescendantOfRole(AccessibilityRole::ComboBox) ? ATK_ROLE_MENU_ITEM : ATK_ROLE_LIST_ITEM;
     759    case AccessibilityRole::Paragraph:
    760760        return ATK_ROLE_PARAGRAPH;
    761     case LabelRole:
    762     case LegendRole:
     761    case AccessibilityRole::Label:
     762    case AccessibilityRole::Legend:
    763763        return ATK_ROLE_LABEL;
    764     case BlockquoteRole:
     764    case AccessibilityRole::Blockquote:
    765765#if ATK_CHECK_VERSION(2, 11, 3)
    766766        return ATK_ROLE_BLOCK_QUOTE;
    767767#endif
    768     case FootnoteRole:
     768    case AccessibilityRole::Footnote:
    769769#if ATK_CHECK_VERSION(2, 25, 2)
    770770        return ATK_ROLE_FOOTNOTE;
    771771#endif
    772     case ApplicationTextGroupRole:
    773     case DivRole:
    774     case PreRole:
    775     case SVGTextRole:
    776     case TextGroupRole:
     772    case AccessibilityRole::ApplicationTextGroup:
     773    case AccessibilityRole::Div:
     774    case AccessibilityRole::Pre:
     775    case AccessibilityRole::SVGText:
     776    case AccessibilityRole::TextGroup:
    777777        return ATK_ROLE_SECTION;
    778     case FooterRole:
     778    case AccessibilityRole::Footer:
    779779        return ATK_ROLE_FOOTER;
    780     case FormRole:
     780    case AccessibilityRole::Form:
    781781#if ATK_CHECK_VERSION(2, 11, 3)
    782         if (coreObject->ariaRoleAttribute() != UnknownRole)
     782        if (coreObject->ariaRoleAttribute() != AccessibilityRole::Unknown)
    783783            return ATK_ROLE_LANDMARK;
    784784#endif
    785785        return ATK_ROLE_FORM;
    786     case CanvasRole:
     786    case AccessibilityRole::Canvas:
    787787        return ATK_ROLE_CANVAS;
    788     case HorizontalRuleRole:
     788    case AccessibilityRole::HorizontalRule:
    789789        return ATK_ROLE_SEPARATOR;
    790     case SpinButtonRole:
     790    case AccessibilityRole::SpinButton:
    791791        return ATK_ROLE_SPIN_BUTTON;
    792     case TabRole:
     792    case AccessibilityRole::Tab:
    793793        return ATK_ROLE_PAGE_TAB;
    794     case UserInterfaceTooltipRole:
     794    case AccessibilityRole::UserInterfaceTooltip:
    795795        return ATK_ROLE_TOOL_TIP;
    796     case WebAreaRole:
     796    case AccessibilityRole::WebArea:
    797797        return ATK_ROLE_DOCUMENT_WEB;
    798     case WebApplicationRole:
     798    case AccessibilityRole::WebApplication:
    799799        return ATK_ROLE_EMBEDDED;
    800800#if ATK_CHECK_VERSION(2, 11, 3)
    801     case ApplicationLogRole:
     801    case AccessibilityRole::ApplicationLog:
    802802        return ATK_ROLE_LOG;
    803     case ApplicationMarqueeRole:
     803    case AccessibilityRole::ApplicationMarquee:
    804804        return ATK_ROLE_MARQUEE;
    805     case ApplicationTimerRole:
     805    case AccessibilityRole::ApplicationTimer:
    806806        return ATK_ROLE_TIMER;
    807     case DefinitionRole:
     807    case AccessibilityRole::Definition:
    808808        return ATK_ROLE_DEFINITION;
    809     case DocumentMathRole:
     809    case AccessibilityRole::DocumentMath:
    810810        return ATK_ROLE_MATH;
    811     case MathElementRole:
     811    case AccessibilityRole::MathElement:
    812812        if (coreObject->isMathRow())
    813813            return ATK_ROLE_PANEL;
     
    825825        if (coreObject->isMathSquareRoot() || coreObject->isMathRoot())
    826826            return ATK_ROLE_MATH_ROOT;
    827         if (coreObject->isMathScriptObject(Subscript)
    828             || coreObject->isMathMultiscriptObject(PreSubscript) || coreObject->isMathMultiscriptObject(PostSubscript))
     827        if (coreObject->isMathScriptObject(AccessibilityMathScriptObjectType::Subscript)
     828            || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PreSubscript) || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSubscript))
    829829            return ATK_ROLE_SUBSCRIPT;
    830         if (coreObject->isMathScriptObject(Superscript)
    831             || coreObject->isMathMultiscriptObject(PreSuperscript) || coreObject->isMathMultiscriptObject(PostSuperscript))
     830        if (coreObject->isMathScriptObject(AccessibilityMathScriptObjectType::Superscript)
     831            || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PreSuperscript) || coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSuperscript))
    832832            return ATK_ROLE_SUPERSCRIPT;
    833833#endif
     
    837837#endif
    838838        return ATK_ROLE_UNKNOWN;
    839     case LandmarkBannerRole:
    840     case LandmarkComplementaryRole:
    841     case LandmarkContentInfoRole:
    842     case LandmarkDocRegionRole:
    843     case LandmarkMainRole:
    844     case LandmarkNavigationRole:
    845     case LandmarkRegionRole:
    846     case LandmarkSearchRole:
     839    case AccessibilityRole::LandmarkBanner:
     840    case AccessibilityRole::LandmarkComplementary:
     841    case AccessibilityRole::LandmarkContentInfo:
     842    case AccessibilityRole::LandmarkDocRegion:
     843    case AccessibilityRole::LandmarkMain:
     844    case AccessibilityRole::LandmarkNavigation:
     845    case AccessibilityRole::LandmarkRegion:
     846    case AccessibilityRole::LandmarkSearch:
    847847        return ATK_ROLE_LANDMARK;
    848848#endif
    849849#if ATK_CHECK_VERSION(2, 11, 4)
    850     case DescriptionListRole:
     850    case AccessibilityRole::DescriptionList:
    851851        return ATK_ROLE_DESCRIPTION_LIST;
    852     case TermRole:
    853     case DescriptionListTermRole:
     852    case AccessibilityRole::Term:
     853    case AccessibilityRole::DescriptionListTerm:
    854854        return ATK_ROLE_DESCRIPTION_TERM;
    855     case DescriptionListDetailRole:
     855    case AccessibilityRole::DescriptionListDetail:
    856856        return ATK_ROLE_DESCRIPTION_VALUE;
    857857#endif
    858     case InlineRole:
     858    case AccessibilityRole::Inline:
    859859#if ATK_CHECK_VERSION(2, 15, 4)
    860860        if (coreObject->isSubscriptStyleGroup())
     
    865865#if ATK_CHECK_VERSION(2, 15, 2)
    866866        return ATK_ROLE_STATIC;
    867     case SVGTextPathRole:
    868     case SVGTSpanRole:
    869     case TimeRole:
     867    case AccessibilityRole::SVGTextPath:
     868    case AccessibilityRole::SVGTSpan:
     869    case AccessibilityRole::Time:
    870870        return ATK_ROLE_STATIC;
    871871#endif
     
    931931    // Please keep the state list in alphabetical order
    932932    if ((isListBoxOption && coreObject->isSelectedOptionActive())
    933         || coreObject->ariaCurrentState() != ARIACurrentFalse)
     933        || coreObject->ariaCurrentState() != AccessibilityARIACurrentState::False)
    934934        atk_state_set_add_state(stateSet, ATK_STATE_ACTIVE);
    935935
     
    973973    }
    974974
    975     if (coreObject->orientation() == AccessibilityOrientationHorizontal)
     975    if (coreObject->orientation() == AccessibilityOrientation::Horizontal)
    976976        atk_state_set_add_state(stateSet, ATK_STATE_HORIZONTAL);
    977     else if (coreObject->orientation() == AccessibilityOrientationVertical)
     977    else if (coreObject->orientation() == AccessibilityOrientation::Vertical)
    978978        atk_state_set_add_state(stateSet, ATK_STATE_VERTICAL);
    979979
     
    984984        atk_state_set_add_state(stateSet, ATK_STATE_INDETERMINATE);
    985985    else if (coreObject->isCheckboxOrRadio() || coreObject->isMenuItem() || coreObject->isToggleButton()) {
    986         if (coreObject->checkboxOrRadioValue() == ButtonStateMixed)
     986        if (coreObject->checkboxOrRadioValue() == AccessibilityButtonState::Mixed)
    987987            atk_state_set_add_state(stateSet, ATK_STATE_INDETERMINATE);
    988988    }
     
    10401040
    10411041    // Mutually exclusive, so we group these two
    1042     if (coreObject->roleValue() == TextAreaRole || coreObject->ariaIsMultiline())
     1042    if (coreObject->roleValue() == AccessibilityRole::TextArea || coreObject->ariaIsMultiline())
    10431043        atk_state_set_add_state(stateSet, ATK_STATE_MULTI_LINE);
    1044     else if (coreObject->roleValue() == TextFieldRole || coreObject->roleValue() == SearchFieldRole)
     1044    else if (coreObject->roleValue() == AccessibilityRole::TextField || coreObject->roleValue() == AccessibilityRole::SearchField)
    10451045        atk_state_set_add_state(stateSet, ATK_STATE_SINGLE_LINE);
    10461046
     
    12611261static bool roleIsTextType(AccessibilityRole role)
    12621262{
    1263     return role == ParagraphRole || role == HeadingRole || role == DivRole || role == CellRole
    1264         || role == LinkRole || role == WebCoreLinkRole || role == ListItemRole || role == PreRole
    1265         || role == GridCellRole || role == TextGroupRole || role == ApplicationTextGroupRole;
     1263    return role == AccessibilityRole::Paragraph
     1264        || role == AccessibilityRole::Heading
     1265        || role == AccessibilityRole::Div
     1266        || role == AccessibilityRole::Cell
     1267        || role == AccessibilityRole::Link
     1268        || role == AccessibilityRole::WebCoreLink
     1269        || role == AccessibilityRole::ListItem
     1270        || role == AccessibilityRole::Pre
     1271        || role == AccessibilityRole::GridCell
     1272        || role == AccessibilityRole::TextGroup
     1273        || role == AccessibilityRole::ApplicationTextGroup;
    12661274}
    12671275
     
    12971305
    12981306    // Text, Editable Text & Hypertext
    1299     if (role == StaticTextRole || coreObject->isMenuListOption())
     1307    if (role == AccessibilityRole::StaticText || coreObject->isMenuListOption())
    13001308        interfaceMask |= 1 << WAIText;
    13011309    else if (coreObject->isTextControl() || coreObject->isNonNativeTextControl()) {
     
    13041312            interfaceMask |= 1 << WAIEditableText;
    13051313    } else if (!coreObject->isWebArea()) {
    1306         if (role != TableRole) {
     1314        if (role != AccessibilityRole::Table) {
    13071315            interfaceMask |= 1 << WAIHypertext;
    13081316            if ((renderer && renderer->childrenInline()) || roleIsTextType(role) || coreObject->isMathToken())
     
    13121320        // Add the TEXT interface for list items whose
    13131321        // first accessible child has a text renderer
    1314         if (role == ListItemRole) {
     1322        if (role == AccessibilityRole::ListItem) {
    13151323            const AccessibilityObject::AccessibilityChildrenVector& children = coreObject->children();
    13161324            if (children.size()) {
     
    13301338
    13311339#if ATK_CHECK_VERSION(2,11,90)
    1332     if (role == CellRole || role == GridCellRole || role == ColumnHeaderRole || role == RowHeaderRole)
     1340    if (role == AccessibilityRole::Cell || role == AccessibilityRole::GridCell || role == AccessibilityRole::ColumnHeader || role == AccessibilityRole::RowHeader)
    13331341        interfaceMask |= 1 << WAITableCell;
    13341342#endif
    13351343
    13361344    // Document
    1337     if (role == WebAreaRole)
     1345    if (role == AccessibilityRole::WebArea)
    13381346        interfaceMask |= 1 << WAIDocument;
    13391347
     
    13441352#if ENABLE(INPUT_TYPE_COLOR)
    13451353    // Color type.
    1346     if (role == ColorWellRole)
     1354    if (role == AccessibilityRole::ColorWell)
    13471355        interfaceMask |= 1 << WAIText;
    13481356#endif
     
    14131421    ASSERT(accessible->m_object);
    14141422
    1415     if (accessible->m_object->roleValue() == WebAreaRole)
     1423    if (accessible->m_object->roleValue() == AccessibilityRole::WebArea)
    14161424        atk_object_notify_state_change(ATK_OBJECT(accessible), ATK_STATE_DEFUNCT, true);
    14171425
  • trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm

    r223476 r224074  
    6767AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesObject() const
    6868{
    69     return DefaultBehavior;
     69    return AccessibilityObjectInclusion::DefaultBehavior;
    7070}
    7171
     
    8282{
    8383    if (is<HTMLInputElement>(node()))
    84         return roleValue() == PopUpButtonRole;
     84        return roleValue() == AccessibilityRole::PopUpButton;
    8585    return false;
    8686}
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r223881 r224074  
    343343    // Elements that can be returned when performing fuzzy hit testing.
    344344    switch (role) {
    345     case ButtonRole:
    346     case CheckBoxRole:
    347     case ComboBoxRole:
    348     case DisclosureTriangleRole:
    349     case HeadingRole:
    350     case ImageMapLinkRole:
    351     case ImageRole:
    352     case LinkRole:
    353     case ListBoxRole:
    354     case ListBoxOptionRole:
    355     case MenuButtonRole:
    356     case MenuItemRole:
    357     case MenuItemCheckboxRole:
    358     case MenuItemRadioRole:
    359     case PopUpButtonRole:
    360     case RadioButtonRole:
    361     case ScrollBarRole:
    362     case SearchFieldRole:
    363     case SliderRole:
    364     case StaticTextRole:
    365     case SwitchRole:
    366     case TabRole:
    367     case TextFieldRole:
    368     case ToggleButtonRole:
     345    case AccessibilityRole::Button:
     346    case AccessibilityRole::CheckBox:
     347    case AccessibilityRole::ComboBox:
     348    case AccessibilityRole::DisclosureTriangle:
     349    case AccessibilityRole::Heading:
     350    case AccessibilityRole::ImageMapLink:
     351    case AccessibilityRole::Image:
     352    case AccessibilityRole::Link:
     353    case AccessibilityRole::ListBox:
     354    case AccessibilityRole::ListBoxOption:
     355    case AccessibilityRole::MenuButton:
     356    case AccessibilityRole::MenuItem:
     357    case AccessibilityRole::MenuItemCheckbox:
     358    case AccessibilityRole::MenuItemRadio:
     359    case AccessibilityRole::PopUpButton:
     360    case AccessibilityRole::RadioButton:
     361    case AccessibilityRole::ScrollBar:
     362    case AccessibilityRole::SearchField:
     363    case AccessibilityRole::Slider:
     364    case AccessibilityRole::StaticText:
     365    case AccessibilityRole::Switch:
     366    case AccessibilityRole::Tab:
     367    case AccessibilityRole::TextField:
     368    case AccessibilityRole::ToggleButton:
    369369        return !m_object->accessibilityIsIgnored();
    370370    default:
     
    515515
    516516    AccessibilityRole roleValue = m_object->roleValue();
    517     return roleValue == ApplicationDialogRole || roleValue == ApplicationAlertDialogRole;
     517    return roleValue == AccessibilityRole::ApplicationDialog || roleValue == AccessibilityRole::ApplicationAlertDialog;
    518518}
    519519
     
    521521{
    522522    switch (role) {
    523     case DocumentRole:
    524     case DocumentArticleRole:
    525     case DocumentNoteRole:
    526     case FooterRole:
    527     case LandmarkBannerRole:
    528     case LandmarkComplementaryRole:
    529     case LandmarkContentInfoRole:
    530     case LandmarkDocRegionRole:
    531     case LandmarkMainRole:
    532     case LandmarkNavigationRole:
    533     case LandmarkRegionRole:
    534     case LandmarkSearchRole:
     523    case AccessibilityRole::Document:
     524    case AccessibilityRole::DocumentArticle:
     525    case AccessibilityRole::DocumentNote:
     526    case AccessibilityRole::Footer:
     527    case AccessibilityRole::LandmarkBanner:
     528    case AccessibilityRole::LandmarkComplementary:
     529    case AccessibilityRole::LandmarkContentInfo:
     530    case AccessibilityRole::LandmarkDocRegion:
     531    case AccessibilityRole::LandmarkMain:
     532    case AccessibilityRole::LandmarkNavigation:
     533    case AccessibilityRole::LandmarkRegion:
     534    case AccessibilityRole::LandmarkSearch:
    535535        return YES;
    536536    default:
     
    543543    auto matchFunc = [] (const AccessibilityObject& object) {
    544544        AccessibilityRole role = object.roleValue();
    545         return role == TreeRole;
     545        return role == AccessibilityRole::Tree;
    546546    };
    547547   
     
    555555    auto matchFunc = [] (const AccessibilityObject& object) {
    556556        AccessibilityRole role = object.roleValue();
    557         return role == ListRole || role == ListBoxRole;
     557        return role == AccessibilityRole::List || role == AccessibilityRole::ListBox;
    558558    };
    559559   
     
    566566{
    567567    if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*m_object, false, [] (const AccessibilityObject& object) {
    568         return object.roleValue() == DocumentArticleRole;
     568        return object.roleValue() == AccessibilityRole::DocumentArticle;
    569569    }))
    570570        return parent->wrapper();
     
    619619    for (AccessibilityObject* parent = m_object->parentObject(); parent != nil; parent = parent->parentObject()) {
    620620        AccessibilityRole parentRole = parent->roleValue();
    621         if (parentRole == WebAreaRole)
     621        if (parentRole == AccessibilityRole::WebArea)
    622622            break;
    623623       
    624624        switch (parentRole) {
    625             case LinkRole:
    626             case WebCoreLinkRole:
    627                 traits |= [self _axLinkTrait];
    628                 if (parent->isVisited())
    629                     traits |= [self _axVisitedTrait];
    630                 break;
    631             case HeadingRole:
    632             {
    633                 traits |= [self _axHeaderTrait];
    634                 // If this object has the header trait, we should set the value
    635                 // to the heading level. If it was a static text element, we need to store
    636                 // the value as the label, because the heading level needs to the value.
    637                 AccessibilityObjectWrapper* wrapper = parent->wrapper();
    638                 if (role == StaticTextRole) {
    639                     // We should only set the text value as the label when there's no
    640                     // alternate text on the heading parent.
    641                     NSString *headingLabel = [wrapper baseAccessibilityDescription];
    642                     if (![headingLabel length])
    643                         [self setAccessibilityLabel:m_object->stringValue()];
    644                     else
    645                         [self setAccessibilityLabel:headingLabel];
    646                 }
    647                 [self setAccessibilityValue:[wrapper accessibilityValue]];
    648                 break;
     625        case AccessibilityRole::Link:
     626        case AccessibilityRole::WebCoreLink:
     627            traits |= [self _axLinkTrait];
     628            if (parent->isVisited())
     629                traits |= [self _axVisitedTrait];
     630            break;
     631        case AccessibilityRole::Heading: {
     632            traits |= [self _axHeaderTrait];
     633            // If this object has the header trait, we should set the value
     634            // to the heading level. If it was a static text element, we need to store
     635            // the value as the label, because the heading level needs to the value.
     636            AccessibilityObjectWrapper* wrapper = parent->wrapper();
     637            if (role == AccessibilityRole::StaticText) {
     638                // We should only set the text value as the label when there's no
     639                // alternate text on the heading parent.
     640                NSString *headingLabel = [wrapper baseAccessibilityDescription];
     641                if (![headingLabel length])
     642                    [self setAccessibilityLabel:m_object->stringValue()];
     643                else
     644                    [self setAccessibilityLabel:headingLabel];
    649645            }
    650             case ListBoxRole:
    651             case ListRole:
    652                 traits |= [self _axContainedByListTrait];
    653                 break;
    654             case GridRole:
    655             case TableRole:
    656             case TreeGridRole:
    657                 traits |= [self _axContainedByTableTrait];
    658                 break;
    659             default:
    660                 if ([self _accessibilityIsLandmarkRole:parentRole])
    661                     traits |= [self _axContainedByLandmarkTrait];
    662                 break;
     646            [self setAccessibilityValue:[wrapper accessibilityValue]];
     647            break;
     648        }
     649        case AccessibilityRole::ListBox:
     650        case AccessibilityRole::List:
     651            traits |= [self _axContainedByListTrait];
     652            break;
     653        case AccessibilityRole::Grid:
     654        case AccessibilityRole::Table:
     655        case AccessibilityRole::TreeGrid:
     656            traits |= [self _axContainedByTableTrait];
     657            break;
     658        default:
     659            if ([self _accessibilityIsLandmarkRole:parentRole])
     660                traits |= [self _axContainedByLandmarkTrait];
     661            break;
    663662        }
    664663       
     
    677676   
    678677    // Only make the video object interactive if it plays inline and has no native controls.
    679     if (m_object->roleValue() != VideoRole || !is<AccessibilityMediaObject>(m_object))
     678    if (m_object->roleValue() != AccessibilityRole::Video || !is<AccessibilityMediaObject>(m_object))
    680679        return NO;
    681680   
     
    742741    if (m_object->isPasswordField())
    743742        traits |= [self _axSecureTextFieldTrait];
    744     if (m_object->roleValue() == SearchFieldRole)
     743    if (m_object->roleValue() == AccessibilityRole::SearchField)
    745744        traits |= [self _axSearchFieldTrait];
    746     if (m_object->roleValue() == TextAreaRole)
     745    if (m_object->roleValue() == AccessibilityRole::TextArea)
    747746        traits |= [self _axTextAreaTrait];
    748747    return traits;
     
    757756    uint64_t traits = [self _axWebContentTrait];
    758757    switch (role) {
    759         case LinkRole:
    760         case WebCoreLinkRole:
    761             traits |= [self _axLinkTrait];
    762             if (m_object->isVisited())
    763                 traits |= [self _axVisitedTrait];
    764             break;
    765         case TextFieldRole:
    766         case SearchFieldRole:
    767         case TextAreaRole:
    768             traits |= [self _accessibilityTextEntryTraits];
    769             break;
    770         case ImageRole:
    771             traits |= [self _axImageTrait];
    772             break;
    773         case TabRole:
    774             traits |= [self _axTabButtonTrait];
    775             break;
    776         case ButtonRole:
    777             traits |= [self _axButtonTrait];
    778             if (m_object->isPressed())
    779                 traits |= [self _axToggleTrait];
    780             break;
    781         case PopUpButtonRole:
    782             traits |= [self _axPopupButtonTrait];
    783             break;
    784         case RadioButtonRole:
    785             traits |= [self _axRadioButtonTrait] | [self _axToggleTrait];
    786             break;
    787         case ToggleButtonRole:
    788         case CheckBoxRole:
    789         case SwitchRole:
    790             traits |= ([self _axButtonTrait] | [self _axToggleTrait]);
    791             break;
    792         case HeadingRole:
    793             traits |= [self _axHeaderTrait];
    794             break;
    795         case StaticTextRole:
    796             traits |= [self _axStaticTextTrait];
    797             break;
    798         case SliderRole:
    799             traits |= [self _axAdjustableTrait];
    800             break;
    801         case MenuButtonRole:
    802         case MenuItemRole:
    803             traits |= [self _axMenuItemTrait];
    804             break;
    805         case MenuItemCheckboxRole:
    806         case MenuItemRadioRole:
    807             traits |= ([self _axMenuItemTrait] | [self _axToggleTrait]);
    808             break;
    809         default:
    810             break;
     758    case AccessibilityRole::Link:
     759    case AccessibilityRole::WebCoreLink:
     760        traits |= [self _axLinkTrait];
     761        if (m_object->isVisited())
     762            traits |= [self _axVisitedTrait];
     763        break;
     764    case AccessibilityRole::TextField:
     765    case AccessibilityRole::SearchField:
     766    case AccessibilityRole::TextArea:
     767        traits |= [self _accessibilityTextEntryTraits];
     768        break;
     769    case AccessibilityRole::Image:
     770        traits |= [self _axImageTrait];
     771        break;
     772    case AccessibilityRole::Tab:
     773        traits |= [self _axTabButtonTrait];
     774        break;
     775    case AccessibilityRole::Button:
     776        traits |= [self _axButtonTrait];
     777        if (m_object->isPressed())
     778            traits |= [self _axToggleTrait];
     779        break;
     780    case AccessibilityRole::PopUpButton:
     781        traits |= [self _axPopupButtonTrait];
     782        break;
     783    case AccessibilityRole::RadioButton:
     784        traits |= [self _axRadioButtonTrait] | [self _axToggleTrait];
     785        break;
     786    case AccessibilityRole::ToggleButton:
     787    case AccessibilityRole::CheckBox:
     788    case AccessibilityRole::Switch:
     789        traits |= ([self _axButtonTrait] | [self _axToggleTrait]);
     790        break;
     791    case AccessibilityRole::Heading:
     792        traits |= [self _axHeaderTrait];
     793        break;
     794    case AccessibilityRole::StaticText:
     795        traits |= [self _axStaticTextTrait];
     796        break;
     797    case AccessibilityRole::Slider:
     798        traits |= [self _axAdjustableTrait];
     799        break;
     800    case AccessibilityRole::MenuButton:
     801    case AccessibilityRole::MenuItem:
     802        traits |= [self _axMenuItemTrait];
     803        break;
     804    case AccessibilityRole::MenuItemCheckbox:
     805    case AccessibilityRole::MenuItemRadio:
     806        traits |= ([self _axMenuItemTrait] | [self _axToggleTrait]);
     807        break;
     808    default:
     809        break;
    811810    }
    812811
     
    850849   
    851850    switch (m_object->roleValue()) {
    852         case TextFieldRole:
    853         case TextAreaRole:
    854         case ButtonRole:
    855         case ToggleButtonRole:
    856         case PopUpButtonRole:
    857         case CheckBoxRole:
    858         case RadioButtonRole:
    859         case SliderRole:
    860         case MenuButtonRole:
    861         case ValueIndicatorRole:
    862         case ImageRole:
    863         case ImageMapLinkRole:
    864         case ProgressIndicatorRole:
    865         case MenuItemRole:
    866         case MenuItemCheckboxRole:
    867         case MenuItemRadioRole:
    868         case IncrementorRole:
    869         case ComboBoxRole:
    870         case DisclosureTriangleRole:
    871         case ImageMapRole:
    872         case ListMarkerRole:
    873         case ListBoxOptionRole:
    874         case TabRole:
    875         case DocumentMathRole:
    876         case HorizontalRuleRole:
    877         case SliderThumbRole:
    878         case SwitchRole:
    879         case SearchFieldRole:
    880         case SpinButtonRole:
     851    case AccessibilityRole::TextField:
     852    case AccessibilityRole::TextArea:
     853    case AccessibilityRole::Button:
     854    case AccessibilityRole::ToggleButton:
     855    case AccessibilityRole::PopUpButton:
     856    case AccessibilityRole::CheckBox:
     857    case AccessibilityRole::RadioButton:
     858    case AccessibilityRole::Slider:
     859    case AccessibilityRole::MenuButton:
     860    case AccessibilityRole::ValueIndicator:
     861    case AccessibilityRole::Image:
     862    case AccessibilityRole::ImageMapLink:
     863    case AccessibilityRole::ProgressIndicator:
     864    case AccessibilityRole::MenuItem:
     865    case AccessibilityRole::MenuItemCheckbox:
     866    case AccessibilityRole::MenuItemRadio:
     867    case AccessibilityRole::Incrementor:
     868    case AccessibilityRole::ComboBox:
     869    case AccessibilityRole::DisclosureTriangle:
     870    case AccessibilityRole::ImageMap:
     871    case AccessibilityRole::ListMarker:
     872    case AccessibilityRole::ListBoxOption:
     873    case AccessibilityRole::Tab:
     874    case AccessibilityRole::DocumentMath:
     875    case AccessibilityRole::HorizontalRule:
     876    case AccessibilityRole::SliderThumb:
     877    case AccessibilityRole::Switch:
     878    case AccessibilityRole::SearchField:
     879    case AccessibilityRole::SpinButton:
     880        return true;
     881    case AccessibilityRole::StaticText: {
     882        // Many text elements only contain a space.
     883        if (![[[self accessibilityLabel] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length])
     884            return false;
     885
     886        // Text elements that are just pieces of links or headers should not be exposed.
     887        if ([AccessibilityUnignoredAncestor([self accessibilityContainer]) containsUnnaturallySegmentedChildren])
     888            return false;
     889        return true;
     890    }
     891       
     892    // Don't expose headers as elements; instead expose their children as elements, with the header trait (unless they have no children)
     893    case AccessibilityRole::Heading:
     894        if (![self accessibilityElementCount])
    881895            return true;
    882         case StaticTextRole:
    883         {
    884             // Many text elements only contain a space.
    885             if (![[[self accessibilityLabel] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length])
    886                 return false;
    887 
    888             // Text elements that are just pieces of links or headers should not be exposed.
    889             if ([AccessibilityUnignoredAncestor([self accessibilityContainer]) containsUnnaturallySegmentedChildren])
    890                 return false;
     896        return false;
     897       
     898    case AccessibilityRole::Video:
     899        return [self accessibilityIsWebInteractiveVideo];
     900       
     901    // Links can sometimes be elements (when they only contain static text or don't contain anything).
     902    // They should not be elements when containing text and other types.
     903    case AccessibilityRole::WebCoreLink:
     904    case AccessibilityRole::Link:
     905        if ([self containsUnnaturallySegmentedChildren] || ![self accessibilityElementCount])
    891906            return true;
    892         }
    893            
    894         // Don't expose headers as elements; instead expose their children as elements, with the header trait (unless they have no children)
    895         case HeadingRole:
    896             if (![self accessibilityElementCount])
    897                 return true;
    898             return false;
    899            
    900         case VideoRole:
    901             return [self accessibilityIsWebInteractiveVideo];
    902            
    903         // Links can sometimes be elements (when they only contain static text or don't contain anything).
    904         // They should not be elements when containing text and other types.
    905         case WebCoreLinkRole:
    906         case LinkRole:
    907             if ([self containsUnnaturallySegmentedChildren] || ![self accessibilityElementCount])
    908                 return true;
    909             return false;
    910         case GroupRole:
    911             if ([self isSVGGroupElement])
    912                 return true;
    913             FALLTHROUGH;
    914         // All other elements are ignored on the iphone.
    915         case AnnotationRole:
    916         case ApplicationRole:
    917         case ApplicationAlertRole:
    918         case ApplicationAlertDialogRole:
    919         case ApplicationDialogRole:
    920         case ApplicationGroupRole:
    921         case ApplicationLogRole:
    922         case ApplicationMarqueeRole:
    923         case ApplicationStatusRole:
    924         case ApplicationTextGroupRole:
    925         case ApplicationTimerRole:
    926         case AudioRole:
    927         case BlockquoteRole:
    928         case BrowserRole:
    929         case BusyIndicatorRole:
    930         case CanvasRole:
    931         case CaptionRole:
    932         case CellRole:
    933         case ColorWellRole:
    934         case ColumnRole:
    935         case ColumnHeaderRole:
    936         case DefinitionRole:
    937         case DescriptionListRole:
    938         case DescriptionListTermRole:
    939         case DescriptionListDetailRole:
    940         case DetailsRole:
    941         case DirectoryRole:
    942         case DivRole:
    943         case DocumentRole:
    944         case DocumentArticleRole:
    945         case DocumentNoteRole:
    946         case DrawerRole:
    947         case EditableTextRole:
    948         case FeedRole:
    949         case FigureRole:
    950         case FooterRole:
    951         case FootnoteRole:
    952         case FormRole:
    953         case GridRole:
    954         case GridCellRole:
    955         case GrowAreaRole:
    956         case HelpTagRole:
    957         case IgnoredRole:
    958         case InlineRole:
    959         case LabelRole:
    960         case LandmarkBannerRole:
    961         case LandmarkComplementaryRole:
    962         case LandmarkContentInfoRole:
    963         case LandmarkDocRegionRole:
    964         case LandmarkMainRole:
    965         case LandmarkNavigationRole:
    966         case LandmarkRegionRole:
    967         case LandmarkSearchRole:
    968         case LegendRole:
    969         case ListRole:
    970         case ListBoxRole:
    971         case ListItemRole:
    972         case MarkRole:
    973         case MathElementRole:
    974         case MatteRole:
    975         case MenuRole:
    976         case MenuBarRole:
    977         case MenuListPopupRole:
    978         case MenuListOptionRole:
    979         case OutlineRole:
    980         case ParagraphRole:
    981         case PreRole:
    982         case PresentationalRole:
    983         case RadioGroupRole:
    984         case RowHeaderRole:
    985         case RowRole:
    986         case RubyBaseRole:
    987         case RubyBlockRole:
    988         case RubyInlineRole:
    989         case RubyRunRole:
    990         case RubyTextRole:
    991         case RulerRole:
    992         case RulerMarkerRole:
    993         case ScrollAreaRole:
    994         case ScrollBarRole:
    995         case SheetRole:
    996         case SpinButtonPartRole:
    997         case SplitGroupRole:
    998         case SplitterRole:
    999         case SummaryRole:
    1000         case SystemWideRole:
    1001         case SVGRootRole:
    1002         case SVGTextPathRole:
    1003         case SVGTextRole:
    1004         case SVGTSpanRole:
    1005         case TabGroupRole:
    1006         case TabListRole:
    1007         case TabPanelRole:
    1008         case TableRole:
    1009         case TableHeaderContainerRole:
    1010         case TermRole:
    1011         case TextGroupRole:
    1012         case TimeRole:
    1013         case TreeRole:
    1014         case TreeItemRole:
    1015         case TreeGridRole:
    1016         case ToolbarRole:
    1017         case UnknownRole:
    1018         case UserInterfaceTooltipRole:
    1019         case WebApplicationRole:
    1020         case WebAreaRole:
    1021         case WindowRole:
    1022         case RowGroupRole:
    1023             return false;
     907        return false;
     908    case AccessibilityRole::Group:
     909        if ([self isSVGGroupElement])
     910            return true;
     911        FALLTHROUGH;
     912    // All other elements are ignored on the iphone.
     913    case AccessibilityRole::Annotation:
     914    case AccessibilityRole::Application:
     915    case AccessibilityRole::ApplicationAlert:
     916    case AccessibilityRole::ApplicationAlertDialog:
     917    case AccessibilityRole::ApplicationDialog:
     918    case AccessibilityRole::ApplicationGroup:
     919    case AccessibilityRole::ApplicationLog:
     920    case AccessibilityRole::ApplicationMarquee:
     921    case AccessibilityRole::ApplicationStatus:
     922    case AccessibilityRole::ApplicationTextGroup:
     923    case AccessibilityRole::ApplicationTimer:
     924    case AccessibilityRole::Audio:
     925    case AccessibilityRole::Blockquote:
     926    case AccessibilityRole::Browser:
     927    case AccessibilityRole::BusyIndicator:
     928    case AccessibilityRole::Canvas:
     929    case AccessibilityRole::Caption:
     930    case AccessibilityRole::Cell:
     931    case AccessibilityRole::ColorWell:
     932    case AccessibilityRole::Column:
     933    case AccessibilityRole::ColumnHeader:
     934    case AccessibilityRole::Definition:
     935    case AccessibilityRole::DescriptionList:
     936    case AccessibilityRole::DescriptionListTerm:
     937    case AccessibilityRole::DescriptionListDetail:
     938    case AccessibilityRole::Details:
     939    case AccessibilityRole::Directory:
     940    case AccessibilityRole::Div:
     941    case AccessibilityRole::Document:
     942    case AccessibilityRole::DocumentArticle:
     943    case AccessibilityRole::DocumentNote:
     944    case AccessibilityRole::Drawer:
     945    case AccessibilityRole::EditableText:
     946    case AccessibilityRole::Feed:
     947    case AccessibilityRole::Figure:
     948    case AccessibilityRole::Footer:
     949    case AccessibilityRole::Footnote:
     950    case AccessibilityRole::Form:
     951    case AccessibilityRole::Grid:
     952    case AccessibilityRole::GridCell:
     953    case AccessibilityRole::GrowArea:
     954    case AccessibilityRole::HelpTag:
     955    case AccessibilityRole::Ignored:
     956    case AccessibilityRole::Inline:
     957    case AccessibilityRole::Label:
     958    case AccessibilityRole::LandmarkBanner:
     959    case AccessibilityRole::LandmarkComplementary:
     960    case AccessibilityRole::LandmarkContentInfo:
     961    case AccessibilityRole::LandmarkDocRegion:
     962    case AccessibilityRole::LandmarkMain:
     963    case AccessibilityRole::LandmarkNavigation:
     964    case AccessibilityRole::LandmarkRegion:
     965    case AccessibilityRole::LandmarkSearch:
     966    case AccessibilityRole::Legend:
     967    case AccessibilityRole::List:
     968    case AccessibilityRole::ListBox:
     969    case AccessibilityRole::ListItem:
     970    case AccessibilityRole::Mark:
     971    case AccessibilityRole::MathElement:
     972    case AccessibilityRole::Matte:
     973    case AccessibilityRole::Menu:
     974    case AccessibilityRole::MenuBar:
     975    case AccessibilityRole::MenuListPopup:
     976    case AccessibilityRole::MenuListOption:
     977    case AccessibilityRole::Outline:
     978    case AccessibilityRole::Paragraph:
     979    case AccessibilityRole::Pre:
     980    case AccessibilityRole::Presentational:
     981    case AccessibilityRole::RadioGroup:
     982    case AccessibilityRole::RowHeader:
     983    case AccessibilityRole::Row:
     984    case AccessibilityRole::RubyBase:
     985    case AccessibilityRole::RubyBlock:
     986    case AccessibilityRole::RubyInline:
     987    case AccessibilityRole::RubyRun:
     988    case AccessibilityRole::RubyText:
     989    case AccessibilityRole::Ruler:
     990    case AccessibilityRole::RulerMarker:
     991    case AccessibilityRole::ScrollArea:
     992    case AccessibilityRole::ScrollBar:
     993    case AccessibilityRole::Sheet:
     994    case AccessibilityRole::SpinButtonPart:
     995    case AccessibilityRole::SplitGroup:
     996    case AccessibilityRole::Splitter:
     997    case AccessibilityRole::Summary:
     998    case AccessibilityRole::SystemWide:
     999    case AccessibilityRole::SVGRoot:
     1000    case AccessibilityRole::SVGTextPath:
     1001    case AccessibilityRole::SVGText:
     1002    case AccessibilityRole::SVGTSpan:
     1003    case AccessibilityRole::TabGroup:
     1004    case AccessibilityRole::TabList:
     1005    case AccessibilityRole::TabPanel:
     1006    case AccessibilityRole::Table:
     1007    case AccessibilityRole::TableHeaderContainer:
     1008    case AccessibilityRole::Term:
     1009    case AccessibilityRole::TextGroup:
     1010    case AccessibilityRole::Time:
     1011    case AccessibilityRole::Tree:
     1012    case AccessibilityRole::TreeItem:
     1013    case AccessibilityRole::TreeGrid:
     1014    case AccessibilityRole::Toolbar:
     1015    case AccessibilityRole::Unknown:
     1016    case AccessibilityRole::UserInterfaceTooltip:
     1017    case AccessibilityRole::WebApplication:
     1018    case AccessibilityRole::WebArea:
     1019    case AccessibilityRole::Window:
     1020    case AccessibilityRole::RowGroup:
     1021        return false;
    10241022    }
    10251023   
     
    10431041    if (m_object->isTextControl())
    10441042        return NO;
    1045     if (m_object->roleValue() == PopUpButtonRole)
     1043    if (m_object->roleValue() == AccessibilityRole::PopUpButton)
    10461044        return NO;
    10471045    if (m_object->isFileUploadButton())
     
    11271125
    11281126    // Footer is not considered a landmark, but we want the role description.
    1129     if (m_object->roleValue() == FooterRole)
     1127    if (m_object->roleValue() == AccessibilityRole::Footer)
    11301128        landmarkDescription = AXFooterRoleDescriptionText();
    11311129
    11321130    NSMutableString *result = [NSMutableString string];
    1133     if (m_object->roleValue() == HorizontalRuleRole)
     1131    if (m_object->roleValue() == AccessibilityRole::HorizontalRule)
    11341132        appendStringToResult(result, AXHorizontalRuleDescriptionText());
    1135        
     1133
    11361134    appendStringToResult(result, axTitle);
    11371135    appendStringToResult(result, axDescription);
     
    13911389   
    13921390    AccessibilityRole role = m_object->roleValue();
    1393     if (m_object->isCheckboxOrRadio() || role == MenuItemCheckboxRole || role == MenuItemRadioRole) {
     1391    if (m_object->isCheckboxOrRadio() || role == AccessibilityRole::MenuItemCheckbox || role == AccessibilityRole::MenuItemRadio) {
    13941392        switch (m_object->checkboxOrRadioValue()) {
    1395         case ButtonStateOff:
     1393        case AccessibilityButtonState::Off:
    13961394            return [NSString stringWithFormat:@"%d", 0];
    1397         case ButtonStateOn:
     1395        case AccessibilityButtonState::On:
    13981396            return [NSString stringWithFormat:@"%d", 1];
    1399         case ButtonStateMixed:
     1397        case AccessibilityButtonState::Mixed:
    14001398            return [NSString stringWithFormat:@"%d", 2];
    14011399        }
     
    14511449        return NO;
    14521450
    1453     return m_object->roleValue() == ComboBoxRole;
     1451    return m_object->roleValue() == AccessibilityRole::ComboBox;
    14541452}
    14551453
     
    16711669   
    16721670    AccessibilityRole role = m_object->roleValue();
    1673     if (role != LinkRole && role != WebCoreLinkRole)
     1671    if (role != AccessibilityRole::Link && role != AccessibilityRole::WebCoreLink)
    16741672        return NO;
    16751673   
     
    16831681    for (unsigned i = 0; i < childrenSize; ++i) {
    16841682        AccessibilityRole role = children[i]->roleValue();
    1685         if (role != StaticTextRole && role != ImageRole && role != GroupRole && role != TextGroupRole)
     1683        if (role != AccessibilityRole::StaticText && role != AccessibilityRole::Image && role != AccessibilityRole::Group && role != AccessibilityRole::TextGroup)
    16861684            return NO;
    16871685    }
     
    18271825    // If this static text inside of a link, it should use its parent's linked element.
    18281826    AccessibilityObject* element = m_object;
    1829     if (m_object->roleValue() == StaticTextRole && m_object->parentObjectUnignored()->isLink())
     1827    if (m_object->roleValue() == AccessibilityRole::StaticText && m_object->parentObjectUnignored()->isLink())
    18301828        element = m_object->parentObjectUnignored();
    18311829   
     
    20011999    // Use this to check if an object is inside a treeitem object.
    20022000    if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*object, true, [] (const AccessibilityObject& object) {
    2003         return object.roleValue() == TreeItemRole;
     2001        return object.roleValue() == AccessibilityRole::TreeItem;
    20042002    }))
    20052003        return const_cast<AccessibilityObject*>(parent);
     
    20232021    // In those cases we should focus on the link itself.
    20242022    for (AccessibilityObject* object = m_object; object != nil; object = object->parentObject()) {
    2025         if (object->roleValue() == WebAreaRole)
     2023        if (object->roleValue() == AccessibilityRole::WebArea)
    20262024            break;
    20272025
     
    29722970   
    29732971    switch (m_object->ariaCurrentState()) {
    2974     case ARIACurrentFalse:
     2972    case AccessibilityARIACurrentState::False:
    29752973        return @"false";
    2976     case ARIACurrentPage:
     2974    case AccessibilityARIACurrentState::Page:
    29772975        return @"page";
    2978     case ARIACurrentStep:
     2976    case AccessibilityARIACurrentState::Step:
    29792977        return @"step";
    2980     case ARIACurrentLocation:
     2978    case AccessibilityARIACurrentState::Location:
    29812979        return @"location";
    2982     case ARIACurrentTime:
     2980    case AccessibilityARIACurrentState::Time:
    29832981        return @"time";
    2984     case ARIACurrentDate:
     2982    case AccessibilityARIACurrentState::Date:
    29852983        return @"date";
    2986     default:
    2987     case ARIACurrentTrue:
     2984    case AccessibilityARIACurrentState::True:
    29882985        return @"true";
    29892986    }
     
    29962993   
    29972994    switch (m_object->sortDirection()) {
    2998     case SortDirectionAscending:
     2995    case AccessibilitySortDirection::Ascending:
    29992996        return @"ascending";
    3000     case SortDirectionDescending:
     2997    case AccessibilitySortDirection::Descending:
    30012998        return @"descending";
    3002     case SortDirectionOther:
     2999    case AccessibilitySortDirection::Other:
    30033000        return @"other";
    3004     default:
    3005     case SortDirectionNone:
     3001    case AccessibilitySortDirection::Invalid:
     3002    case AccessibilitySortDirection::None:
    30063003        return nil;
    30073004    }
     
    31273124        return NO;
    31283125
    3129     return m_object->roleValue() == DocumentMathRole;
     3126    return m_object->roleValue() == AccessibilityRole::DocumentMath;
    31303127}
    31313128
     
    31433140        return nil;
    31443141
    3145     if (m_object->roleValue() == MathElementRole) {
     3142    if (m_object->roleValue() == AccessibilityRole::MathElement) {
    31463143        if (m_object->isMathFraction())
    31473144            return @"AXMathFraction";
  • trunk/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm

    r207583 r224074  
    8383{
    8484    if (isMenuListPopup() || isMenuListOption())
    85         return IgnoreObject;
     85        return AccessibilityObjectInclusion::IgnoreObject;
    8686
    87     if (roleValue() == CaptionRole)
    88         return IgnoreObject;
     87    if (roleValue() == AccessibilityRole::Caption)
     88        return AccessibilityObjectInclusion::IgnoreObject;
    8989   
    90     if (roleValue() == MarkRole)
    91         return IncludeObject;
     90    if (roleValue() == AccessibilityRole::Mark)
     91        return AccessibilityObjectInclusion::IncludeObject;
    9292
    9393    // Never expose an unknown object on the Mac. Clients of the AX API will not know what to do with it.
    9494    // Special case is when the unknown object is actually an attachment.
    95     if (roleValue() == UnknownRole && !isAttachment())
    96         return IgnoreObject;
     95    if (roleValue() == AccessibilityRole::Unknown && !isAttachment())
     96        return AccessibilityObjectInclusion::IgnoreObject;
    9797   
    98     if (roleValue() == InlineRole && !isStyleFormatGroup())
    99         return IgnoreObject;
     98    if (roleValue() == AccessibilityRole::Inline && !isStyleFormatGroup())
     99        return AccessibilityObjectInclusion::IgnoreObject;
    100100
    101101    if (RenderObject* renderer = this->renderer()) {
     
    104104            Element* element = this->element();
    105105            if (element && ancestorsOfType<HTMLFieldSetElement>(*element).first())
    106                 return IgnoreObject;
     106                return AccessibilityObjectInclusion::IgnoreObject;
    107107        }
    108108    }
    109109   
    110     return DefaultBehavior;
     110    return AccessibilityObjectInclusion::DefaultBehavior;
    111111}
    112112   
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm

    r222898 r224074  
    327327{
    328328    // Static text objects should not have a title. Its content is communicated in its AXValue.
    329     if (m_object->roleValue() == StaticTextRole)
     329    if (m_object->roleValue() == AccessibilityRole::StaticText)
    330330        return [NSString string];
    331331
     
    341341    for (const auto& text : textOrder) {
    342342        // If we have alternative text, then we should not expose a title.
    343         if (text.textSource == AlternativeText)
     343        if (text.textSource == AccessibilityTextSource::Alternative)
    344344            break;
    345345       
    346346        // Once we encounter visible text, or the text from our children that should be used foremost.
    347         if (text.textSource == VisibleText || text.textSource == ChildrenText)
     347        if (text.textSource == AccessibilityTextSource::Visible || text.textSource == AccessibilityTextSource::Children)
    348348            return text.text;
    349349       
    350350        // If there's an element that labels this object and it's not exposed, then we should use
    351351        // that text as our title.
    352         if (text.textSource == LabelByElementText && !m_object->exposesTitleUIElement())
     352        if (text.textSource == AccessibilityTextSource::LabelByElement && !m_object->exposesTitleUIElement())
    353353            return text.text;
    354354    }
     
    361361    // Static text objects should not have a description. Its content is communicated in its AXValue.
    362362    // One exception is the media control labels that have a value and a description. Those are set programatically.
    363     if (m_object->roleValue() == StaticTextRole && !m_object->isMediaControlLabel())
     363    if (m_object->roleValue() == AccessibilityRole::StaticText && !m_object->isMediaControlLabel())
    364364        return [NSString string];
    365365   
     
    370370    bool visibleTextAvailable = false;
    371371    for (const auto& text : textOrder) {
    372         if (text.textSource == AlternativeText) {
     372        if (text.textSource == AccessibilityTextSource::Alternative) {
    373373            [returnText appendString:text.text];
    374374            break;
     
    377377        switch (text.textSource) {
    378378        // These are sub-components of one element (Attachment) that are re-combined in OSX and iOS.
    379         case TitleText:
    380         case SubtitleText:
    381         case ActionText: {
     379        case AccessibilityTextSource::Title:
     380        case AccessibilityTextSource::Subtitle:
     381        case AccessibilityTextSource::Action: {
    382382            if (!text.text.length())
    383383                break;
     
    387387            break;
    388388        }
    389         case VisibleText:
    390         case ChildrenText:
    391         case LabelByElementText:
     389        case AccessibilityTextSource::Visible:
     390        case AccessibilityTextSource::Children:
     391        case AccessibilityTextSource::LabelByElement:
    392392            visibleTextAvailable = true;
    393393            break;
     
    396396        }
    397397       
    398         if (text.textSource == TitleTagText && !visibleTextAvailable) {
     398        if (text.textSource == AccessibilityTextSource::TitleTag && !visibleTextAvailable) {
    399399            [returnText appendString:text.text];
    400400            break;
     
    412412    bool descriptiveTextAvailable = false;
    413413    for (const auto& text : textOrder) {
    414         if (text.textSource == HelpText || text.textSource == SummaryText)
     414        if (text.textSource == AccessibilityTextSource::Help || text.textSource == AccessibilityTextSource::Summary)
    415415            return text.text;
    416416       
     
    418418        // But, if those ARE available, then the title tag should be used for help text instead.
    419419        switch (text.textSource) {
    420         case AlternativeText:
    421         case VisibleText:
    422         case ChildrenText:
    423         case LabelByElementText:
     420        case AccessibilityTextSource::Alternative:
     421        case AccessibilityTextSource::Visible:
     422        case AccessibilityTextSource::Children:
     423        case AccessibilityTextSource::LabelByElement:
    424424            descriptiveTextAvailable = true;
    425425            break;
     
    428428        }
    429429       
    430         if (text.textSource == TitleTagText && descriptiveTextAvailable)
     430        if (text.textSource == AccessibilityTextSource::TitleTag && descriptiveTextAvailable)
    431431            return text.text;
    432432    }
     
    499499{
    500500    switch (m_object->roleValue()) {
    501     case LandmarkBannerRole:
     501    case AccessibilityRole::LandmarkBanner:
    502502        return AXARIAContentGroupText(@"ARIALandmarkBanner");
    503     case LandmarkComplementaryRole:
     503    case AccessibilityRole::LandmarkComplementary:
    504504        return AXARIAContentGroupText(@"ARIALandmarkComplementary");
    505     case LandmarkContentInfoRole:
     505    case AccessibilityRole::LandmarkContentInfo:
    506506        return AXARIAContentGroupText(@"ARIALandmarkContentInfo");
    507     case LandmarkMainRole:
     507    case AccessibilityRole::LandmarkMain:
    508508        return AXARIAContentGroupText(@"ARIALandmarkMain");
    509     case LandmarkNavigationRole:
     509    case AccessibilityRole::LandmarkNavigation:
    510510        return AXARIAContentGroupText(@"ARIALandmarkNavigation");
    511     case LandmarkDocRegionRole:
    512     case LandmarkRegionRole:
     511    case AccessibilityRole::LandmarkDocRegion:
     512    case AccessibilityRole::LandmarkRegion:
    513513        return AXARIAContentGroupText(@"ARIALandmarkRegion");
    514     case LandmarkSearchRole:
     514    case AccessibilityRole::LandmarkSearch:
    515515        return AXARIAContentGroupText(@"ARIALandmarkSearch");
    516     case ApplicationAlertRole:
     516    case AccessibilityRole::ApplicationAlert:
    517517        return AXARIAContentGroupText(@"ARIAApplicationAlert");
    518     case ApplicationAlertDialogRole:
     518    case AccessibilityRole::ApplicationAlertDialog:
    519519        return AXARIAContentGroupText(@"ARIAApplicationAlertDialog");
    520     case ApplicationDialogRole:
     520    case AccessibilityRole::ApplicationDialog:
    521521        return AXARIAContentGroupText(@"ARIAApplicationDialog");
    522     case ApplicationLogRole:
     522    case AccessibilityRole::ApplicationLog:
    523523        return AXARIAContentGroupText(@"ARIAApplicationLog");
    524     case ApplicationMarqueeRole:
     524    case AccessibilityRole::ApplicationMarquee:
    525525        return AXARIAContentGroupText(@"ARIAApplicationMarquee");
    526     case ApplicationStatusRole:
     526    case AccessibilityRole::ApplicationStatus:
    527527        return AXARIAContentGroupText(@"ARIAApplicationStatus");
    528     case ApplicationTimerRole:
     528    case AccessibilityRole::ApplicationTimer:
    529529        return AXARIAContentGroupText(@"ARIAApplicationTimer");
    530     case DocumentRole:
     530    case AccessibilityRole::Document:
    531531        return AXARIAContentGroupText(@"ARIADocument");
    532     case DocumentArticleRole:
     532    case AccessibilityRole::DocumentArticle:
    533533        return AXARIAContentGroupText(@"ARIADocumentArticle");
    534     case DocumentMathRole:
     534    case AccessibilityRole::DocumentMath:
    535535        return AXARIAContentGroupText(@"ARIADocumentMath");
    536     case DocumentNoteRole:
     536    case AccessibilityRole::DocumentNote:
    537537        return AXARIAContentGroupText(@"ARIADocumentNote");
    538     case UserInterfaceTooltipRole:
     538    case AccessibilityRole::UserInterfaceTooltip:
    539539        return AXARIAContentGroupText(@"ARIAUserInterfaceTooltip");
    540     case TabPanelRole:
     540    case AccessibilityRole::TabPanel:
    541541        return AXARIAContentGroupText(@"ARIATabPanel");
    542     case WebApplicationRole:
     542    case AccessibilityRole::WebApplication:
    543543        return AXARIAContentGroupText(@"ARIAWebApplication");
    544544    default:
     
    653653{
    654654    const SearchKeyEntry searchKeys[] = {
    655         { NSAccessibilityAnyTypeSearchKey, AnyTypeSearchKey },
    656         { NSAccessibilityArticleSearchKey, ArticleSearchKey },
    657         { NSAccessibilityBlockquoteSameLevelSearchKey, BlockquoteSameLevelSearchKey },
    658         { NSAccessibilityBlockquoteSearchKey, BlockquoteSearchKey },
    659         { NSAccessibilityBoldFontSearchKey, BoldFontSearchKey },
    660         { NSAccessibilityButtonSearchKey, ButtonSearchKey },
    661         { NSAccessibilityCheckBoxSearchKey, CheckBoxSearchKey },
    662         { NSAccessibilityControlSearchKey, ControlSearchKey },
    663         { NSAccessibilityDifferentTypeSearchKey, DifferentTypeSearchKey },
    664         { NSAccessibilityFontChangeSearchKey, FontChangeSearchKey },
    665         { NSAccessibilityFontColorChangeSearchKey, FontColorChangeSearchKey },
    666         { NSAccessibilityFrameSearchKey, FrameSearchKey },
    667         { NSAccessibilityGraphicSearchKey, GraphicSearchKey },
    668         { NSAccessibilityHeadingLevel1SearchKey, HeadingLevel1SearchKey },
    669         { NSAccessibilityHeadingLevel2SearchKey, HeadingLevel2SearchKey },
    670         { NSAccessibilityHeadingLevel3SearchKey, HeadingLevel3SearchKey },
    671         { NSAccessibilityHeadingLevel4SearchKey, HeadingLevel4SearchKey },
    672         { NSAccessibilityHeadingLevel5SearchKey, HeadingLevel5SearchKey },
    673         { NSAccessibilityHeadingLevel6SearchKey, HeadingLevel6SearchKey },
    674         { NSAccessibilityHeadingSameLevelSearchKey, HeadingSameLevelSearchKey },
    675         { NSAccessibilityHeadingSearchKey, HeadingSearchKey },
    676         { NSAccessibilityHighlightedSearchKey, HighlightedSearchKey },
    677         { NSAccessibilityItalicFontSearchKey, ItalicFontSearchKey },
    678         { NSAccessibilityLandmarkSearchKey, LandmarkSearchKey },
    679         { NSAccessibilityLinkSearchKey, LinkSearchKey },
    680         { NSAccessibilityListSearchKey, ListSearchKey },
    681         { NSAccessibilityLiveRegionSearchKey, LiveRegionSearchKey },
    682         { NSAccessibilityMisspelledWordSearchKey, MisspelledWordSearchKey },
    683         { NSAccessibilityOutlineSearchKey, OutlineSearchKey },
    684         { NSAccessibilityPlainTextSearchKey, PlainTextSearchKey },
    685         { NSAccessibilityRadioGroupSearchKey, RadioGroupSearchKey },
    686         { NSAccessibilitySameTypeSearchKey, SameTypeSearchKey },
    687         { NSAccessibilityStaticTextSearchKey, StaticTextSearchKey },
    688         { NSAccessibilityStyleChangeSearchKey, StyleChangeSearchKey },
    689         { NSAccessibilityTableSameLevelSearchKey, TableSameLevelSearchKey },
    690         { NSAccessibilityTableSearchKey, TableSearchKey },
    691         { NSAccessibilityTextFieldSearchKey, TextFieldSearchKey },
    692         { NSAccessibilityUnderlineSearchKey, UnderlineSearchKey },
    693         { NSAccessibilityUnvisitedLinkSearchKey, UnvisitedLinkSearchKey },
    694         { NSAccessibilityVisitedLinkSearchKey, VisitedLinkSearchKey }
     655        { NSAccessibilityAnyTypeSearchKey, AccessibilitySearchKey::AnyType },
     656        { NSAccessibilityArticleSearchKey, AccessibilitySearchKey::Article },
     657        { NSAccessibilityBlockquoteSameLevelSearchKey, AccessibilitySearchKey::BlockquoteSameLevel },
     658        { NSAccessibilityBlockquoteSearchKey, AccessibilitySearchKey::Blockquote },
     659        { NSAccessibilityBoldFontSearchKey, AccessibilitySearchKey::BoldFont },
     660        { NSAccessibilityButtonSearchKey, AccessibilitySearchKey::Button },
     661        { NSAccessibilityCheckBoxSearchKey, AccessibilitySearchKey::CheckBox },
     662        { NSAccessibilityControlSearchKey, AccessibilitySearchKey::Control },
     663        { NSAccessibilityDifferentTypeSearchKey, AccessibilitySearchKey::DifferentType },
     664        { NSAccessibilityFontChangeSearchKey, AccessibilitySearchKey::FontChange },
     665        { NSAccessibilityFontColorChangeSearchKey, AccessibilitySearchKey::FontColorChange },
     666        { NSAccessibilityFrameSearchKey, AccessibilitySearchKey::Frame },
     667        { NSAccessibilityGraphicSearchKey, AccessibilitySearchKey::Graphic },
     668        { NSAccessibilityHeadingLevel1SearchKey, AccessibilitySearchKey::HeadingLevel1 },
     669        { NSAccessibilityHeadingLevel2SearchKey, AccessibilitySearchKey::HeadingLevel2 },
     670        { NSAccessibilityHeadingLevel3SearchKey, AccessibilitySearchKey::HeadingLevel3 },
     671        { NSAccessibilityHeadingLevel4SearchKey, AccessibilitySearchKey::HeadingLevel4 },
     672        { NSAccessibilityHeadingLevel5SearchKey, AccessibilitySearchKey::HeadingLevel5 },
     673        { NSAccessibilityHeadingLevel6SearchKey, AccessibilitySearchKey::HeadingLevel6 },
     674        { NSAccessibilityHeadingSameLevelSearchKey, AccessibilitySearchKey::HeadingSameLevel },
     675        { NSAccessibilityHeadingSearchKey, AccessibilitySearchKey::Heading },
     676        { NSAccessibilityHighlightedSearchKey, AccessibilitySearchKey::Highlighted },
     677        { NSAccessibilityItalicFontSearchKey, AccessibilitySearchKey::ItalicFont },
     678        { NSAccessibilityLandmarkSearchKey, AccessibilitySearchKey::Landmark },
     679        { NSAccessibilityLinkSearchKey, AccessibilitySearchKey::Link },
     680        { NSAccessibilityListSearchKey, AccessibilitySearchKey::List },
     681        { NSAccessibilityLiveRegionSearchKey, AccessibilitySearchKey::LiveRegion },
     682        { NSAccessibilityMisspelledWordSearchKey, AccessibilitySearchKey::MisspelledWord },
     683        { NSAccessibilityOutlineSearchKey, AccessibilitySearchKey::Outline },
     684        { NSAccessibilityPlainTextSearchKey, AccessibilitySearchKey::PlainText },
     685        { NSAccessibilityRadioGroupSearchKey, AccessibilitySearchKey::RadioGroup },
     686        { NSAccessibilitySameTypeSearchKey, AccessibilitySearchKey::SameType },
     687        { NSAccessibilityStaticTextSearchKey, AccessibilitySearchKey::StaticText },
     688        { NSAccessibilityStyleChangeSearchKey, AccessibilitySearchKey::StyleChange },
     689        { NSAccessibilityTableSameLevelSearchKey, AccessibilitySearchKey::TableSameLevel },
     690        { NSAccessibilityTableSearchKey, AccessibilitySearchKey::Table },
     691        { NSAccessibilityTextFieldSearchKey, AccessibilitySearchKey::TextField },
     692        { NSAccessibilityUnderlineSearchKey, AccessibilitySearchKey::Underline },
     693        { NSAccessibilityUnvisitedLinkSearchKey, AccessibilitySearchKey::UnvisitedLink },
     694        { NSAccessibilityVisitedLinkSearchKey, AccessibilitySearchKey::VisitedLink }
    695695    };
    696696   
     
    705705{
    706706    if (value.isEmpty())
    707         return AnyTypeSearchKey;
     707        return AccessibilitySearchKey::AnyType;
    708708   
    709709    static const AccessibilitySearchKeyMap* searchKeyMap = createAccessibilitySearchKeyMap();
    710710    AccessibilitySearchKey searchKey = searchKeyMap->get(value);   
    711     return searchKey ? searchKey : AnyTypeSearchKey;
     711    return static_cast<int>(searchKey) ? searchKey : AccessibilitySearchKey::AnyType;
    712712}
    713713
     
    722722    id searchKeyParameter = [parameterizedAttribute objectForKey:@"AXSearchKey"];
    723723   
    724     AccessibilitySearchDirection direction = SearchDirectionNext;
     724    AccessibilitySearchDirection direction = AccessibilitySearchDirection::Next;
    725725    if ([directionParameter isKindOfClass:[NSString class]])
    726         direction = [directionParameter isEqualToString:@"AXDirectionNext"] ? SearchDirectionNext : SearchDirectionPrevious;
     726        direction = [directionParameter isEqualToString:@"AXDirectionNext"] ? AccessibilitySearchDirection::Next : AccessibilitySearchDirection::Previous;
    727727   
    728728    bool immediateDescendantsOnly = false;
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r223048 r224074  
    495495    NSArray *searchStringsParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextSearchStrings];
    496496   
    497     AccessibilitySelectTextActivity activity = FindAndSelectActivity;
     497    AccessibilitySelectTextActivity activity = AccessibilitySelectTextActivity::FindAndSelect;
    498498    if ([activityParameter isKindOfClass:[NSString class]]) {
    499499        if ([activityParameter isEqualToString:NSAccessibilitySelectTextActivityFindAndReplace])
    500             activity = FindAndReplaceActivity;
     500            activity = AccessibilitySelectTextActivity::FindAndReplace;
    501501        else if ([activityParameter isEqualToString:kAXSelectTextActivityFindAndCapitalize])
    502             activity = FindAndCapitalize;
     502            activity = AccessibilitySelectTextActivity::FindAndCapitalize;
    503503        else if ([activityParameter isEqualToString:kAXSelectTextActivityFindAndLowercase])
    504             activity = FindAndLowercase;
     504            activity = AccessibilitySelectTextActivity::FindAndLowercase;
    505505        else if ([activityParameter isEqualToString:kAXSelectTextActivityFindAndUppercase])
    506             activity = FindAndUppercase;
    507     }
    508    
    509     AccessibilitySelectTextAmbiguityResolution ambiguityResolution = ClosestToSelectionAmbiguityResolution;
     506            activity = AccessibilitySelectTextActivity::FindAndUppercase;
     507    }
     508   
     509    AccessibilitySelectTextAmbiguityResolution ambiguityResolution = AccessibilitySelectTextAmbiguityResolution::ClosestTo;
    510510    if ([ambiguityResolutionParameter isKindOfClass:[NSString class]]) {
    511511        if ([ambiguityResolutionParameter isEqualToString:NSAccessibilitySelectTextAmbiguityResolutionClosestAfterSelection])
    512             ambiguityResolution = ClosestAfterSelectionAmbiguityResolution;
     512            ambiguityResolution = AccessibilitySelectTextAmbiguityResolution::ClosestAfter;
    513513        else if ([ambiguityResolutionParameter isEqualToString:NSAccessibilitySelectTextAmbiguityResolutionClosestBeforeSelection])
    514             ambiguityResolution = ClosestBeforeSelectionAmbiguityResolution;
     514            ambiguityResolution = AccessibilitySelectTextAmbiguityResolution::ClosestBefore;
    515515    }
    516516   
     
    11991199   
    12001200    AccessibilitySortDirection sortDirection = m_object->sortDirection();
    1201     if (sortDirection != SortDirectionNone && sortDirection != SortDirectionInvalid)
     1201    if (sortDirection != AccessibilitySortDirection::None && sortDirection != AccessibilitySortDirection::Invalid)
    12021202        [additional addObject:NSAccessibilitySortDirectionAttribute];
    12031203   
     
    16621662   
    16631663    // Only expose AXARIACurrent attribute when the element is set to be current item.
    1664     if (m_object->ariaCurrentState() != ARIACurrentFalse)
     1664    if (m_object->ariaCurrentState() != AccessibilityARIACurrentState::False)
    16651665        objectAttributes = [objectAttributes arrayByAddingObjectsFromArray:@[ NSAccessibilityARIACurrentAttribute ]];
    16661666   
     
    18501850   
    18511851    static const RoleEntry roles[] = {
    1852         { UnknownRole, NSAccessibilityUnknownRole },
    1853         { ButtonRole, NSAccessibilityButtonRole },
    1854         { RadioButtonRole, NSAccessibilityRadioButtonRole },
    1855         { CheckBoxRole, NSAccessibilityCheckBoxRole },
    1856         { SliderRole, NSAccessibilitySliderRole },
    1857         { TabGroupRole, NSAccessibilityTabGroupRole },
    1858         { TextFieldRole, NSAccessibilityTextFieldRole },
    1859         { StaticTextRole, NSAccessibilityStaticTextRole },
    1860         { TextAreaRole, NSAccessibilityTextAreaRole },
    1861         { ScrollAreaRole, NSAccessibilityScrollAreaRole },
    1862         { PopUpButtonRole, NSAccessibilityPopUpButtonRole },
    1863         { MenuButtonRole, NSAccessibilityMenuButtonRole },
    1864         { TableRole, NSAccessibilityTableRole },
    1865         { ApplicationRole, NSAccessibilityApplicationRole },
    1866         { GroupRole, NSAccessibilityGroupRole },
    1867         { TextGroupRole, NSAccessibilityGroupRole },
    1868         { RadioGroupRole, NSAccessibilityRadioGroupRole },
    1869         { ListRole, NSAccessibilityListRole },
    1870         { DirectoryRole, NSAccessibilityListRole },
    1871         { ScrollBarRole, NSAccessibilityScrollBarRole },
    1872         { ValueIndicatorRole, NSAccessibilityValueIndicatorRole },
    1873         { ImageRole, NSAccessibilityImageRole },
    1874         { MenuBarRole, NSAccessibilityMenuBarRole },
    1875         { MenuRole, NSAccessibilityMenuRole },
    1876         { MenuItemRole, NSAccessibilityMenuItemRole },
    1877         { MenuItemCheckboxRole, NSAccessibilityMenuItemRole },
    1878         { MenuItemRadioRole, NSAccessibilityMenuItemRole },
    1879         { ColumnRole, NSAccessibilityColumnRole },
    1880         { RowRole, NSAccessibilityRowRole },
    1881         { ToolbarRole, NSAccessibilityToolbarRole },
    1882         { BusyIndicatorRole, NSAccessibilityBusyIndicatorRole },
    1883         { ProgressIndicatorRole, NSAccessibilityProgressIndicatorRole },
    1884         { WindowRole, NSAccessibilityWindowRole },
    1885         { DrawerRole, NSAccessibilityDrawerRole },
    1886         { SystemWideRole, NSAccessibilitySystemWideRole },
    1887         { OutlineRole, NSAccessibilityOutlineRole },
    1888         { IncrementorRole, NSAccessibilityIncrementorRole },
    1889         { BrowserRole, NSAccessibilityBrowserRole },
    1890         { ComboBoxRole, NSAccessibilityComboBoxRole },
    1891         { SplitGroupRole, NSAccessibilitySplitGroupRole },
    1892         { SplitterRole, NSAccessibilitySplitterRole },
    1893         { ColorWellRole, NSAccessibilityColorWellRole },
    1894         { GrowAreaRole, NSAccessibilityGrowAreaRole },
    1895         { SheetRole, NSAccessibilitySheetRole },
    1896         { HelpTagRole, NSAccessibilityHelpTagRole },
    1897         { MatteRole, NSAccessibilityMatteRole },
    1898         { RulerRole, NSAccessibilityRulerRole },
    1899         { RulerMarkerRole, NSAccessibilityRulerMarkerRole },
    1900         { LinkRole, NSAccessibilityLinkRole },
    1901         { DisclosureTriangleRole, NSAccessibilityDisclosureTriangleRole },
    1902         { GridRole, NSAccessibilityTableRole },
    1903         { TreeGridRole, NSAccessibilityTableRole },
    1904         { WebCoreLinkRole, NSAccessibilityLinkRole },
    1905         { ImageMapLinkRole, NSAccessibilityLinkRole },
    1906         { ImageMapRole, @"AXImageMap" },
    1907         { ListMarkerRole, @"AXListMarker" },
    1908         { WebAreaRole, @"AXWebArea" },
    1909         { HeadingRole, @"AXHeading" },
    1910         { ListBoxRole, NSAccessibilityListRole },
    1911         { ListBoxOptionRole, NSAccessibilityStaticTextRole },
    1912         { CellRole, NSAccessibilityCellRole },
    1913         { GridCellRole, NSAccessibilityCellRole },
    1914         { TableHeaderContainerRole, NSAccessibilityGroupRole },
    1915         { ColumnHeaderRole, NSAccessibilityCellRole },
    1916         { RowHeaderRole, NSAccessibilityCellRole },
    1917         { DefinitionRole, NSAccessibilityGroupRole },
    1918         { DescriptionListDetailRole, NSAccessibilityGroupRole },
    1919         { DescriptionListTermRole, NSAccessibilityGroupRole },
    1920         { TermRole, NSAccessibilityGroupRole },
    1921         { DescriptionListRole, NSAccessibilityListRole },
    1922         { SliderThumbRole, NSAccessibilityValueIndicatorRole },
    1923         { WebApplicationRole, NSAccessibilityGroupRole },
    1924         { LandmarkBannerRole, NSAccessibilityGroupRole },
    1925         { LandmarkComplementaryRole, NSAccessibilityGroupRole },
    1926         { LandmarkDocRegionRole, NSAccessibilityGroupRole },
    1927         { LandmarkContentInfoRole, NSAccessibilityGroupRole },
    1928         { LandmarkMainRole, NSAccessibilityGroupRole },
    1929         { LandmarkNavigationRole, NSAccessibilityGroupRole },
    1930         { LandmarkRegionRole, NSAccessibilityGroupRole },
    1931         { LandmarkSearchRole, NSAccessibilityGroupRole },
    1932         { ApplicationAlertRole, NSAccessibilityGroupRole },
    1933         { ApplicationAlertDialogRole, NSAccessibilityGroupRole },
    1934         { ApplicationDialogRole, NSAccessibilityGroupRole },
    1935         { ApplicationGroupRole, NSAccessibilityGroupRole },
    1936         { ApplicationTextGroupRole, NSAccessibilityGroupRole },
    1937         { ApplicationLogRole, NSAccessibilityGroupRole },
    1938         { ApplicationMarqueeRole, NSAccessibilityGroupRole },
    1939         { ApplicationStatusRole, NSAccessibilityGroupRole },
    1940         { ApplicationTimerRole, NSAccessibilityGroupRole },
    1941         { DocumentRole, NSAccessibilityGroupRole },
    1942         { DocumentArticleRole, NSAccessibilityGroupRole },
    1943         { DocumentMathRole, NSAccessibilityGroupRole },
    1944         { DocumentNoteRole, NSAccessibilityGroupRole },
    1945         { UserInterfaceTooltipRole, NSAccessibilityGroupRole },
    1946         { TabRole, NSAccessibilityRadioButtonRole },
    1947         { TabListRole, NSAccessibilityTabGroupRole },
    1948         { TabPanelRole, NSAccessibilityGroupRole },
    1949         { TreeRole, NSAccessibilityOutlineRole },
    1950         { TreeItemRole, NSAccessibilityRowRole },
    1951         { ListItemRole, NSAccessibilityGroupRole },
    1952         { ParagraphRole, NSAccessibilityGroupRole },
    1953         { LabelRole, NSAccessibilityGroupRole },
    1954         { DivRole, NSAccessibilityGroupRole },
    1955         { FormRole, NSAccessibilityGroupRole },
    1956         { SpinButtonRole, NSAccessibilityIncrementorRole },
    1957         { FooterRole, NSAccessibilityGroupRole },
    1958         { ToggleButtonRole, NSAccessibilityCheckBoxRole },
    1959         { CanvasRole, NSAccessibilityImageRole },
    1960         { SVGRootRole, NSAccessibilityGroupRole },
    1961         { LegendRole, NSAccessibilityGroupRole },
    1962         { MathElementRole, NSAccessibilityGroupRole },
    1963         { AudioRole, NSAccessibilityGroupRole },
    1964         { VideoRole, NSAccessibilityGroupRole },
    1965         { HorizontalRuleRole, NSAccessibilitySplitterRole },
    1966         { BlockquoteRole, NSAccessibilityGroupRole },
    1967         { SwitchRole, NSAccessibilityCheckBoxRole },
    1968         { SearchFieldRole, NSAccessibilityTextFieldRole },
    1969         { PreRole, NSAccessibilityGroupRole },
    1970         { RubyBaseRole, NSAccessibilityGroupRole },
    1971         { RubyBlockRole, NSAccessibilityGroupRole },
    1972         { RubyInlineRole, NSAccessibilityGroupRole },
    1973         { RubyRunRole, NSAccessibilityGroupRole },
    1974         { RubyTextRole, NSAccessibilityGroupRole },
    1975         { DetailsRole, NSAccessibilityGroupRole },
    1976         { SummaryRole, NSAccessibilityButtonRole },
    1977         { SVGTextPathRole, NSAccessibilityGroupRole },
    1978         { SVGTextRole, NSAccessibilityGroupRole },
    1979         { SVGTSpanRole, NSAccessibilityGroupRole },
    1980         { InlineRole, NSAccessibilityGroupRole },
    1981         { MarkRole, NSAccessibilityGroupRole },
    1982         { TimeRole, NSAccessibilityGroupRole },
    1983         { FeedRole, NSAccessibilityGroupRole },
    1984         { FigureRole, NSAccessibilityGroupRole },
    1985         { FootnoteRole, NSAccessibilityGroupRole },
     1852        { AccessibilityRole::Unknown, NSAccessibilityUnknownRole },
     1853        { AccessibilityRole::Button, NSAccessibilityButtonRole },
     1854        { AccessibilityRole::RadioButton, NSAccessibilityRadioButtonRole },
     1855        { AccessibilityRole::CheckBox, NSAccessibilityCheckBoxRole },
     1856        { AccessibilityRole::Slider, NSAccessibilitySliderRole },
     1857        { AccessibilityRole::TabGroup, NSAccessibilityTabGroupRole },
     1858        { AccessibilityRole::TextField, NSAccessibilityTextFieldRole },
     1859        { AccessibilityRole::StaticText, NSAccessibilityStaticTextRole },
     1860        { AccessibilityRole::TextArea, NSAccessibilityTextAreaRole },
     1861        { AccessibilityRole::ScrollArea, NSAccessibilityScrollAreaRole },
     1862        { AccessibilityRole::PopUpButton, NSAccessibilityPopUpButtonRole },
     1863        { AccessibilityRole::MenuButton, NSAccessibilityMenuButtonRole },
     1864        { AccessibilityRole::Table, NSAccessibilityTableRole },
     1865        { AccessibilityRole::Application, NSAccessibilityApplicationRole },
     1866        { AccessibilityRole::Group, NSAccessibilityGroupRole },
     1867        { AccessibilityRole::TextGroup, NSAccessibilityGroupRole },
     1868        { AccessibilityRole::RadioGroup, NSAccessibilityRadioGroupRole },
     1869        { AccessibilityRole::List, NSAccessibilityListRole },
     1870        { AccessibilityRole::Directory, NSAccessibilityListRole },
     1871        { AccessibilityRole::ScrollBar, NSAccessibilityScrollBarRole },
     1872        { AccessibilityRole::ValueIndicator, NSAccessibilityValueIndicatorRole },
     1873        { AccessibilityRole::Image, NSAccessibilityImageRole },
     1874        { AccessibilityRole::MenuBar, NSAccessibilityMenuBarRole },
     1875        { AccessibilityRole::Menu, NSAccessibilityMenuRole },
     1876        { AccessibilityRole::MenuItem, NSAccessibilityMenuItemRole },
     1877        { AccessibilityRole::MenuItemCheckbox, NSAccessibilityMenuItemRole },
     1878        { AccessibilityRole::MenuItemRadio, NSAccessibilityMenuItemRole },
     1879        { AccessibilityRole::Column, NSAccessibilityColumnRole },
     1880        { AccessibilityRole::Row, NSAccessibilityRowRole },
     1881        { AccessibilityRole::Toolbar, NSAccessibilityToolbarRole },
     1882        { AccessibilityRole::BusyIndicator, NSAccessibilityBusyIndicatorRole },
     1883        { AccessibilityRole::ProgressIndicator, NSAccessibilityProgressIndicatorRole },
     1884        { AccessibilityRole::Window, NSAccessibilityWindowRole },
     1885        { AccessibilityRole::Drawer, NSAccessibilityDrawerRole },
     1886        { AccessibilityRole::SystemWide, NSAccessibilitySystemWideRole },
     1887        { AccessibilityRole::Outline, NSAccessibilityOutlineRole },
     1888        { AccessibilityRole::Incrementor, NSAccessibilityIncrementorRole },
     1889        { AccessibilityRole::Browser, NSAccessibilityBrowserRole },
     1890        { AccessibilityRole::ComboBox, NSAccessibilityComboBoxRole },
     1891        { AccessibilityRole::SplitGroup, NSAccessibilitySplitGroupRole },
     1892        { AccessibilityRole::Splitter, NSAccessibilitySplitterRole },
     1893        { AccessibilityRole::ColorWell, NSAccessibilityColorWellRole },
     1894        { AccessibilityRole::GrowArea, NSAccessibilityGrowAreaRole },
     1895        { AccessibilityRole::Sheet, NSAccessibilitySheetRole },
     1896        { AccessibilityRole::HelpTag, NSAccessibilityHelpTagRole },
     1897        { AccessibilityRole::Matte, NSAccessibilityMatteRole },
     1898        { AccessibilityRole::Ruler, NSAccessibilityRulerRole },
     1899        { AccessibilityRole::RulerMarker, NSAccessibilityRulerMarkerRole },
     1900        { AccessibilityRole::Link, NSAccessibilityLinkRole },
     1901        { AccessibilityRole::DisclosureTriangle, NSAccessibilityDisclosureTriangleRole },
     1902        { AccessibilityRole::Grid, NSAccessibilityTableRole },
     1903        { AccessibilityRole::TreeGrid, NSAccessibilityTableRole },
     1904        { AccessibilityRole::WebCoreLink, NSAccessibilityLinkRole },
     1905        { AccessibilityRole::ImageMapLink, NSAccessibilityLinkRole },
     1906        { AccessibilityRole::ImageMap, @"AXImageMap" },
     1907        { AccessibilityRole::ListMarker, @"AXListMarker" },
     1908        { AccessibilityRole::WebArea, @"AXWebArea" },
     1909        { AccessibilityRole::Heading, @"AXHeading" },
     1910        { AccessibilityRole::ListBox, NSAccessibilityListRole },
     1911        { AccessibilityRole::ListBoxOption, NSAccessibilityStaticTextRole },
     1912        { AccessibilityRole::Cell, NSAccessibilityCellRole },
     1913        { AccessibilityRole::GridCell, NSAccessibilityCellRole },
     1914        { AccessibilityRole::TableHeaderContainer, NSAccessibilityGroupRole },
     1915        { AccessibilityRole::ColumnHeader, NSAccessibilityCellRole },
     1916        { AccessibilityRole::RowHeader, NSAccessibilityCellRole },
     1917        { AccessibilityRole::Definition, NSAccessibilityGroupRole },
     1918        { AccessibilityRole::DescriptionListDetail, NSAccessibilityGroupRole },
     1919        { AccessibilityRole::DescriptionListTerm, NSAccessibilityGroupRole },
     1920        { AccessibilityRole::Term, NSAccessibilityGroupRole },
     1921        { AccessibilityRole::DescriptionList, NSAccessibilityListRole },
     1922        { AccessibilityRole::SliderThumb, NSAccessibilityValueIndicatorRole },
     1923        { AccessibilityRole::WebApplication, NSAccessibilityGroupRole },
     1924        { AccessibilityRole::LandmarkBanner, NSAccessibilityGroupRole },
     1925        { AccessibilityRole::LandmarkComplementary, NSAccessibilityGroupRole },
     1926        { AccessibilityRole::LandmarkDocRegion, NSAccessibilityGroupRole },
     1927        { AccessibilityRole::LandmarkContentInfo, NSAccessibilityGroupRole },
     1928        { AccessibilityRole::LandmarkMain, NSAccessibilityGroupRole },
     1929        { AccessibilityRole::LandmarkNavigation, NSAccessibilityGroupRole },
     1930        { AccessibilityRole::LandmarkRegion, NSAccessibilityGroupRole },
     1931        { AccessibilityRole::LandmarkSearch, NSAccessibilityGroupRole },
     1932        { AccessibilityRole::ApplicationAlert, NSAccessibilityGroupRole },
     1933        { AccessibilityRole::ApplicationAlertDialog, NSAccessibilityGroupRole },
     1934        { AccessibilityRole::ApplicationDialog, NSAccessibilityGroupRole },
     1935        { AccessibilityRole::ApplicationGroup, NSAccessibilityGroupRole },
     1936        { AccessibilityRole::ApplicationTextGroup, NSAccessibilityGroupRole },
     1937        { AccessibilityRole::ApplicationLog, NSAccessibilityGroupRole },
     1938        { AccessibilityRole::ApplicationMarquee, NSAccessibilityGroupRole },
     1939        { AccessibilityRole::ApplicationStatus, NSAccessibilityGroupRole },
     1940        { AccessibilityRole::ApplicationTimer, NSAccessibilityGroupRole },
     1941        { AccessibilityRole::Document, NSAccessibilityGroupRole },
     1942        { AccessibilityRole::DocumentArticle, NSAccessibilityGroupRole },
     1943        { AccessibilityRole::DocumentMath, NSAccessibilityGroupRole },
     1944        { AccessibilityRole::DocumentNote, NSAccessibilityGroupRole },
     1945        { AccessibilityRole::UserInterfaceTooltip, NSAccessibilityGroupRole },
     1946        { AccessibilityRole::Tab, NSAccessibilityRadioButtonRole },
     1947        { AccessibilityRole::TabList, NSAccessibilityTabGroupRole },
     1948        { AccessibilityRole::TabPanel, NSAccessibilityGroupRole },
     1949        { AccessibilityRole::Tree, NSAccessibilityOutlineRole },
     1950        { AccessibilityRole::TreeItem, NSAccessibilityRowRole },
     1951        { AccessibilityRole::ListItem, NSAccessibilityGroupRole },
     1952        { AccessibilityRole::Paragraph, NSAccessibilityGroupRole },
     1953        { AccessibilityRole::Label, NSAccessibilityGroupRole },
     1954        { AccessibilityRole::Div, NSAccessibilityGroupRole },
     1955        { AccessibilityRole::Form, NSAccessibilityGroupRole },
     1956        { AccessibilityRole::SpinButton, NSAccessibilityIncrementorRole },
     1957        { AccessibilityRole::Footer, NSAccessibilityGroupRole },
     1958        { AccessibilityRole::ToggleButton, NSAccessibilityCheckBoxRole },
     1959        { AccessibilityRole::Canvas, NSAccessibilityImageRole },
     1960        { AccessibilityRole::SVGRoot, NSAccessibilityGroupRole },
     1961        { AccessibilityRole::Legend, NSAccessibilityGroupRole },
     1962        { AccessibilityRole::MathElement, NSAccessibilityGroupRole },
     1963        { AccessibilityRole::Audio, NSAccessibilityGroupRole },
     1964        { AccessibilityRole::Video, NSAccessibilityGroupRole },
     1965        { AccessibilityRole::HorizontalRule, NSAccessibilitySplitterRole },
     1966        { AccessibilityRole::Blockquote, NSAccessibilityGroupRole },
     1967        { AccessibilityRole::Switch, NSAccessibilityCheckBoxRole },
     1968        { AccessibilityRole::SearchField, NSAccessibilityTextFieldRole },
     1969        { AccessibilityRole::Pre, NSAccessibilityGroupRole },
     1970        { AccessibilityRole::RubyBase, NSAccessibilityGroupRole },
     1971        { AccessibilityRole::RubyBlock, NSAccessibilityGroupRole },
     1972        { AccessibilityRole::RubyInline, NSAccessibilityGroupRole },
     1973        { AccessibilityRole::RubyRun, NSAccessibilityGroupRole },
     1974        { AccessibilityRole::RubyText, NSAccessibilityGroupRole },
     1975        { AccessibilityRole::Details, NSAccessibilityGroupRole },
     1976        { AccessibilityRole::Summary, NSAccessibilityButtonRole },
     1977        { AccessibilityRole::SVGTextPath, NSAccessibilityGroupRole },
     1978        { AccessibilityRole::SVGText, NSAccessibilityGroupRole },
     1979        { AccessibilityRole::SVGTSpan, NSAccessibilityGroupRole },
     1980        { AccessibilityRole::Inline, NSAccessibilityGroupRole },
     1981        { AccessibilityRole::Mark, NSAccessibilityGroupRole },
     1982        { AccessibilityRole::Time, NSAccessibilityGroupRole },
     1983        { AccessibilityRole::Feed, NSAccessibilityGroupRole },
     1984        { AccessibilityRole::Figure, NSAccessibilityGroupRole },
     1985        { AccessibilityRole::Footnote, NSAccessibilityGroupRole },
    19861986    };
    19871987    AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
     
    19891989    const unsigned numRoles = sizeof(roles) / sizeof(roles[0]);
    19901990    for (unsigned i = 0; i < numRoles; ++i)
    1991         roleMap.set(roles[i].value, roles[i].string);
     1991        roleMap.set(static_cast<int>(roles[i].value), roles[i].string);
    19921992    return roleMap;
    19931993}
     
    19951995static NSString* roleValueToNSString(AccessibilityRole value)
    19961996{
    1997     ASSERT(value);
     1997    ASSERT(static_cast<int>(value));
    19981998    static const AccessibilityRoleMap& roleMap = createAccessibilityRoleMap();
    1999     return roleMap.get(value);
     1999    return roleMap.get(static_cast<int>(value));
    20002000}
    20012001
     
    20092009    AccessibilityRole role = m_object->roleValue();
    20102010
    2011     if (role == LabelRole && is<AccessibilityLabel>(*m_object) && downcast<AccessibilityLabel>(*m_object).containsOnlyStaticText())
    2012         role = StaticTextRole;
     2011    if (role == AccessibilityRole::Label && is<AccessibilityLabel>(*m_object) && downcast<AccessibilityLabel>(*m_object).containsOnlyStaticText())
     2012        role = AccessibilityRole::StaticText;
    20132013
    20142014    // The mfenced element creates anonymous RenderMathMLOperators with no RenderText
    20152015    // descendants. Because these anonymous renderers are the only accessible objects
    2016     // containing the operator, assign StaticTextRole.
     2016    // containing the operator, assign AccessibilityRole::StaticText.
    20172017    if (m_object->isAnonymousMathOperator())
    2018         role = StaticTextRole;
    2019 
    2020     if (role == CanvasRole && m_object->canvasHasFallbackContent())
    2021         role = GroupRole;
     2018        role = AccessibilityRole::StaticText;
     2019
     2020    if (role == AccessibilityRole::Canvas && m_object->canvasHasFallbackContent())
     2021        role = AccessibilityRole::Group;
    20222022    NSString* string = roleValueToNSString(role);
    20232023    if (string != nil)
     
    20422042   
    20432043    AccessibilityRole role = m_object->roleValue();
    2044     if (role == HorizontalRuleRole)
     2044    if (role == AccessibilityRole::HorizontalRule)
    20452045        return NSAccessibilityContentSeparatorSubrole;
    2046     if (role == ToggleButtonRole)
     2046    if (role == AccessibilityRole::ToggleButton)
    20472047        return NSAccessibilityToggleSubrole;
    20482048   
     
    20742074    // ARIA content subroles.
    20752075    switch (role) {
    2076         case LandmarkBannerRole:
    2077             return @"AXLandmarkBanner";
    2078         case LandmarkComplementaryRole:
    2079             return @"AXLandmarkComplementary";
    2080             // Footer roles should appear as content info types.
    2081         case FooterRole:
    2082         case LandmarkContentInfoRole:
    2083             return @"AXLandmarkContentInfo";
    2084         case LandmarkMainRole:
    2085             return @"AXLandmarkMain";
    2086         case LandmarkNavigationRole:
    2087             return @"AXLandmarkNavigation";
    2088         case LandmarkDocRegionRole:
    2089         case LandmarkRegionRole:
    2090             return @"AXLandmarkRegion";
    2091         case LandmarkSearchRole:
    2092             return @"AXLandmarkSearch";
    2093         case ApplicationAlertRole:
    2094             return @"AXApplicationAlert";
    2095         case ApplicationAlertDialogRole:
    2096             return @"AXApplicationAlertDialog";
    2097         case ApplicationDialogRole:
    2098             return @"AXApplicationDialog";
    2099         case ApplicationGroupRole:
    2100         case ApplicationTextGroupRole:
    2101         case FeedRole:
    2102         case FootnoteRole:
    2103             return @"AXApplicationGroup";
    2104         case ApplicationLogRole:
    2105             return @"AXApplicationLog";
    2106         case ApplicationMarqueeRole:
    2107             return @"AXApplicationMarquee";
    2108         case ApplicationStatusRole:
    2109             return @"AXApplicationStatus";
    2110         case ApplicationTimerRole:
    2111             return @"AXApplicationTimer";
    2112         case DocumentRole:
    2113             return @"AXDocument";
    2114         case DocumentArticleRole:
    2115             return @"AXDocumentArticle";
    2116         case DocumentMathRole:
    2117             return @"AXDocumentMath";
    2118         case DocumentNoteRole:
    2119             return @"AXDocumentNote";
    2120         case UserInterfaceTooltipRole:
    2121             return @"AXUserInterfaceTooltip";
    2122         case TabPanelRole:
    2123             return @"AXTabPanel";
    2124         case DefinitionRole:
    2125             return @"AXDefinition";
    2126         case DescriptionListTermRole:
    2127         case TermRole:
    2128             return @"AXTerm";
    2129         case DescriptionListDetailRole:
    2130             return @"AXDescription";
    2131         case WebApplicationRole:
    2132             return @"AXWebApplication";
    2133             // Default doesn't return anything, so roles defined below can be chosen.
    2134         default:
    2135             break;
    2136     }
    2137    
    2138     if (role == MathElementRole) {
     2076    case AccessibilityRole::LandmarkBanner:
     2077        return @"AXLandmarkBanner";
     2078    case AccessibilityRole::LandmarkComplementary:
     2079        return @"AXLandmarkComplementary";
     2080    // Footer roles should appear as content info types.
     2081    case AccessibilityRole::Footer:
     2082    case AccessibilityRole::LandmarkContentInfo:
     2083        return @"AXLandmarkContentInfo";
     2084    case AccessibilityRole::LandmarkMain:
     2085        return @"AXLandmarkMain";
     2086    case AccessibilityRole::LandmarkNavigation:
     2087        return @"AXLandmarkNavigation";
     2088    case AccessibilityRole::LandmarkDocRegion:
     2089    case AccessibilityRole::LandmarkRegion:
     2090        return @"AXLandmarkRegion";
     2091    case AccessibilityRole::LandmarkSearch:
     2092        return @"AXLandmarkSearch";
     2093    case AccessibilityRole::ApplicationAlert:
     2094        return @"AXApplicationAlert";
     2095    case AccessibilityRole::ApplicationAlertDialog:
     2096        return @"AXApplicationAlertDialog";
     2097    case AccessibilityRole::ApplicationDialog:
     2098        return @"AXApplicationDialog";
     2099    case AccessibilityRole::ApplicationGroup:
     2100    case AccessibilityRole::ApplicationTextGroup:
     2101    case AccessibilityRole::Feed:
     2102    case AccessibilityRole::Footnote:
     2103        return @"AXApplicationGroup";
     2104    case AccessibilityRole::ApplicationLog:
     2105        return @"AXApplicationLog";
     2106    case AccessibilityRole::ApplicationMarquee:
     2107        return @"AXApplicationMarquee";
     2108    case AccessibilityRole::ApplicationStatus:
     2109        return @"AXApplicationStatus";
     2110    case AccessibilityRole::ApplicationTimer:
     2111        return @"AXApplicationTimer";
     2112    case AccessibilityRole::Document:
     2113        return @"AXDocument";
     2114    case AccessibilityRole::DocumentArticle:
     2115        return @"AXDocumentArticle";
     2116    case AccessibilityRole::DocumentMath:
     2117        return @"AXDocumentMath";
     2118    case AccessibilityRole::DocumentNote:
     2119        return @"AXDocumentNote";
     2120    case AccessibilityRole::UserInterfaceTooltip:
     2121        return @"AXUserInterfaceTooltip";
     2122    case AccessibilityRole::TabPanel:
     2123        return @"AXTabPanel";
     2124    case AccessibilityRole::Definition:
     2125        return @"AXDefinition";
     2126    case AccessibilityRole::DescriptionListTerm:
     2127    case AccessibilityRole::Term:
     2128        return @"AXTerm";
     2129    case AccessibilityRole::DescriptionListDetail:
     2130        return @"AXDescription";
     2131    case AccessibilityRole::WebApplication:
     2132        return @"AXWebApplication";
     2133        // Default doesn't return anything, so roles defined below can be chosen.
     2134    default:
     2135        break;
     2136    }
     2137   
     2138    if (role == AccessibilityRole::MathElement) {
    21392139        if (m_object->isMathFraction())
    21402140            return @"AXMathFraction";
     
    21732173    }
    21742174   
    2175     if (role == VideoRole)
     2175    if (role == AccessibilityRole::Video)
    21762176        return @"AXVideo";
    2177     if (role == AudioRole)
     2177    if (role == AccessibilityRole::Audio)
    21782178        return @"AXAudio";
    2179     if (role == DetailsRole)
     2179    if (role == AccessibilityRole::Details)
    21802180        return @"AXDetails";
    2181     if (role == SummaryRole)
     2181    if (role == AccessibilityRole::Summary)
    21822182        return @"AXSummary";
    2183     if (role == TimeRole)
     2183    if (role == AccessibilityRole::Time)
    21842184        return @"AXTimeGroup";
    21852185
     
    22172217    // Ruby subroles
    22182218    switch (role) {
    2219     case RubyBaseRole:
     2219    case AccessibilityRole::RubyBase:
    22202220        return NSAccessibilityRubyBaseSubrole;
    2221     case RubyBlockRole:
     2221    case AccessibilityRole::RubyBlock:
    22222222        return NSAccessibilityRubyBlockSubrole;
    2223     case RubyInlineRole:
     2223    case AccessibilityRole::RubyInline:
    22242224        return NSAccessibilityRubyInlineSubrole;
    2225     case RubyRunRole:
     2225    case AccessibilityRole::RubyRun:
    22262226        return NSAccessibilityRubyRunSubrole;
    2227     case RubyTextRole:
     2227    case AccessibilityRole::RubyText:
    22282228        return NSAccessibilityRubyTextSubrole;
    22292229    default:
     
    22632263       
    22642264        switch (m_object->roleValue()) {
    2265         case AudioRole:
     2265        case AccessibilityRole::Audio:
    22662266            return localizedMediaControlElementString("AudioElement");
    2267         case DefinitionRole:
     2267        case AccessibilityRole::Definition:
    22682268            return AXDefinitionText();
    2269         case DescriptionListTermRole:
    2270         case TermRole:
     2269        case AccessibilityRole::DescriptionListTerm:
     2270        case AccessibilityRole::Term:
    22712271            return AXDescriptionListTermText();
    2272         case DescriptionListDetailRole:
     2272        case AccessibilityRole::DescriptionListDetail:
    22732273            return AXDescriptionListDetailText();
    2274         case DetailsRole:
     2274        case AccessibilityRole::Details:
    22752275            return AXDetailsText();
    2276         case FeedRole:
     2276        case AccessibilityRole::Feed:
    22772277            return AXFeedText();
    2278         case FigureRole:
     2278        case AccessibilityRole::Figure:
    22792279            return AXFigureText();
    2280         case FooterRole:
     2280        case AccessibilityRole::Footer:
    22812281            return AXFooterRoleDescriptionText();
    2282         case MarkRole:
     2282        case AccessibilityRole::Mark:
    22832283            return AXMarkText();
    2284         case VideoRole:
     2284        case AccessibilityRole::Video:
    22852285            return localizedMediaControlElementString("VideoElement");
    22862286        default:
     
    23422342    }
    23432343   
    2344     if (m_object->roleValue() == HorizontalRuleRole)
     2344    if (m_object->roleValue() == AccessibilityRole::HorizontalRule)
    23452345        return AXHorizontalRuleDescriptionText();
    23462346   
     
    26192619        if (m_object->supportsRangeValue())
    26202620            return [NSNumber numberWithFloat:m_object->valueForRange()];
    2621         if (m_object->roleValue() == SliderThumbRole)
     2621        if (m_object->roleValue() == AccessibilityRole::SliderThumb)
    26222622            return [NSNumber numberWithFloat:m_object->parentObject()->valueForRange()];
    26232623        if (m_object->isHeading())
     
    26262626        if (m_object->isCheckboxOrRadio() || m_object->isMenuItem() || m_object->isSwitch() || m_object->isToggleButton()) {
    26272627            switch (m_object->checkboxOrRadioValue()) {
    2628                 case ButtonStateOff:
    2629                     return [NSNumber numberWithInt:0];
    2630                 case ButtonStateOn:
    2631                     return [NSNumber numberWithInt:1];
    2632                 case ButtonStateMixed:
    2633                     return [NSNumber numberWithInt:2];
     2628            case AccessibilityButtonState::Off:
     2629                return [NSNumber numberWithInt:0];
     2630            case AccessibilityButtonState::On:
     2631                return [NSNumber numberWithInt:1];
     2632            case AccessibilityButtonState::Mixed:
     2633                return [NSNumber numberWithInt:2];
    26342634            }
    26352635        }
     
    26692669    if ([attributeName isEqualToString: NSAccessibilityMinValueAttribute]) {
    26702670        // Indeterminate progress indicator should return 0.
    2671         if (m_object->ariaRoleAttribute() == ProgressIndicatorRole && !m_object->hasAttribute(aria_valuenowAttr))
     2671        if (m_object->ariaRoleAttribute() == AccessibilityRole::ProgressIndicator && !m_object->hasAttribute(aria_valuenowAttr))
    26722672            return @0;
    26732673        return [NSNumber numberWithFloat:m_object->minValueForRange()];
     
    26762676    if ([attributeName isEqualToString: NSAccessibilityMaxValueAttribute]) {
    26772677        // Indeterminate progress indicator should return 0.
    2678         if (m_object->ariaRoleAttribute() == ProgressIndicatorRole && !m_object->hasAttribute(aria_valuenowAttr))
     2678        if (m_object->ariaRoleAttribute() == AccessibilityRole::ProgressIndicator && !m_object->hasAttribute(aria_valuenowAttr))
    26792679            return @0;
    26802680        return [NSNumber numberWithFloat:m_object->maxValueForRange()];
     
    30063006    if ([attributeName isEqualToString:NSAccessibilityOrientationAttribute]) {
    30073007        AccessibilityOrientation elementOrientation = m_object->orientation();
    3008         if (elementOrientation == AccessibilityOrientationVertical)
     3008        if (elementOrientation == AccessibilityOrientation::Vertical)
    30093009            return NSAccessibilityVerticalOrientationValue;
    3010         if (elementOrientation == AccessibilityOrientationHorizontal)
     3010        if (elementOrientation == AccessibilityOrientation::Horizontal)
    30113011            return NSAccessibilityHorizontalOrientationValue;
    3012         if (elementOrientation == AccessibilityOrientationUndefined)
     3012        if (elementOrientation == AccessibilityOrientation::Undefined)
    30133013            return NSAccessibilityUnknownOrientationValue;
    30143014        return nil;
     
    30163016   
    30173017    if ([attributeName isEqualToString:NSAccessibilityHorizontalScrollBarAttribute]) {
    3018         AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientationHorizontal);
     3018        AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation::Horizontal);
    30193019        if (scrollBar)
    30203020            return scrollBar->wrapper();
     
    30223022    }
    30233023    if ([attributeName isEqualToString:NSAccessibilityVerticalScrollBarAttribute]) {
    3024         AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientationVertical);
     3024        AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation::Vertical);
    30253025        if (scrollBar)
    30263026            return scrollBar->wrapper();
     
    30303030    if ([attributeName isEqualToString:NSAccessibilitySortDirectionAttribute]) {
    30313031        switch (m_object->sortDirection()) {
    3032             case SortDirectionAscending:
    3033                 return NSAccessibilityAscendingSortDirectionValue;
    3034             case SortDirectionDescending:
    3035                 return NSAccessibilityDescendingSortDirectionValue;
    3036             default:
    3037                 return NSAccessibilityUnknownSortDirectionValue;
     3032        case AccessibilitySortDirection::Ascending:
     3033            return NSAccessibilityAscendingSortDirectionValue;
     3034        case AccessibilitySortDirection::Descending:
     3035            return NSAccessibilityDescendingSortDirectionValue;
     3036        default:
     3037            return NSAccessibilityUnknownSortDirectionValue;
    30383038        }
    30393039    }
     
    34823482- (void)accessibilityPerformShowMenuAction
    34833483{
    3484     if (m_object->roleValue() == ComboBoxRole)
     3484    if (m_object->roleValue() == AccessibilityRole::ComboBox)
    34853485        m_object->setIsExpanded(true);
    34863486    else {
     
    36303630        m_object->setSelected([number boolValue]);
    36313631    } else if ([attributeName isEqualToString: NSAccessibilitySelectedChildrenAttribute]) {
    3632         if (!array || m_object->roleValue() != ListBoxRole)
     3632        if (!array)
     3633            return;
     3634        if (m_object->roleValue() != AccessibilityRole::ListBox)
    36333635            return;
    36343636        AccessibilityObject::AccessibilityChildrenVector selectedChildren;
  • trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp

    r224002 r224074  
    17291729            supportsChecked = axObject->supportsChecked();
    17301730            if (supportsChecked) {
    1731                 int checkValue = axObject->checkboxOrRadioValue(); // Element using aria-checked.
    1732                 if (checkValue == 1)
     1731                AccessibilityButtonState checkValue = axObject->checkboxOrRadioValue(); // Element using aria-checked.
     1732                if (checkValue == AccessibilityButtonState::On)
    17331733                    checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::True;
    1734                 else if (checkValue == 2)
     1734                else if (checkValue == AccessibilityButtonState::Mixed)
    17351735                    checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::Mixed;
    17361736                else if (axObject->isChecked()) // Native checkbox.
     
    17491749           
    17501750            switch (axObject->ariaCurrentState()) {
    1751             case ARIACurrentFalse:
     1751            case AccessibilityARIACurrentState::False:
    17521752                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::False;
    17531753                break;
    1754             case ARIACurrentPage:
     1754            case AccessibilityARIACurrentState::Page:
    17551755                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Page;
    17561756                break;
    1757             case ARIACurrentStep:
     1757            case AccessibilityARIACurrentState::Step:
    17581758                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Step;
    17591759                break;
    1760             case ARIACurrentLocation:
     1760            case AccessibilityARIACurrentState::Location:
    17611761                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Location;
    17621762                break;
    1763             case ARIACurrentDate:
     1763            case AccessibilityARIACurrentState::Date:
    17641764                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Date;
    17651765                break;
    1766             case ARIACurrentTime:
     1766            case AccessibilityARIACurrentState::Time:
    17671767                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Time;
    17681768                break;
    1769             default:
    1770             case ARIACurrentTrue:
     1769            case AccessibilityARIACurrentState::True:
    17711770                currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::True;
    17721771                break;
Note: See TracChangeset for help on using the changeset viewer.