Changeset 224074 in webkit
- Timestamp:
- Oct 26, 2017, 5:37:06 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 57 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r224070 r224074 1 2017-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 1 310 2017-10-26 Youenn Fablet <youenn@apple.com> 2 311 -
trunk/Source/WebCore/accessibility/AXObjectCache.cpp
r222887 r224074 121 121 AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID id) const 122 122 { 123 HashMap<AXID, CachedAXObjectAttributes>::const_iteratorit = 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; 125 125 } 126 126 … … 204 204 205 205 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); 208 208 removeAXID(object.get()); 209 209 } … … 648 648 // will be filled in... 649 649 switch (role) { 650 case ListBoxOptionRole:650 case AccessibilityRole::ListBoxOption: 651 651 obj = AccessibilityListBoxOption::create(); 652 652 break; 653 case ImageMapLinkRole:653 case AccessibilityRole::ImageMapLink: 654 654 obj = AccessibilityImageMapLink::create(); 655 655 break; 656 case ColumnRole:656 case AccessibilityRole::Column: 657 657 obj = AccessibilityTableColumn::create(); 658 658 break; 659 case TableHeaderContainerRole:659 case AccessibilityRole::TableHeaderContainer: 660 660 obj = AccessibilityTableHeaderContainer::create(); 661 661 break; 662 case SliderThumbRole:662 case AccessibilityRole::SliderThumb: 663 663 obj = AccessibilitySliderThumb::create(); 664 664 break; 665 case MenuListPopupRole:665 case AccessibilityRole::MenuListPopup: 666 666 obj = AccessibilityMenuListPopup::create(); 667 667 break; 668 case MenuListOptionRole:668 case AccessibilityRole::MenuListOption: 669 669 obj = AccessibilityMenuListOption::create(); 670 670 break; 671 case SpinButtonRole:671 case AccessibilityRole::SpinButton: 672 672 obj = AccessibilitySpinButton::create(); 673 673 break; 674 case SpinButtonPartRole:674 case AccessibilityRole::SpinButtonPart: 675 675 obj = AccessibilitySpinButtonPart::create(); 676 676 break; … … 700 700 return; 701 701 702 detachWrapper(obj, ElementDestroyed);703 obj->detach( ElementDestroyed, this);702 detachWrapper(obj, AccessibilityDetachmentType::ElementDestroyed); 703 obj->detach(AccessibilityDetachmentType::ElementDestroyed, this); 704 704 removeAXID(obj); 705 705 … … 921 921 if (notification == AXMenuOpened) { 922 922 obj->updateChildrenIfNecessary(); 923 if (obj->roleValue() != MenuRole)923 if (obj->roleValue() != AccessibilityRole::Menu) 924 924 continue; 925 925 } -
trunk/Source/WebCore/accessibility/AXObjectCache.h
r223728 r224074 92 92 private: 93 93 struct CachedAXObjectAttributes { 94 CachedAXObjectAttributes() : ignored(DefaultBehavior) { } 94 CachedAXObjectAttributes() 95 : ignored(AccessibilityObjectInclusion::DefaultBehavior) 96 { } 95 97 96 98 AccessibilityObjectInclusion ignored; … … 467 469 468 470 #if !HAVE(ACCESSIBILITY) 469 inline AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID) const { return DefaultBehavior; }471 inline AccessibilityObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID) const { return AccessibilityObjectInclusion::DefaultBehavior; } 470 472 inline AccessibilityReplacedText::AccessibilityReplacedText(const VisibleSelection&) { } 471 473 inline void AccessibilityReplacedText::postTextStateChangeNotification(AXObjectCache*, AXTextEditType, const String&, const VisibleSelection&) { } -
trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp
r223728 r224074 140 140 // make the columns based on the number of columns in the first body 141 141 for (unsigned i = 0; i < columnCount; ++i) { 142 auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate( ColumnRole));142 auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(AccessibilityRole::Column)); 143 143 column.setColumnIndex(static_cast<int>(i)); 144 144 column.setParent(this); -
trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp
r223728 r224074 170 170 { 171 171 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) 173 173 return parent; 174 174 } -
trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp
r223728 r224074 137 137 { 138 138 for (const auto& child : children()) { 139 if (child->ariaRoleAttribute() == RowHeaderRole)139 if (child->ariaRoleAttribute() == AccessibilityRole::RowHeader) 140 140 return child.get(); 141 141 } -
trunk/Source/WebCore/accessibility/AccessibilityAttachment.cpp
r201913 r224074 96 96 97 97 if (action.length()) 98 textOrder.append(AccessibilityText(action, Ac tionText));98 textOrder.append(AccessibilityText(action, AccessibilityTextSource::Action)); 99 99 100 100 if (title.length()) 101 textOrder.append(AccessibilityText(title, TitleText));101 textOrder.append(AccessibilityText(title, AccessibilityTextSource::Title)); 102 102 103 103 if (subtitle.length()) 104 textOrder.append(AccessibilityText(subtitle, SubtitleText));104 textOrder.append(AccessibilityText(subtitle, AccessibilityTextSource::Subtitle)); 105 105 } 106 106 -
trunk/Source/WebCore/accessibility/AccessibilityAttachment.h
r208179 r224074 43 43 44 44 private: 45 AccessibilityRole roleValue() const override { return ButtonRole; }45 AccessibilityRole roleValue() const override { return AccessibilityRole::Button; } 46 46 bool isAttachmentElement() const override { return true; } 47 47 -
trunk/Source/WebCore/accessibility/AccessibilityImageMapLink.cpp
r223728 r224074 67 67 { 68 68 if (!m_areaElement) 69 return WebCoreLinkRole;69 return AccessibilityRole::WebCoreLink; 70 70 71 71 const AtomicString& ariaRole = getAttribute(roleAttr); … … 73 73 return AccessibilityObject::ariaRoleToWebCoreRole(ariaRole); 74 74 75 return WebCoreLinkRole;75 return AccessibilityRole::WebCoreLink; 76 76 } 77 77 … … 98 98 String description = accessibilityDescription(); 99 99 if (!description.isEmpty()) 100 textOrder.append(AccessibilityText(description, A lternativeText));100 textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative)); 101 101 102 102 const AtomicString& titleText = getAttribute(titleAttr); 103 103 if (!titleText.isEmpty()) 104 textOrder.append(AccessibilityText(titleText, TitleTagText));104 textOrder.append(AccessibilityText(titleText, AccessibilityTextSource::TitleTag)); 105 105 106 106 const AtomicString& summary = getAttribute(summaryAttr); 107 107 if (!summary.isEmpty()) 108 textOrder.append(AccessibilityText(summary, SummaryText));108 textOrder.append(AccessibilityText(summary, AccessibilityTextSource::Summary)); 109 109 } 110 110 -
trunk/Source/WebCore/accessibility/AccessibilityLabel.cpp
r223728 r224074 66 66 return false; 67 67 for (const auto& child : children) { 68 if (child->roleValue() == StaticTextRole)68 if (child->roleValue() == AccessibilityRole::StaticText) 69 69 continue; 70 if (child->roleValue() == GroupRole) {70 if (child->roleValue() == AccessibilityRole::Group) { 71 71 if (!childrenContainOnlyStaticText(child->children())) 72 72 return false; -
trunk/Source/WebCore/accessibility/AccessibilityLabel.h
r208179 r224074 43 43 explicit AccessibilityLabel(RenderObject*); 44 44 bool computeAccessibilityIsIgnored() const final; 45 AccessibilityRole roleValue() const final { return LabelRole; }45 AccessibilityRole roleValue() const final { return AccessibilityRole::Label; } 46 46 bool isLabel() const final { return true; } 47 47 String stringValue() const final; -
trunk/Source/WebCore/accessibility/AccessibilityList.cpp
r223728 r224074 68 68 // Since it can't be both, it's probably OK to say that it's an un-ordered list. 69 69 // On the Mac, there's no distinction to the client. 70 if (ariaRoleAttribute() == ListRole)70 if (ariaRoleAttribute() == AccessibilityRole::List) 71 71 return true; 72 72 … … 80 80 81 81 // 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) 83 83 return true; 84 84 … … 130 130 131 131 // 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; 134 134 135 135 // Heuristic to determine if this list is being used for layout or for content. … … 141 141 // 5. Otherwise it's a list (for now). 142 142 143 AccessibilityRole role = ListRole;143 AccessibilityRole role = AccessibilityRole::List; 144 144 145 145 // Temporarily set role so that we can query children (otherwise canHaveChildren returns false). … … 152 152 // DescriptionLists are always semantically a description list, so do not apply heuristics. 153 153 if (isDescriptionList() && children.size()) 154 return DescriptionListRole;154 return AccessibilityRole::DescriptionList; 155 155 156 156 for (const auto& child : children) { 157 if (child->ariaRoleAttribute() == ListItemRole)157 if (child->ariaRoleAttribute() == AccessibilityRole::ListItem) 158 158 listItemCount++; 159 else if (child->roleValue() == ListItemRole) {159 else if (child->roleValue() == AccessibilityRole::ListItem) { 160 160 RenderObject* listItem = child->renderer(); 161 161 if (!listItem) … … 169 169 } else if (listItem->node() && listItem->node()->hasTagName(liTag)) { 170 170 // 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) 172 172 listItemCount++; 173 173 … … 182 182 // Non <ul> lists and ARIA lists only need to have one child. 183 183 // <ul>, <ol> lists need to have visible markers. 184 if (ariaRoleAttribute() != UnknownRole) {184 if (ariaRoleAttribute() != AccessibilityRole::Unknown) { 185 185 if (!listItemCount) 186 role = A pplicationGroupRole;186 role = AccessibilityRole::ApplicationGroup; 187 187 } else if (!hasVisibleMarkers) 188 role = GroupRole;188 role = AccessibilityRole::Group; 189 189 190 190 return role; … … 193 193 AccessibilityRole AccessibilityList::roleValue() const 194 194 { 195 ASSERT(m_role != UnknownRole);195 ASSERT(m_role != AccessibilityRole::Unknown); 196 196 return m_role; 197 197 } -
trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp
r223728 r224074 97 97 98 98 for (const auto& obj : children) { 99 if (obj->roleValue() != ListBoxOptionRole)99 if (obj->roleValue() != AccessibilityRole::ListBoxOption) 100 100 continue; 101 101 102 102 downcast<AccessibilityListBoxOption>(*obj).setSelected(true); 103 103 } … … 137 137 return nullptr; 138 138 139 AccessibilityObject& listBoxObject = *m_renderer->document().axObjectCache()->getOrCreate( ListBoxOptionRole);139 AccessibilityObject& listBoxObject = *m_renderer->document().axObjectCache()->getOrCreate(AccessibilityRole::ListBoxOption); 140 140 downcast<AccessibilityListBoxOption>(listBoxObject).setHTMLElement(element); 141 141 -
trunk/Source/WebCore/accessibility/AccessibilityListBox.h
r208384 r224074 40 40 bool canSetSelectedChildrenAttribute() const override; 41 41 void setSelectedChildren(const AccessibilityChildrenVector&); 42 AccessibilityRole roleValue() const override { return ListBoxRole; }42 AccessibilityRole roleValue() const override { return AccessibilityRole::ListBox; } 43 43 44 44 void selectedChildren(AccessibilityChildrenVector&) override; -
trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.h
r208179 r224074 46 46 void setHTMLElement(HTMLElement* element) { m_optionElement = element; } 47 47 48 AccessibilityRole roleValue() const override { return ListBoxOptionRole; }48 AccessibilityRole roleValue() const override { return AccessibilityRole::ListBoxOption; } 49 49 bool isSelected() const override; 50 50 bool isEnabled() const override; -
trunk/Source/WebCore/accessibility/AccessibilityMathMLElement.cpp
r223728 r224074 52 52 { 53 53 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) 57 57 return m_ariaRole; 58 58 59 59 Node* node = m_renderer->node(); 60 60 if (node && node->hasTagName(MathMLNames::mathTag)) 61 return DocumentMathRole;61 return AccessibilityRole::DocumentMath; 62 62 63 63 // It's not clear which role a platform should choose for a math element. 64 64 // Declaring a math element role should give flexibility to platforms to choose. 65 return MathElementRole;65 return AccessibilityRole::MathElement; 66 66 } 67 67 … … 207 207 return false; 208 208 209 return type == Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject();209 return type == AccessibilityMathScriptObjectType::Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject(); 210 210 } 211 211 … … 222 222 223 223 AccessibilityMathMultiscriptPairs pairs; 224 if (type == PreSubscript || type ==PreSuperscript)224 if (type == AccessibilityMathMultiscriptObjectType::PreSubscript || type == AccessibilityMathMultiscriptObjectType::PreSuperscript) 225 225 parent->mathPrescripts(pairs); 226 226 else … … 229 229 for (const auto& pair : pairs) { 230 230 if (this == pair.first) 231 return (type == PreSubscript || type ==PostSubscript);231 return (type == AccessibilityMathMultiscriptObjectType::PreSubscript || type == AccessibilityMathMultiscriptObjectType::PostSubscript); 232 232 if (this == pair.second) 233 return (type == PreSuperscript || type ==PostSuperscript);233 return (type == AccessibilityMathMultiscriptObjectType::PreSuperscript || type == AccessibilityMathMultiscriptObjectType::PostSuperscript); 234 234 } 235 235 -
trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp
r219237 r224074 143 143 String description = accessibilityDescription(); 144 144 if (!description.isEmpty()) 145 textOrder.append(AccessibilityText(description, A lternativeText));145 textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative)); 146 146 147 147 String title = this->title(); 148 148 if (!title.isEmpty()) 149 textOrder.append(AccessibilityText(title, A lternativeText));149 textOrder.append(AccessibilityText(title, AccessibilityTextSource::Alternative)); 150 150 151 151 String helptext = helpText(); 152 152 if (!helptext.isEmpty()) 153 textOrder.append(AccessibilityText(helptext, HelpText));153 textOrder.append(AccessibilityText(helptext, AccessibilityTextSource::Help)); 154 154 } 155 155 … … 198 198 case MediaShowClosedCaptionsButton: 199 199 case MediaHideClosedCaptionsButton: 200 return ButtonRole;200 return AccessibilityRole::Button; 201 201 202 202 case MediaStatusDisplay: 203 return StaticTextRole;203 return AccessibilityRole::StaticText; 204 204 205 205 case MediaTimelineContainer: 206 return GroupRole;206 return AccessibilityRole::Group; 207 207 208 208 default: … … 210 210 } 211 211 212 return UnknownRole; 213 } 214 212 return AccessibilityRole::Unknown; 213 } 215 214 216 215 -
trunk/Source/WebCore/accessibility/AccessibilityMediaControls.h
r223728 r224074 79 79 virtual ~AccessibilityMediaControlsContainer() = default; 80 80 81 AccessibilityRole roleValue() const override { return ToolbarRole; }81 AccessibilityRole roleValue() const override { return AccessibilityRole::Toolbar; } 82 82 83 83 String helpText() const override; … … 97 97 virtual ~AccessibilityMediaTimeDisplay() = default; 98 98 99 AccessibilityRole roleValue() const override { return A pplicationTimerRole; }99 AccessibilityRole roleValue() const override { return AccessibilityRole::ApplicationTimer; } 100 100 101 101 String stringValue() const override; -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp
r223151 r224074 66 66 return; 67 67 68 AccessibilityObject* list = cache->getOrCreate( MenuListPopupRole);68 AccessibilityObject* list = cache->getOrCreate(AccessibilityRole::MenuListPopup); 69 69 if (!list) 70 70 return; -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.h
r208179 r224074 45 45 46 46 bool isMenuList() const override { return true; } 47 AccessibilityRole roleValue() const override { return PopUpButtonRole; }47 AccessibilityRole roleValue() const override { return AccessibilityRole::PopUpButton; } 48 48 bool canSetFocusAttribute() const override; 49 49 -
trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.h
r208179 r224074 43 43 bool isMenuListOption() const override { return true; } 44 44 45 AccessibilityRole roleValue() const override { return MenuListOptionRole; }45 AccessibilityRole roleValue() const override { return AccessibilityRole::MenuListOption; } 46 46 bool canHaveChildren() const override { return false; } 47 47 -
trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
r174898 r224074 74 74 return nullptr; 75 75 76 auto& option = downcast<AccessibilityMenuListOption>(*document()->axObjectCache()->getOrCreate( MenuListOptionRole));76 auto& option = downcast<AccessibilityMenuListOption>(*document()->axObjectCache()->getOrCreate(AccessibilityRole::MenuListOption)); 77 77 option.setElement(element); 78 78 -
trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h
r208179 r224074 49 49 50 50 LayoutRect elementRect() const override { return LayoutRect(); } 51 AccessibilityRole roleValue() const override { return MenuListPopupRole; }51 AccessibilityRole roleValue() const override { return AccessibilityRole::MenuListPopup; } 52 52 53 53 bool isVisible() const override; -
trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
r223126 r224074 84 84 AccessibilityNodeObject::AccessibilityNodeObject(Node* node) 85 85 : AccessibilityObject() 86 , m_ariaRole(UnknownRole)87 , m_roleForMSAA(UnknownRole)88 #ifndef NDEBUG89 , m_initialized(false)90 #endif91 86 , m_node(node) 92 87 { … … 283 278 { 284 279 if (!node()) 285 return UnknownRole;286 287 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)280 return AccessibilityRole::Unknown; 281 282 if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown) 288 283 return m_ariaRole; 289 284 290 285 if (node()->isLink()) 291 return WebCoreLinkRole;286 return AccessibilityRole::WebCoreLink; 292 287 if (node()->isTextNode()) 293 return StaticTextRole;288 return AccessibilityRole::StaticText; 294 289 if (node()->hasTagName(buttonTag)) 295 290 return buttonRoleType(); … … 297 292 HTMLInputElement& input = downcast<HTMLInputElement>(*node()); 298 293 if (input.isCheckbox()) 299 return CheckBoxRole;294 return AccessibilityRole::CheckBox; 300 295 if (input.isRadioButton()) 301 return RadioButtonRole;296 return AccessibilityRole::RadioButton; 302 297 if (input.isTextButton()) 303 298 return buttonRoleType(); 304 299 if (input.isRangeControl()) 305 return SliderRole;300 return AccessibilityRole::Slider; 306 301 if (input.isInputTypeHidden()) 307 return IgnoredRole;302 return AccessibilityRole::Ignored; 308 303 if (input.isSearchField()) 309 return SearchFieldRole;304 return AccessibilityRole::SearchField; 310 305 #if ENABLE(INPUT_TYPE_COLOR) 311 306 if (input.isColorControl()) 312 return ColorWellRole;307 return AccessibilityRole::ColorWell; 313 308 #endif 314 return TextFieldRole;309 return AccessibilityRole::TextField; 315 310 } 316 311 if (node()->hasTagName(selectTag)) { 317 312 HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*node()); 318 return selectElement.multiple() ? ListBoxRole : PopUpButtonRole;313 return selectElement.multiple() ? AccessibilityRole::ListBox : AccessibilityRole::PopUpButton; 319 314 } 320 315 if (is<HTMLTextAreaElement>(*node())) 321 return TextAreaRole;316 return AccessibilityRole::TextArea; 322 317 if (headingLevel()) 323 return HeadingRole;318 return AccessibilityRole::Heading; 324 319 if (node()->hasTagName(blockquoteTag)) 325 return BlockquoteRole;320 return AccessibilityRole::Blockquote; 326 321 if (node()->hasTagName(divTag)) 327 return DivRole;322 return AccessibilityRole::Div; 328 323 if (node()->hasTagName(pTag)) 329 return ParagraphRole;324 return AccessibilityRole::Paragraph; 330 325 if (is<HTMLLabelElement>(*node())) 331 return LabelRole;326 return AccessibilityRole::Label; 332 327 if (is<Element>(*node()) && downcast<Element>(*node()).isFocusable()) 333 return GroupRole;334 335 return UnknownRole;328 return AccessibilityRole::Group; 329 330 return AccessibilityRole::Unknown; 336 331 } 337 332 … … 371 366 // Elements that should not have children 372 367 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: 390 385 #if ENABLE(MATHML) 391 386 return node()->isMathMLElement(); … … 418 413 419 414 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) 423 418 return true; 424 419 // If this element is within a parent that cannot have children, it should not be exposed. … … 426 421 return true; 427 422 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; 432 427 } 433 428 … … 472 467 return false; 473 468 474 if (roleValue() == SearchFieldRole)469 if (roleValue() == AccessibilityRole::SearchField) 475 470 return true; 476 471 … … 519 514 bool AccessibilityNodeObject::isImage() const 520 515 { 521 return roleValue() == ImageRole;516 return roleValue() == AccessibilityRole::Image; 522 517 } 523 518 … … 528 523 return false; 529 524 530 if (ariaRoleAttribute() != UnknownRole)525 if (ariaRoleAttribute() != AccessibilityRole::Unknown) 531 526 return false; 532 527 … … 556 551 { 557 552 Node* node = this->node(); 558 if (is<HTMLInputElement>(node) && roleValue() == ButtonRole) {553 if (is<HTMLInputElement>(node) && roleValue() == AccessibilityRole::Button) { 559 554 HTMLInputElement& input = downcast<HTMLInputElement>(*node); 560 555 return input.isImageButton(); … … 566 561 bool AccessibilityNodeObject::isProgressIndicator() const 567 562 { 568 return roleValue() == ProgressIndicatorRole;563 return roleValue() == AccessibilityRole::ProgressIndicator; 569 564 } 570 565 571 566 bool AccessibilityNodeObject::isSlider() const 572 567 { 573 return roleValue() == SliderRole;568 return roleValue() == AccessibilityRole::Slider; 574 569 } 575 570 … … 577 572 { 578 573 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: 585 580 return true; 586 581 default: … … 591 586 bool AccessibilityNodeObject::isMenu() const 592 587 { 593 return roleValue() == MenuRole;588 return roleValue() == AccessibilityRole::Menu; 594 589 } 595 590 596 591 bool AccessibilityNodeObject::isMenuBar() const 597 592 { 598 return roleValue() == MenuBarRole;593 return roleValue() == AccessibilityRole::MenuBar; 599 594 } 600 595 601 596 bool AccessibilityNodeObject::isMenuButton() const 602 597 { 603 return roleValue() == MenuButtonRole;598 return roleValue() == AccessibilityRole::MenuButton; 604 599 } 605 600 … … 607 602 { 608 603 switch (roleValue()) { 609 case MenuItemRole:610 case MenuItemRadioRole:611 case MenuItemCheckboxRole:604 case AccessibilityRole::MenuItem: 605 case AccessibilityRole::MenuItemRadio: 606 case AccessibilityRole::MenuItemCheckbox: 612 607 return true; 613 608 default: … … 637 632 } 638 633 639 if (roleValue() == HorizontalRuleRole)634 if (roleValue() == AccessibilityRole::HorizontalRule) 640 635 return false; 641 636 … … 683 678 bool validRole = false; 684 679 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: 691 686 validRole = true; 692 687 break; … … 737 732 { 738 733 switch (roleValue()) { 739 case ButtonRole:734 case AccessibilityRole::Button: 740 735 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: 759 754 return true; 760 755 default: … … 796 791 // The implicit value of aria-level is 2 for the heading role. 797 792 // https://www.w3.org/TR/wai-aria-1.1/#heading 798 if (ariaRoleAttribute() == HeadingRole)793 if (ariaRoleAttribute() == AccessibilityRole::Heading) 799 794 return 2; 800 795 … … 877 872 bool AccessibilityNodeObject::isHeading() const 878 873 { 879 return roleValue() == HeadingRole;874 return roleValue() == AccessibilityRole::Heading; 880 875 } 881 876 882 877 bool AccessibilityNodeObject::isLink() const 883 878 { 884 return roleValue() == WebCoreLinkRole;879 return roleValue() == AccessibilityRole::WebCoreLink; 885 880 } 886 881 … … 906 901 { 907 902 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; 909 904 } 910 905 … … 916 911 // Find the child radio button that is selected (ie. the intValue == 1). 917 912 for (const auto& child : children()) { 918 if (child->roleValue() == RadioButtonRole && child->checkboxOrRadioValue() == ButtonStateOn)913 if (child->roleValue() == AccessibilityRole::RadioButton && child->checkboxOrRadioValue() == AccessibilityButtonState::On) 919 914 return child.get(); 920 915 } … … 942 937 { 943 938 if (isNativeCheckboxOrRadio()) 944 return isIndeterminate() ? ButtonStateMixed : isChecked() ? ButtonStateOn : ButtonStateOff;939 return isIndeterminate() ? AccessibilityButtonState::Mixed : isChecked() ? AccessibilityButtonState::On : AccessibilityButtonState::Off; 945 940 946 941 return AccessibilityObject::checkboxOrRadioValue(); … … 1009 1004 1010 1005 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: 1019 1014 // Check if the author is hiding the real control element inside the ARIA element. 1020 1015 if (Element* nativeElement = nativeActionElement(node)) … … 1067 1062 void AccessibilityNodeObject::alterSliderValue(bool increase) 1068 1063 { 1069 if (roleValue() != SliderRole)1064 if (roleValue() != AccessibilityRole::Slider) 1070 1065 return; 1071 1066 … … 1126 1121 1127 1122 AccessibilityRole role = roleValue(); 1128 if (role == VideoRole || role == AudioRole)1123 if (role == AccessibilityRole::Video || role == AccessibilityRole::Audio) 1129 1124 return false; 1130 1125 1131 1126 // If it has an aria role, it's not generic. 1132 if (m_ariaRole != UnknownRole)1127 if (m_ariaRole != AccessibilityRole::Unknown) 1133 1128 return false; 1134 1129 … … 1142 1137 // The web area and body element are both focusable, but existing logic handles these 1143 1138 // cases already, so we don't need to include them here. 1144 if (role == WebAreaRole)1139 if (role == AccessibilityRole::WebArea) 1145 1140 return false; 1146 1141 if (node() && node()->hasTagName(bodyTag)) … … 1149 1144 // An SVG root is focusable by default, but it's probably not interactive, so don't 1150 1145 // include it. It can still be made accessible by giving it an ARIA role. 1151 if (role == SVGRootRole)1146 if (role == AccessibilityRole::SVGRoot) 1152 1147 return false; 1153 1148 … … 1200 1195 Element* AccessibilityNodeObject::menuElementForMenuButton() const 1201 1196 { 1202 if (ariaRoleAttribute() != MenuButtonRole)1197 if (ariaRoleAttribute() != AccessibilityRole::MenuButton) 1203 1198 return nullptr; 1204 1199 … … 1215 1210 Element* AccessibilityNodeObject::menuItemElementForMenu() const 1216 1211 { 1217 if (ariaRoleAttribute() != MenuRole)1212 if (ariaRoleAttribute() != AccessibilityRole::Menu) 1218 1213 return nullptr; 1219 1214 … … 1299 1294 1300 1295 // Only use the <label> text if there's no ARIA override. 1301 if ( !innerText.isEmpty() && !ariaAccessibilityDescription())1302 textOrder.append(AccessibilityText(innerText, isMeter() ? A lternativeText : LabelByElementText,labelObject));1296 if (labelObject && !innerText.isEmpty() && !ariaAccessibilityDescription()) 1297 textOrder.append(AccessibilityText(innerText, isMeter() ? AccessibilityTextSource::Alternative : AccessibilityTextSource::LabelByElement, *labelObject)); 1303 1298 return; 1304 1299 } … … 1307 1302 AccessibilityObject* titleUIElement = this->titleUIElement(); 1308 1303 if (titleUIElement) 1309 textOrder.append(AccessibilityText(String(), LabelByElementText,titleUIElement));1304 textOrder.append(AccessibilityText(String(), AccessibilityTextSource::LabelByElement, *titleUIElement)); 1310 1305 } 1311 1306 … … 1315 1310 String webAreaText = alternativeTextForWebArea(); 1316 1311 if (!webAreaText.isEmpty()) 1317 textOrder.append(AccessibilityText(webAreaText, A lternativeText));1312 textOrder.append(AccessibilityText(webAreaText, AccessibilityTextSource::Alternative)); 1318 1313 return; 1319 1314 } … … 1323 1318 const AtomicString& ariaLabel = getAttribute(aria_labelAttr); 1324 1319 if (!ariaLabel.isEmpty()) 1325 textOrder.append(AccessibilityText(ariaLabel, A lternativeText));1320 textOrder.append(AccessibilityText(ariaLabel, AccessibilityTextSource::Alternative)); 1326 1321 1327 1322 if (usesAltTagForTextComputation()) { … … 1331 1326 // RenderImage will return title as a fallback from altText, but we don't want title here because we consider that in helpText. 1332 1327 if (!renderAltText.isEmpty() && renderAltText != getAttribute(titleAttr)) { 1333 textOrder.append(AccessibilityText(renderAltText, A lternativeText));1328 textOrder.append(AccessibilityText(renderAltText, AccessibilityTextSource::Alternative)); 1334 1329 return; 1335 1330 } … … 1339 1334 const AtomicString& alt = getAttribute(altAttr); 1340 1335 if (!alt.isEmpty()) 1341 textOrder.append(AccessibilityText(alt, A lternativeText));1336 textOrder.append(AccessibilityText(alt, AccessibilityTextSource::Alternative)); 1342 1337 } 1343 1338 … … 1350 1345 AccessibilityObject* object = axObjectCache()->getOrCreate(downcast<HTMLFieldSetElement>(*node).legend()); 1351 1346 if (object && !object->isHidden()) 1352 textOrder.append(AccessibilityText(accessibleNameForNode(object->node()), A lternativeText));1347 textOrder.append(AccessibilityText(accessibleNameForNode(object->node()), AccessibilityTextSource::Alternative)); 1353 1348 } 1354 1349 … … 1357 1352 AccessibilityObject* captionForFigure = this->captionForFigure(); 1358 1353 if (captionForFigure && !captionForFigure->isHidden()) 1359 textOrder.append(AccessibilityText(accessibleNameForNode(captionForFigure->node()), A lternativeText));1354 textOrder.append(AccessibilityText(accessibleNameForNode(captionForFigure->node()), AccessibilityTextSource::Alternative)); 1360 1355 } 1361 1356 1362 1357 // Tree items missing a label are labeled by all child elements. 1363 1358 if (isTreeItem() && ariaLabel.isEmpty() && ariaLabeledByAttribute().isEmpty()) 1364 textOrder.append(AccessibilityText(accessibleNameForNode(node), A lternativeText));1359 textOrder.append(AccessibilityText(accessibleNameForNode(node), AccessibilityTextSource::Alternative)); 1365 1360 1366 1361 #if ENABLE(MATHML) 1367 1362 if (node->isMathMLElement()) 1368 textOrder.append(AccessibilityText(getAttribute(MathMLNames::alttextAttr), A lternativeText));1363 textOrder.append(AccessibilityText(getAttribute(MathMLNames::alttextAttr), AccessibilityTextSource::Alternative)); 1369 1364 #endif 1370 1365 } … … 1380 1375 HTMLInputElement& input = downcast<HTMLInputElement>(*node); 1381 1376 if (input.isTextButton()) { 1382 textOrder.append(AccessibilityText(input.valueWithDefault(), VisibleText));1377 textOrder.append(AccessibilityText(input.valueWithDefault(), AccessibilityTextSource::Visible)); 1383 1378 return; 1384 1379 } … … 1392 1387 1393 1388 switch (roleValue()) { 1394 case PopUpButtonRole:1389 case AccessibilityRole::PopUpButton: 1395 1390 // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue(). 1396 1391 if (node->hasTagName(selectTag)) 1397 1392 break; 1398 1393 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: 1403 1398 // MacOS does not expect native <li> elements to expose label information, it only expects leaf node elements to do that. 1404 1399 #if !PLATFORM(COCOA) 1405 case ListItemRole:1400 case AccessibilityRole::ListItem: 1406 1401 #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: 1414 1409 useTextUnderElement = true; 1415 1410 break; … … 1435 1430 String text = textUnderElement(mode); 1436 1431 if (!text.isEmpty()) 1437 textOrder.append(AccessibilityText(text, ChildrenText));1432 textOrder.append(AccessibilityText(text, AccessibilityTextSource::Children)); 1438 1433 } 1439 1434 } … … 1443 1438 const AtomicString& ariaHelp = getAttribute(aria_helpAttr); 1444 1439 if (!ariaHelp.isEmpty()) 1445 textOrder.append(AccessibilityText(ariaHelp, HelpText));1440 textOrder.append(AccessibilityText(ariaHelp, AccessibilityTextSource::Help)); 1446 1441 1447 1442 String describedBy = ariaDescribedByAttribute(); 1448 1443 if (!describedBy.isEmpty()) 1449 textOrder.append(AccessibilityText(describedBy, SummaryText));1444 textOrder.append(AccessibilityText(describedBy, AccessibilityTextSource::Summary)); 1450 1445 1451 1446 // Summary attribute used as help text on tables. 1452 1447 const AtomicString& summary = getAttribute(summaryAttr); 1453 1448 if (!summary.isEmpty()) 1454 textOrder.append(AccessibilityText(summary, SummaryText));1449 textOrder.append(AccessibilityText(summary, AccessibilityTextSource::Summary)); 1455 1450 1456 1451 // The title attribute should be used as help text unless it is already being used as descriptive text. … … 1458 1453 // descriptive text. This is problematic in the case of meters because the HTML spec suggests authors 1459 1454 // 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. 1461 1456 const AtomicString& title = getAttribute(titleAttr); 1462 1457 if (!title.isEmpty()) { 1463 1458 if (!isMeter() && !roleIgnoresTitle()) 1464 textOrder.append(AccessibilityText(title, TitleTagText));1459 textOrder.append(AccessibilityText(title, AccessibilityTextSource::TitleTag)); 1465 1460 else 1466 textOrder.append(AccessibilityText(title, HelpText));1461 textOrder.append(AccessibilityText(title, AccessibilityTextSource::Help)); 1467 1462 } 1468 1463 } … … 1477 1472 String placeholder = placeholderValue(); 1478 1473 if (!placeholder.isEmpty()) 1479 textOrder.append(AccessibilityText(placeholder, PlaceholderText));1474 textOrder.append(AccessibilityText(placeholder, AccessibilityTextSource::Placeholder)); 1480 1475 } 1481 1476 … … 1487 1482 ariaLabeledByElements(elements); 1488 1483 1489 Vector<Ref Ptr<AccessibilityObject>> axElements;1484 Vector<Ref<AccessibilityObject>> axElements; 1490 1485 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); 1493 1488 } 1494 1489 1495 textOrder.append(AccessibilityText(ariaLabeledBy, A lternativeText, WTFMove(axElements)));1490 textOrder.append(AccessibilityText(ariaLabeledBy, AccessibilityTextSource::Alternative, WTFMove(axElements))); 1496 1491 } 1497 1492 } … … 1542 1537 { 1543 1538 // Static text should not have a description, it should only have a stringValue. 1544 if (roleValue() == StaticTextRole)1539 if (roleValue() == AccessibilityRole::StaticText) 1545 1540 return String(); 1546 1541 … … 1577 1572 bool AccessibilityNodeObject::roleIgnoresTitle() const 1578 1573 { 1579 if (ariaRoleAttribute() != UnknownRole)1574 if (ariaRoleAttribute() != AccessibilityRole::Unknown) 1580 1575 return false; 1581 1576 1582 1577 switch (roleValue()) { 1583 case DivRole:1584 case UnknownRole:1578 case AccessibilityRole::Div: 1579 case AccessibilityRole::Unknown: 1585 1580 return true; 1586 1581 default: … … 1620 1615 // added to those kinds of elements, it is likely it was meant for a child element. 1621 1616 if (AccessibilityObject* axObj = axObjectCache()->getOrCreate(ancestor)) { 1622 if (!axObj->isGroup() && axObj->roleValue() != UnknownRole)1617 if (!axObj->isGroup() && axObj->roleValue() != AccessibilityRole::Unknown) 1623 1618 break; 1624 1619 } … … 1639 1634 1640 1635 // Only tree item will calculate its level through the DOM currently. 1641 if (roleValue() != TreeItemRole)1636 if (roleValue() != AccessibilityRole::TreeItem) 1642 1637 return 0; 1643 1638 … … 1647 1642 for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { 1648 1643 AccessibilityRole parentRole = parent->ariaRoleAttribute(); 1649 if (parentRole == A pplicationGroupRole)1644 if (parentRole == AccessibilityRole::ApplicationGroup) 1650 1645 level++; 1651 else if (parentRole == TreeRole)1646 else if (parentRole == AccessibilityRole::Tree) 1652 1647 break; 1653 1648 } … … 1806 1801 1807 1802 switch (roleValue()) { 1808 case PopUpButtonRole:1803 case AccessibilityRole::PopUpButton: 1809 1804 // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue(). 1810 1805 if (node->hasTagName(selectTag)) 1811 1806 return String(); 1812 1807 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: 1825 1820 return textUnderElement(); 1826 1821 // 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: 1828 1823 return String(); 1829 1824 default: … … 1842 1837 { 1843 1838 // If this is a user defined static text, use the accessible name computation. 1844 if (ariaRoleAttribute() == StaticTextRole) {1839 if (ariaRoleAttribute() == AccessibilityRole::StaticText) { 1845 1840 Vector<AccessibilityText> textOrder; 1846 1841 alternativeText(textOrder); … … 1871 1866 return String(); 1872 1867 1873 if (ariaRoleAttribute() == StaticTextRole) {1868 if (ariaRoleAttribute() == AccessibilityRole::StaticText) { 1874 1869 String staticText = text(); 1875 1870 if (!staticText.length()) … … 2129 2124 const AtomicString& ariaRole = getAttribute(roleAttr); 2130 2125 if (ariaRole.isNull() || ariaRole.isEmpty()) 2131 return UnknownRole;2126 return AccessibilityRole::Unknown; 2132 2127 2133 2128 AccessibilityRole role = ariaRoleToWebCoreRole(ariaRole); 2134 2129 2135 2130 // 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) 2140 2135 role = buttonRoleType(); 2141 2136 2142 if (role == TextAreaRole&& !ariaIsMultiline())2143 role = TextFieldRole;2137 if (role == AccessibilityRole::TextArea && !ariaIsMultiline()) 2138 role = AccessibilityRole::TextField; 2144 2139 2145 2140 role = remapAriaRoleDueToParent(role); 2146 2141 2147 2142 // 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; 2150 2145 2151 2146 // The ARIA spec states, "Authors must give each element with role region a brief label that … … 2153 2148 // if the region does not have an accessible name, do not expose the element as a landmark. 2154 2149 // 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)) 2159 2154 return role; 2160 2155 2161 return UnknownRole;2156 return AccessibilityRole::Unknown; 2162 2157 } 2163 2158 … … 2174 2169 // https://bugs.webkit.org/show_bug.cgi?id=65174 2175 2170 2176 if (role != ListBoxOptionRole && role != MenuItemRole)2171 if (role != AccessibilityRole::ListBoxOption && role != AccessibilityRole::MenuItem) 2177 2172 return role; 2178 2173 … … 2181 2176 2182 2177 // 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; 2185 2180 // 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; 2188 2183 2189 2184 // 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) 2191 2186 break; 2192 2187 } … … 2199 2194 // Elements that can be selected 2200 2195 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: 2214 2209 return isEnabled(); 2215 2210 default: -
trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h
r221918 r224074 145 145 explicit AccessibilityNodeObject(Node*); 146 146 147 AccessibilityRole m_ariaRole ;148 mutable AccessibilityRole m_roleForMSAA ;147 AccessibilityRole m_ariaRole { AccessibilityRole::Unknown }; 148 mutable AccessibilityRole m_roleForMSAA { AccessibilityRole::Unknown }; 149 149 #ifndef NDEBUG 150 bool m_initialized ;150 bool m_initialized { false }; 151 151 #endif 152 152 -
trunk/Source/WebCore/accessibility/AccessibilityObject.cpp
r223766 r224074 85 85 using namespace HTMLNames; 86 86 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 #endif98 {99 }100 101 87 AccessibilityObject::~AccessibilityObject() 102 88 { … … 107 93 { 108 94 // 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) 110 96 cache->postNotification(nullptr, &cache->document(), AXObjectCache::AXMenuClosed); 111 97 … … 131 117 { 132 118 switch (criteria->searchKeys[index]) { 133 // The A nyTypeSearchKeymatches any non-null AccessibilityObject.134 case A nyTypeSearchKey:119 // The AccessibilitySearchKey::AnyType matches any non-null AccessibilityObject. 120 case AccessibilitySearchKey::AnyType: 135 121 return true; 136 122 137 case A rticleSearchKey:138 return axObject->roleValue() == DocumentArticleRole;123 case AccessibilitySearchKey::Article: 124 return axObject->roleValue() == AccessibilityRole::DocumentArticle; 139 125 140 case BlockquoteSameLevelSearchKey:126 case AccessibilitySearchKey::BlockquoteSameLevel: 141 127 return criteria->startObject 142 128 && axObject->isBlockquote() 143 129 && axObject->blockquoteLevel() == criteria->startObject->blockquoteLevel(); 144 130 145 case BlockquoteSearchKey:131 case AccessibilitySearchKey::Blockquote: 146 132 return axObject->isBlockquote(); 147 133 148 case BoldFontSearchKey:134 case AccessibilitySearchKey::BoldFont: 149 135 return axObject->hasBoldFont(); 150 136 151 case ButtonSearchKey:137 case AccessibilitySearchKey::Button: 152 138 return axObject->isButton(); 153 139 154 case CheckBoxSearchKey:140 case AccessibilitySearchKey::CheckBox: 155 141 return axObject->isCheckbox(); 156 142 157 case ControlSearchKey:143 case AccessibilitySearchKey::Control: 158 144 return axObject->isControl(); 159 145 160 case DifferentTypeSearchKey:146 case AccessibilitySearchKey::DifferentType: 161 147 return criteria->startObject 162 148 && axObject->roleValue() != criteria->startObject->roleValue(); 163 149 164 case FontChangeSearchKey:150 case AccessibilitySearchKey::FontChange: 165 151 return criteria->startObject 166 152 && !axObject->hasSameFont(criteria->startObject->renderer()); 167 153 168 case FontColorChangeSearchKey:154 case AccessibilitySearchKey::FontColorChange: 169 155 return criteria->startObject 170 156 && !axObject->hasSameFontColor(criteria->startObject->renderer()); 171 157 172 case FrameSearchKey:158 case AccessibilitySearchKey::Frame: 173 159 return axObject->isWebArea(); 174 160 175 case GraphicSearchKey:161 case AccessibilitySearchKey::Graphic: 176 162 return axObject->isImage(); 177 163 178 case HeadingLevel1SearchKey:164 case AccessibilitySearchKey::HeadingLevel1: 179 165 return axObject->headingLevel() == 1; 180 166 181 case HeadingLevel2SearchKey:167 case AccessibilitySearchKey::HeadingLevel2: 182 168 return axObject->headingLevel() == 2; 183 169 184 case HeadingLevel3SearchKey:170 case AccessibilitySearchKey::HeadingLevel3: 185 171 return axObject->headingLevel() == 3; 186 172 187 case HeadingLevel4SearchKey:173 case AccessibilitySearchKey::HeadingLevel4: 188 174 return axObject->headingLevel() == 4; 189 175 190 case HeadingLevel5SearchKey:176 case AccessibilitySearchKey::HeadingLevel5: 191 177 return axObject->headingLevel() == 5; 192 178 193 case HeadingLevel6SearchKey:179 case AccessibilitySearchKey::HeadingLevel6: 194 180 return axObject->headingLevel() == 6; 195 181 196 case HeadingSameLevelSearchKey:182 case AccessibilitySearchKey::HeadingSameLevel: 197 183 return criteria->startObject 198 184 && axObject->isHeading() 199 185 && axObject->headingLevel() == criteria->startObject->headingLevel(); 200 186 201 case HeadingSearchKey:187 case AccessibilitySearchKey::Heading: 202 188 return axObject->isHeading(); 203 189 204 case HighlightedSearchKey:190 case AccessibilitySearchKey::Highlighted: 205 191 return axObject->hasHighlighting(); 206 192 207 case ItalicFontSearchKey:193 case AccessibilitySearchKey::ItalicFont: 208 194 return axObject->hasItalicFont(); 209 195 210 case LandmarkSearchKey:196 case AccessibilitySearchKey::Landmark: 211 197 return axObject->isLandmark(); 212 198 213 case LinkSearchKey: {199 case AccessibilitySearchKey::Link: { 214 200 bool isLink = axObject->isLink(); 215 201 #if PLATFORM(IOS) 216 202 if (!isLink) 217 isLink = axObject->isDescendantOfRole( WebCoreLinkRole);203 isLink = axObject->isDescendantOfRole(AccessibilityRole::WebCoreLink); 218 204 #endif 219 205 return isLink; 220 206 } 221 207 222 case ListSearchKey:208 case AccessibilitySearchKey::List: 223 209 return axObject->isList(); 224 210 225 case LiveRegionSearchKey:211 case AccessibilitySearchKey::LiveRegion: 226 212 return axObject->supportsARIALiveRegion(); 227 213 228 case MisspelledWordSearchKey:214 case AccessibilitySearchKey::MisspelledWord: 229 215 return axObject->hasMisspelling(); 230 216 231 case OutlineSearchKey:217 case AccessibilitySearchKey::Outline: 232 218 return axObject->isTree(); 233 219 234 case PlainTextSearchKey:220 case AccessibilitySearchKey::PlainText: 235 221 return axObject->hasPlainText(); 236 222 237 case RadioGroupSearchKey:223 case AccessibilitySearchKey::RadioGroup: 238 224 return axObject->isRadioGroup(); 239 225 240 case SameTypeSearchKey:226 case AccessibilitySearchKey::SameType: 241 227 return criteria->startObject 242 228 && axObject->roleValue() == criteria->startObject->roleValue(); 243 229 244 case StaticTextSearchKey:230 case AccessibilitySearchKey::StaticText: 245 231 return axObject->isStaticText(); 246 232 247 case StyleChangeSearchKey:233 case AccessibilitySearchKey::StyleChange: 248 234 return criteria->startObject 249 235 && !axObject->hasSameStyle(criteria->startObject->renderer()); 250 236 251 case TableSameLevelSearchKey:237 case AccessibilitySearchKey::TableSameLevel: 252 238 return criteria->startObject 253 239 && is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility() 254 240 && downcast<AccessibilityTable>(*axObject).tableLevel() == criteria->startObject->tableLevel(); 255 241 256 case TableSearchKey:242 case AccessibilitySearchKey::Table: 257 243 return is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility(); 258 244 259 case TextFieldSearchKey:245 case AccessibilitySearchKey::TextField: 260 246 return axObject->isTextControl(); 261 247 262 case UnderlineSearchKey:248 case AccessibilitySearchKey::Underline: 263 249 return axObject->hasUnderline(); 264 250 265 case UnvisitedLinkSearchKey:251 case AccessibilitySearchKey::UnvisitedLink: 266 252 return axObject->isUnvisited(); 267 253 268 case VisitedLinkSearchKey:254 case AccessibilitySearchKey::VisitedLink: 269 255 return axObject->isVisited(); 270 256 … … 313 299 // First check for objects specifically identified by ARIA. 314 300 switch (ariaRoleAttribute()) { 315 case A pplicationAlertRole:316 case A pplicationAlertDialogRole:317 case A pplicationDialogRole:318 case A pplicationGroupRole:319 case A pplicationLogRole:320 case A pplicationMarqueeRole:321 case A pplicationStatusRole:322 case A pplicationTimerRole: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: 360 346 return false; 361 347 default: … … 365 351 // Now check for generically derived elements now that we know the element does not match a specific ARIA role. 366 352 switch (roleValue()) { 367 case SliderRole:353 case AccessibilityRole::Slider: 368 354 return false; 369 355 default: … … 389 375 bool AccessibilityObject::isBlockquote() const 390 376 { 391 return roleValue() == BlockquoteRole;377 return roleValue() == AccessibilityRole::Blockquote; 392 378 } 393 379 … … 395 381 { 396 382 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: 401 387 return true; 402 388 default: … … 407 393 bool AccessibilityObject::isARIATextControl() const 408 394 { 409 return ariaRoleAttribute() == TextAreaRole || ariaRoleAttribute() == TextFieldRole || ariaRoleAttribute() == SearchFieldRole;395 return ariaRoleAttribute() == AccessibilityRole::TextArea || ariaRoleAttribute() == AccessibilityRole::TextField || ariaRoleAttribute() == AccessibilityRole::SearchField; 410 396 } 411 397 … … 419 405 AccessibilityRole role = roleValue(); 420 406 421 return role == LandmarkBannerRole422 || role == LandmarkComplementaryRole423 || role == LandmarkContentInfoRole424 || role == LandmarkDocRegionRole425 || role == LandmarkMainRole426 || role == LandmarkNavigationRole427 || role == LandmarkRegionRole428 || 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; 429 415 } 430 416 … … 678 664 startObject = this; 679 665 680 bool isForward = criteria->searchDirection == SearchDirectionNext;666 bool isForward = criteria->searchDirection == AccessibilitySearchDirection::Next; 681 667 682 668 // The first iteration of the outer loop will examine the children of the start object for matches. However, when … … 761 747 return nullptr; 762 748 763 bool isBackwardSearch = searchDirection == SearchDirectionPrevious;749 bool isBackwardSearch = searchDirection == AccessibilitySearchDirection::Previous; 764 750 FindOptions findOptions = AtWordStarts | AtWordEnds | CaseInsensitive | StartInSelection; 765 751 if (isBackwardSearch) … … 833 819 RefPtr<Range> closestBeforeStringRange = nullptr; 834 820 // 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); 837 823 // 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); 840 826 841 827 // Determine which candidate is closest to the selection and perform the activity. … … 851 837 if (frame->selection().setSelectedRange(closestStringRange.get(), DOWNSTREAM, true)) { 852 838 switch (activity) { 853 case FindAndCapitalize:839 case AccessibilitySelectTextActivity::FindAndCapitalize: 854 840 replacementString = closestString; 855 841 makeCapitalized(&replacementString, 0); 856 842 replaceSelection = true; 857 843 break; 858 case FindAndUppercase:844 case AccessibilitySelectTextActivity::FindAndUppercase: 859 845 replacementString = closestString.convertToUppercaseWithoutLocale(); // FIXME: Needs locale to work correctly. 860 846 replaceSelection = true; 861 847 break; 862 case FindAndLowercase:848 case AccessibilitySelectTextActivity::FindAndLowercase: 863 849 replacementString = closestString.convertToLowercaseWithoutLocale(); // FIXME: Needs locale to work correctly. 864 850 replaceSelection = true; 865 851 break; 866 case FindAndReplaceActivity: {852 case AccessibilitySelectTextActivity::FindAndReplace: { 867 853 replaceSelection = true; 868 854 // When applying find and replace activities, we want to match the capitalization of the replaced text, … … 876 862 break; 877 863 } 878 case FindAndSelectActivity:864 case AccessibilitySelectTextActivity::FindAndSelect: 879 865 break; 880 866 } … … 913 899 bool AccessibilityObject::isARIAInput(AccessibilityRole ariaRole) 914 900 { 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; 916 902 } 917 903 918 904 bool AccessibilityObject::isARIAControl(AccessibilityRole ariaRole) 919 905 { 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; 922 907 } 923 908 … … 925 910 { 926 911 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: 931 916 return true; 932 case SplitterRole:917 case AccessibilityRole::Splitter: 933 918 return canSetFocusAttribute(); 934 919 default: … … 1460 1445 1461 1446 // 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(); 1463 1448 VisiblePosition position = mainFrame->visiblePositionForPoint(corner); 1464 1449 … … 1653 1638 AccessibilityRole role = roleValue(); 1654 1639 1655 return role == CheckBoxRole1656 || role == ColumnHeaderRole1657 || role == ComboBoxRole1658 || role == GridRole1659 || role == GridCellRole1660 || role == ListBoxRole1661 || role == MenuItemCheckboxRole1662 || role == MenuItemRadioRole1663 || role == RadioGroupRole1664 || role == RowHeaderRole1665 || role == SearchFieldRole1666 || role == SliderRole1667 || role == SpinButtonRole1668 || role == SwitchRole1669 || role == TextFieldRole1670 || role == TreeGridRole1640 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 1671 1656 || isPasswordField(); 1672 1657 } … … 1675 1660 { 1676 1661 if (!hasAttribute(aria_readonlyAttr)) 1677 return ariaRoleAttribute() != UnknownRole&& supportsARIAReadOnly() ? "false" : String();1662 return ariaRoleAttribute() != AccessibilityRole::Unknown && supportsARIAReadOnly() ? "false" : String(); 1678 1663 1679 1664 return getAttribute(aria_readonlyAttr).string().convertToASCIILowercase(); … … 1892 1877 1893 1878 return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*axObject, true, [] (const AccessibilityObject& object) { 1894 return object.roleValue() == HeadingRole;1879 return object.roleValue() == AccessibilityRole::Heading; 1895 1880 })); 1896 1881 } … … 1910 1895 for (const auto& child : children()) { 1911 1896 // Add tree items as the rows. 1912 if (child->roleValue() == TreeItemRole)1897 if (child->roleValue() == AccessibilityRole::TreeItem) 1913 1898 result.append(child); 1914 1899 … … 1922 1907 // The ARIA tree item content are the item that are not other tree items or their containing groups. 1923 1908 for (const auto& child : children()) { 1924 if (!child->isGroup() && child->roleValue() != TreeItemRole)1909 if (!child->isGroup() && child->roleValue() != AccessibilityRole::TreeItem) 1925 1910 result.append(child); 1926 1911 } … … 1931 1916 for (const auto& obj : children()) { 1932 1917 // Add tree items as the rows. 1933 if (obj->roleValue() == TreeItemRole)1918 if (obj->roleValue() == AccessibilityRole::TreeItem) 1934 1919 result.append(obj); 1935 1920 // If it's not a tree item, then descend into the group to find more tree items. … … 1942 1927 { 1943 1928 switch (role) { 1944 case A pplicationAlertDialogRole:1945 case A pplicationAlertRole:1929 case AccessibilityRole::ApplicationAlertDialog: 1930 case AccessibilityRole::ApplicationAlert: 1946 1931 return ASCIILiteral("assertive"); 1947 case A pplicationLogRole:1948 case A pplicationStatusRole:1932 case AccessibilityRole::ApplicationLog: 1933 case AccessibilityRole::ApplicationStatus: 1949 1934 return ASCIILiteral("polite"); 1950 case A pplicationTimerRole:1951 case A pplicationMarqueeRole:1935 case AccessibilityRole::ApplicationTimer: 1936 case AccessibilityRole::ApplicationMarquee: 1952 1937 return ASCIILiteral("off"); 1953 1938 default: … … 1972 1957 1973 1958 switch (roleValue()) { 1974 case ButtonRole:1975 case ToggleButtonRole:1959 case AccessibilityRole::Button: 1960 case AccessibilityRole::ToggleButton: 1976 1961 return buttonAction; 1977 case TextFieldRole:1978 case TextAreaRole:1962 case AccessibilityRole::TextField: 1963 case AccessibilityRole::TextArea: 1979 1964 return textFieldAction; 1980 case RadioButtonRole:1965 case AccessibilityRole::RadioButton: 1981 1966 return radioButtonAction; 1982 case CheckBoxRole:1983 case SwitchRole:1967 case AccessibilityRole::CheckBox: 1968 case AccessibilityRole::Switch: 1984 1969 return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction; 1985 case LinkRole:1986 case WebCoreLinkRole:1970 case AccessibilityRole::Link: 1971 case AccessibilityRole::WebCoreLink: 1987 1972 return linkAction; 1988 case PopUpButtonRole:1973 case AccessibilityRole::PopUpButton: 1989 1974 return menuListAction; 1990 case MenuListPopupRole:1975 case AccessibilityRole::MenuListPopup: 1991 1976 return menuListPopupAction; 1992 case ListItemRole:1977 case AccessibilityRole::ListItem: 1993 1978 return listItemAction; 1994 1979 default: … … 2053 2038 // If "false", empty, or missing, return false state. 2054 2039 if (currentStateValue.isEmpty() || currentStateValue == "false") 2055 return A RIACurrentFalse;2040 return AccessibilityARIACurrentState::False; 2056 2041 2057 2042 if (currentStateValue == "page") 2058 return A RIACurrentPage;2043 return AccessibilityARIACurrentState::Page; 2059 2044 if (currentStateValue == "step") 2060 return A RIACurrentStep;2045 return AccessibilityARIACurrentState::Step; 2061 2046 if (currentStateValue == "location") 2062 return A RIACurrentLocation;2047 return AccessibilityARIACurrentState::Location; 2063 2048 if (currentStateValue == "date") 2064 return A RIACurrentDate;2049 return AccessibilityARIACurrentState::Date; 2065 2050 if (currentStateValue == "time") 2066 return A RIACurrentTime;2051 return AccessibilityARIACurrentState::Time; 2067 2052 2068 2053 // Any value not included in the list of allowed values should be treated as "true". 2069 return A RIACurrentTrue;2054 return AccessibilityARIACurrentState::True; 2070 2055 } 2071 2056 … … 2073 2058 { 2074 2059 switch (ariaCurrentState()) { 2075 case A RIACurrentFalse:2060 case AccessibilityARIACurrentState::False: 2076 2061 return "false"; 2077 case A RIACurrentPage:2062 case AccessibilityARIACurrentState::Page: 2078 2063 return "page"; 2079 case A RIACurrentStep:2064 case AccessibilityARIACurrentState::Step: 2080 2065 return "step"; 2081 case A RIACurrentLocation:2066 case AccessibilityARIACurrentState::Location: 2082 2067 return "location"; 2083 case A RIACurrentTime:2068 case AccessibilityARIACurrentState::Time: 2084 2069 return "time"; 2085 case A RIACurrentDate:2070 case AccessibilityARIACurrentState::Date: 2086 2071 return "date"; 2087 2072 default: 2088 case A RIACurrentTrue:2073 case AccessibilityARIACurrentState::True: 2089 2074 return "true"; 2090 2075 } … … 2165 2150 LayoutRect bounds = elementRect(); 2166 2151 if (bounds.size().width() > bounds.size().height()) 2167 return AccessibilityOrientation Horizontal;2152 return AccessibilityOrientation::Horizontal; 2168 2153 if (bounds.size().height() > bounds.size().width()) 2169 return AccessibilityOrientation Vertical;2170 2171 return AccessibilityOrientation Undefined;2154 return AccessibilityOrientation::Vertical; 2155 2156 return AccessibilityOrientation::Undefined; 2172 2157 } 2173 2158 … … 2217 2202 2218 2203 const RoleEntry roles[] = { 2219 { "alert", A pplicationAlertRole},2220 { "alertdialog", A pplicationAlertDialogRole},2221 { "application", WebApplicationRole},2222 { "article", DocumentArticleRole },2223 { "banner", LandmarkBannerRole},2224 { "button", ButtonRole},2225 { "checkbox", CheckBoxRole},2226 { "complementary", LandmarkComplementaryRole},2227 { "contentinfo", LandmarkContentInfoRole},2228 { "dialog", A pplicationDialogRole},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 }, 2230 2215 // The 'doc-*' roles are defined the ARIA DPUB mobile: https://www.w3.org/TR/dpub-aam-1.0/ 2231 2216 // Editor's draft is currently at https://rawgit.com/w3c/aria/master/dpub-aam/dpub-aam.html 2232 { "doc-abstract", A pplicationTextGroupRole},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", A pplicationTextGroupRole},2242 { "doc-conclusion", LandmarkDocRegionRole},2243 { "doc-cover", ImageRole },2244 { "doc-credit", A pplicationTextGroupRole},2245 { "doc-credits", LandmarkDocRegionRole},2246 { "doc-dedication", A pplicationTextGroupRole},2247 { "doc-endnote", ListItemRole},2248 { "doc-endnotes", LandmarkDocRegionRole},2249 { "doc-epigraph", A pplicationTextGroupRole},2250 { "doc-epilogue", LandmarkDocRegionRole},2251 { "doc-errata", LandmarkDocRegionRole},2252 { "doc-example", A pplicationTextGroupRole},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", A pplicationTextGroupRole},2267 { "doc-qna", A pplicationTextGroupRole},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", A pplicationGroupRole},2284 { "heading", HeadingRole},2285 { "img", ImageRole },2286 { "link", WebCoreLinkRole},2287 { "list", ListRole },2288 { "listitem", ListItemRole },2289 { "listbox", ListBoxRole},2290 { "log", A pplicationLogRole},2291 { "main", LandmarkMainRole},2292 { "marquee", A pplicationMarqueeRole },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", A pplicationStatusRole},2317 { "switch", SwitchRole},2318 { "tab", TabRole},2319 { "tablist", TabListRole},2320 { "tabpanel", TabPanelRole},2321 { "text", StaticTextRole},2322 { "textbox", TextAreaRole},2323 { "term", TermRole},2324 { "timer", A pplicationTimerRole},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 } 2330 2315 }; 2331 2316 … … 2335 2320 for (size_t i = 0; i < roleLength; ++i) { 2336 2321 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); 2338 2323 } 2339 2324 } … … 2355 2340 ASSERT(!value.isEmpty()); 2356 2341 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)) 2358 2344 return role; 2359 2345 } 2360 return UnknownRole;2346 return AccessibilityRole::Unknown; 2361 2347 } 2362 2348 … … 2367 2353 2368 2354 // 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) 2370 2356 return ""; 2371 2357 2372 2358 // We do compute a role string for block elements with author-provided roles. 2373 if (role == A pplicationTextGroupRole || 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)); 2386 2372 } 2387 2373 … … 2410 2396 if (isButton()) 2411 2397 return true; 2412 if (roleValue() == DetailsRole)2398 if (roleValue() == AccessibilityRole::Details) 2413 2399 return true; 2414 2400 … … 2423 2409 // Search within for immediate descendants that are static text. If we find more than one 2424 2410 // 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); 2427 2413 criteria.searchKeys = keys; 2428 2414 axObj->findMatchingObjects(&criteria, results); … … 2595 2581 { 2596 2582 AccessibilityRole role = roleValue(); 2597 if (role != RowHeaderRole && role != ColumnHeaderRole)2598 return SortDirectionInvalid;2583 if (role != AccessibilityRole::RowHeader && role != AccessibilityRole::ColumnHeader) 2584 return AccessibilitySortDirection::Invalid; 2599 2585 2600 2586 const AtomicString& sortAttribute = getAttribute(aria_sortAttr); 2601 2587 if (equalLettersIgnoringASCIICase(sortAttribute, "ascending")) 2602 return SortDirectionAscending;2588 return AccessibilitySortDirection::Ascending; 2603 2589 if (equalLettersIgnoringASCIICase(sortAttribute, "descending")) 2604 return SortDirectionDescending;2590 return AccessibilitySortDirection::Descending; 2605 2591 if (equalLettersIgnoringASCIICase(sortAttribute, "other")) 2606 return SortDirectionOther;2607 2608 return SortDirectionNone;2592 return AccessibilitySortDirection::Other; 2593 2594 return AccessibilitySortDirection::None; 2609 2595 } 2610 2596 … … 2696 2682 return true; 2697 2683 switch (roleValue()) { 2698 case ComboBoxRole:2699 case DisclosureTriangleRole:2700 case DetailsRole:2684 case AccessibilityRole::ComboBox: 2685 case AccessibilityRole::DisclosureTriangle: 2686 case AccessibilityRole::Details: 2701 2687 return true; 2702 2688 default: … … 2716 2702 if (isSummary()) { 2717 2703 if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) { 2718 return object.roleValue() == DetailsRole;2704 return object.roleValue() == AccessibilityRole::Details; 2719 2705 })) 2720 2706 return parent->isExpanded(); … … 2727 2713 { 2728 2714 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: 2734 2720 return true; 2735 2721 default: … … 2747 2733 const AtomicString& ariaPressed = getAttribute(aria_pressedAttr); 2748 2734 if (equalLettersIgnoringASCIICase(ariaPressed, "true")) 2749 return ButtonStateOn;2735 return AccessibilityButtonState::On; 2750 2736 if (equalLettersIgnoringASCIICase(ariaPressed, "mixed")) 2751 return ButtonStateMixed;2752 return ButtonStateOff;2737 return AccessibilityButtonState::Mixed; 2738 return AccessibilityButtonState::Off; 2753 2739 } 2754 2740 2755 2741 const AtomicString& result = getAttribute(aria_checkedAttr); 2756 2742 if (equalLettersIgnoringASCIICase(result, "true")) 2757 return ButtonStateOn;2743 return AccessibilityButtonState::On; 2758 2744 if (equalLettersIgnoringASCIICase(result, "mixed")) { 2759 2745 // ARIA says that radio, menuitemradio, and switch elements must NOT expose button state mixed. 2760 2746 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; 2764 2750 } 2765 2751 2766 2752 if (isIndeterminate()) 2767 return ButtonStateMixed;2768 2769 return ButtonStateOff;2753 return AccessibilityButtonState::Mixed; 2754 2755 return AccessibilityButtonState::Off; 2770 2756 } 2771 2757 … … 3066 3052 IntRect scrollVisibleRect = scrollableArea->visibleContentRect(ScrollableArea::LegacyIOSDocumentVisibleRect); 3067 3053 switch (direction) { 3068 case Right: {3054 case ScrollByPageDirection::Right: { 3069 3055 int scrollAmount = scrollVisibleRect.size().width(); 3070 3056 int newX = scrollPosition.x() - scrollAmount; … … 3072 3058 break; 3073 3059 } 3074 case Left: {3060 case ScrollByPageDirection::Left: { 3075 3061 int scrollAmount = scrollVisibleRect.size().width(); 3076 3062 int newX = scrollAmount + scrollPosition.x(); … … 3079 3065 break; 3080 3066 } 3081 case Up: {3067 case ScrollByPageDirection::Up: { 3082 3068 int scrollAmount = scrollVisibleRect.size().height(); 3083 3069 int newY = scrollPosition.y() - scrollAmount; … … 3085 3071 break; 3086 3072 } 3087 case Down: {3073 case ScrollByPageDirection::Down: { 3088 3074 int scrollAmount = scrollVisibleRect.size().height(); 3089 3075 int newY = scrollAmount + scrollPosition.y(); … … 3092 3078 break; 3093 3079 } 3094 default:3095 break;3096 3080 } 3097 3081 … … 3108 3092 bool AccessibilityObject::lastKnownIsIgnoredValue() 3109 3093 { 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; 3114 3098 } 3115 3099 3116 3100 void AccessibilityObject::setLastKnownIsIgnoredValue(bool isIgnored) 3117 3101 { 3118 m_lastKnownIsIgnoredValue = isIgnored ? IgnoreObject :IncludeObject;3102 m_lastKnownIsIgnoredValue = isIgnored ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject; 3119 3103 } 3120 3104 … … 3152 3136 // http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed 3153 3137 if (ariaPressedIsPresent()) 3154 return ToggleButtonRole;3138 return AccessibilityRole::ToggleButton; 3155 3139 if (ariaHasPopup()) 3156 return PopUpButtonRole;3157 // We don't contemplate RadioButtonRole, as it depends on the input3140 return AccessibilityRole::PopUpButton; 3141 // We don't contemplate AccessibilityRole::RadioButton, as it depends on the input 3158 3142 // type. 3159 3143 3160 return ButtonRole;3144 return AccessibilityRole::Button; 3161 3145 } 3162 3146 … … 3165 3149 AccessibilityRole role = roleValue(); 3166 3150 3167 return role == ButtonRole || role == PopUpButtonRole || role == ToggleButtonRole;3151 return role == AccessibilityRole::Button || role == AccessibilityRole::PopUpButton || role == AccessibilityRole::ToggleButton; 3168 3152 } 3169 3153 3170 3154 bool AccessibilityObject::accessibilityIsIgnoredByDefault() const 3171 3155 { 3172 return defaultObjectInclusion() == IgnoreObject;3156 return defaultObjectInclusion() == AccessibilityObjectInclusion::IgnoreObject; 3173 3157 } 3174 3158 … … 3213 3197 3214 3198 if (useParentData ? m_isIgnoredFromParentData.isARIAHidden : isARIAHidden()) 3215 return IgnoreObject;3199 return AccessibilityObjectInclusion::IgnoreObject; 3216 3200 3217 3201 if (ignoredFromARIAModalPresence()) 3218 return IgnoreObject;3202 return AccessibilityObjectInclusion::IgnoreObject; 3219 3203 3220 3204 if (useParentData ? m_isIgnoredFromParentData.isPresentationalChildOfAriaRole : isPresentationalChildOfAriaRole()) 3221 return IgnoreObject;3205 return AccessibilityObjectInclusion::IgnoreObject; 3222 3206 3223 3207 return accessibilityPlatformIncludesObject(); … … 3234 3218 AccessibilityObjectInclusion ignored = attributeCache->getIgnored(axObjectID()); 3235 3219 switch (ignored) { 3236 case IgnoreObject:3220 case AccessibilityObjectInclusion::IgnoreObject: 3237 3221 return true; 3238 case IncludeObject:3222 case AccessibilityObjectInclusion::IncludeObject: 3239 3223 return false; 3240 case DefaultBehavior:3224 case AccessibilityObjectInclusion::DefaultBehavior: 3241 3225 break; 3242 3226 } … … 3247 3231 // In case computing axIsIgnored disables attribute caching, we should refetch the object to see if it exists. 3248 3232 if (cache && (attributeCache = cache->computedObjectAttributeCache())) 3249 attributeCache->setIgnored(axObjectID(), result ? IgnoreObject :IncludeObject);3233 attributeCache->setIgnored(axObjectID(), result ? AccessibilityObjectInclusion::IgnoreObject : AccessibilityObjectInclusion::IncludeObject); 3250 3234 3251 3235 return result; … … 3370 3354 return false; 3371 3355 3372 if (ariaRoleAttribute() != UnknownRole)3356 if (ariaRoleAttribute() != AccessibilityRole::Unknown) 3373 3357 return false; 3374 3358 -
trunk/Source/WebCore/accessibility/AccessibilityObject.h
r223766 r224074 93 93 typedef unsigned AXID; 94 94 95 enum AccessibilityRole {96 Annotation Role= 1,97 Application Role,98 ApplicationAlert Role,99 ApplicationAlertDialog Role,100 ApplicationDialog Role,101 ApplicationGroup Role,102 ApplicationLog Role,103 ApplicationMarquee Role,104 ApplicationStatus Role,105 ApplicationTextGroup Role,106 ApplicationTimer Role,107 Audio Role,108 Blockquote Role,109 Browser Role,110 BusyIndicator Role,111 Button Role,112 Canvas Role,113 Caption Role,114 Cell Role,115 CheckBox Role,116 ColorWell Role,117 Column Role,118 ColumnHeader Role,119 ComboBox Role,120 Definition Role,121 DescriptionList Role,122 DescriptionListTerm Role,123 DescriptionListDetail Role,124 Details Role,125 Directory Role,126 DisclosureTriangle Role,127 Div Role,128 Document Role,129 DocumentArticle Role,130 DocumentMath Role,131 DocumentNote Role,132 Drawer Role,133 EditableText Role,134 Feed Role,135 Figure Role,136 Footer Role,137 Footnote Role,138 Form Role,139 Grid Role,140 GridCell Role,141 Group Role,142 GrowArea Role,143 Heading Role,144 HelpTag Role,145 HorizontalRule Role,146 Ignored Role,147 Inline Role,148 Image Role,149 ImageMap Role,150 ImageMapLink Role,151 Incrementor Role,152 Label Role,153 LandmarkBanner Role,154 LandmarkComplementary Role,155 LandmarkContentInfo Role,156 LandmarkDocRegion Role,157 LandmarkMain Role,158 LandmarkNavigation Role,159 LandmarkRegion Role,160 LandmarkSearch Role,161 Legend Role,162 Link Role,163 List Role,164 ListBox Role,165 ListBoxOption Role,166 ListItem Role,167 ListMarker Role,168 Mark Role,169 MathElement Role,170 Matte Role,171 Menu Role,172 MenuBar Role,173 MenuButton Role,174 MenuItem Role,175 MenuItemCheckbox Role,176 MenuItemRadio Role,177 MenuListPopup Role,178 MenuListOption Role,179 Outline Role,180 Paragraph Role,181 PopUpButton Role,182 Pre Role,183 Presentational Role,184 ProgressIndicator Role,185 RadioButton Role,186 RadioGroup Role,187 RowHeader Role,188 Row Role,189 RowGroup Role,190 RubyBase Role,191 RubyBlock Role,192 RubyInline Role,193 RubyRun Role,194 RubyText Role,195 Ruler Role,196 RulerMarker Role,197 ScrollArea Role,198 ScrollBar Role,199 SearchField Role,200 Sheet Role,201 Slider Role,202 SliderThumb Role,203 SpinButton Role,204 SpinButtonPart Role,205 SplitGroup Role,206 Splitter Role,207 StaticText Role,208 Summary Role,209 Switch Role,210 SystemWide Role,211 SVGRoot Role,212 SVGText Role,213 SVGTSpan Role,214 SVGTextPath Role,215 TabGroup Role,216 TabList Role,217 TabPanel Role,218 Tab Role,219 Table Role,220 TableHeaderContainer Role,221 TextArea Role,222 TextGroup Role,223 Term Role,224 Time Role,225 Tree Role,226 TreeGrid Role,227 TreeItem Role,228 TextField Role,229 ToggleButton Role,230 Toolbar Role,231 Unknown Role,232 UserInterfaceTooltip Role,233 ValueIndicator Role,234 Video Role,235 WebApplication Role,236 WebArea Role,237 WebCoreLink Role,238 Window Role,239 }; 240 241 enum AccessibilityTextSource {242 Alternative Text,243 Children Text,244 Summary Text,245 Help Text,246 Visible Text,247 TitleTag Text,248 Placeholder Text,249 LabelByElement Text,250 Title Text,251 Subtitle Text,252 Action Text,95 enum 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 241 enum class AccessibilityTextSource { 242 Alternative, 243 Children, 244 Summary, 245 Help, 246 Visible, 247 TitleTag, 248 Placeholder, 249 LabelByElement, 250 Title, 251 Subtitle, 252 Action, 253 253 }; 254 254 … … 256 256 String text; 257 257 AccessibilityTextSource textSource; 258 Vector<Ref Ptr<AccessibilityObject>> textElements;258 Vector<Ref<AccessibilityObject>> textElements; 259 259 260 260 AccessibilityText(const String& t, const AccessibilityTextSource& s) 261 : text(t)262 , textSource(s)261 : text(t) 262 , textSource(s) 263 263 { } 264 264 265 AccessibilityText(const String& t, const AccessibilityTextSource& s, Vector<Ref Ptr<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)) 269 269 { } 270 270 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) 274 274 { 275 textElements.append( element);275 textElements.append(WTFMove(element)); 276 276 } 277 277 }; … … 292 292 , includeFocusableContent(i) 293 293 , ignoredChildNode(ignored) 294 294 { } 295 295 }; 296 296 … … 298 298 // we avoid going up the parent chain for each element while traversing the tree with useful information already. 299 299 struct 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 }; 304 304 305 305 AccessibilityIsIgnoredFromParentData(AccessibilityObject* parent = nullptr) 306 306 : parent(parent) 307 , isARIAHidden(false) 308 , isPresentationalChildOfAriaRole(false) 309 , isDescendantOfBarrenParent(false) 310 { } 311 307 { } 308 312 309 bool isNull() const { return !parent; } 313 310 }; 314 311 315 enum AccessibilityOrientation {316 AccessibilityOrientationVertical,317 AccessibilityOrientationHorizontal,318 AccessibilityOrientationUndefined,319 }; 320 321 enum AccessibilityObjectInclusion {312 enum class AccessibilityOrientation { 313 Vertical, 314 Horizontal, 315 Undefined, 316 }; 317 318 enum class AccessibilityObjectInclusion { 322 319 IncludeObject, 323 320 IgnoreObject, … … 325 322 }; 326 323 327 enum AccessibilityButtonState {328 ButtonStateOff = 0,329 ButtonStateOn,330 ButtonStateMixed,331 }; 332 333 enum AccessibilitySortDirection {334 SortDirectionNone,335 SortDirectionAscending,336 SortDirectionDescending,337 SortDirectionOther,338 SortDirectionInvalid339 }; 340 341 enum AccessibilitySearchDirection {342 SearchDirectionNext = 1,343 SearchDirectionPrevious344 }; 345 346 enum AccessibilitySearchKey {347 AnyType SearchKey= 1,348 Article SearchKey,349 BlockquoteSameLevel SearchKey,350 Blockquote SearchKey,351 BoldFont SearchKey,352 Button SearchKey,353 CheckBox SearchKey,354 Control SearchKey,355 DifferentType SearchKey,356 FontChange SearchKey,357 FontColorChange SearchKey,358 Frame SearchKey,359 Graphic SearchKey,360 HeadingLevel1 SearchKey,361 HeadingLevel2 SearchKey,362 HeadingLevel3 SearchKey,363 HeadingLevel4 SearchKey,364 HeadingLevel5 SearchKey,365 HeadingLevel6 SearchKey,366 HeadingSameLevel SearchKey,367 Heading SearchKey,368 Highlighted SearchKey,369 ItalicFont SearchKey,370 Landmark SearchKey,371 Link SearchKey,372 List SearchKey,373 LiveRegion SearchKey,374 MisspelledWord SearchKey,375 Outline SearchKey,376 PlainText SearchKey,377 RadioGroup SearchKey,378 SameType SearchKey,379 StaticText SearchKey,380 StyleChange SearchKey,381 TableSameLevel SearchKey,382 Table SearchKey,383 TextField SearchKey,384 Underline SearchKey,385 UnvisitedLink SearchKey,386 VisitedLink SearchKey387 }; 388 389 enum AccessibilityVisiblePositionForBounds {390 First VisiblePositionForBounds,391 Last VisiblePositionForBounds324 enum class AccessibilityButtonState { 325 Off = 0, 326 On, 327 Mixed, 328 }; 329 330 enum class AccessibilitySortDirection { 331 None, 332 Ascending, 333 Descending, 334 Other, 335 Invalid, 336 }; 337 338 enum class AccessibilitySearchDirection { 339 Next = 1, 340 Previous, 341 }; 342 343 enum 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 386 enum class AccessibilityVisiblePositionForBounds { 387 First, 388 Last, 392 389 }; 393 390 … … 411 408 }; 412 409 413 enum AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed };410 enum class AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed }; 414 411 415 412 struct VisiblePositionRange { … … 435 432 struct PlainTextRange { 436 433 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; 444 438 445 439 PlainTextRange(unsigned s, unsigned l) … … 451 445 }; 452 446 453 enum AccessibilitySelectTextActivity {454 FindAndReplace Activity,455 FindAndSelect Activity,447 enum class AccessibilitySelectTextActivity { 448 FindAndReplace, 449 FindAndSelect, 456 450 FindAndCapitalize, 457 451 FindAndLowercase, … … 459 453 }; 460 454 461 enum AccessibilitySelectTextAmbiguityResolution {462 ClosestAfter SelectionAmbiguityResolution,463 ClosestBefore SelectionAmbiguityResolution,464 ClosestTo SelectionAmbiguityResolution455 enum class AccessibilitySelectTextAmbiguityResolution { 456 ClosestAfter, 457 ClosestBefore, 458 ClosestTo 465 459 }; 466 460 … … 478 472 }; 479 473 480 enum AccessibilityMathScriptObjectType { Subscript, Superscript };481 enum AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript };482 483 enum AccessibilityARIACurrentState { ARIACurrentFalse, ARIACurrentTrue, ARIACurrentPage, ARIACurrentStep, ARIACurrentLocation, ARIACurrentDate, ARIACurrentTime };474 enum class AccessibilityMathScriptObjectType { Subscript, Superscript }; 475 enum class AccessibilityMathMultiscriptObjectType { PreSubscript, PreSuperscript, PostSubscript, PostSuperscript }; 476 477 enum class AccessibilityARIACurrentState { False, True, Page, Step, Location, Date, Time }; 484 478 485 479 bool nodeHasPresentationRole(Node*); … … 487 481 class AccessibilityObject : public RefCounted<AccessibilityObject> { 488 482 protected: 489 AccessibilityObject() ;483 AccessibilityObject() = default; 490 484 491 485 public: … … 518 512 virtual bool isLink() const { return false; } 519 513 virtual bool isImage() const { return false; } 520 virtual bool isImageMap() const { return roleValue() == ImageMapRole; }514 virtual bool isImageMap() const { return roleValue() == AccessibilityRole::ImageMap; } 521 515 virtual bool isNativeImage() const { return false; } 522 516 virtual bool isImageButton() const { return false; } … … 526 520 virtual bool isNativeTextControl() const { return false; } 527 521 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; } 531 525 virtual bool isNativeListBox() const { return false; } 532 bool isListBox() const { return roleValue() == ListBoxRole; }526 bool isListBox() const { return roleValue() == AccessibilityRole::ListBox; } 533 527 virtual bool isListBoxOption() const { return false; } 534 528 virtual bool isAttachment() const { return false; } … … 560 554 virtual bool isMenuListPopup() const { return false; } 561 555 virtual bool isMenuListOption() const { return false; } 562 virtual bool isSpinButton() const { return roleValue() == SpinButtonRole; }556 virtual bool isSpinButton() const { return roleValue() == AccessibilityRole::SpinButton; } 563 557 virtual bool isNativeSpinButton() const { return false; } 564 558 virtual bool isSpinButtonPart() const { return false; } … … 566 560 virtual bool isMediaControlLabel() const { return false; } 567 561 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; } 570 564 bool isTextControl() const; 571 565 bool isARIATextControl() const; 572 566 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; } 581 575 bool isButton() const; 582 bool isListItem() const { return roleValue() == ListItemRole; }576 bool isListItem() const { return roleValue() == AccessibilityRole::ListItem; } 583 577 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; } 587 581 bool isBlockquote() const; 588 582 bool isLandmark() const; 589 bool isColorWell() const { return roleValue() == ColorWellRole; }583 bool isColorWell() const { return roleValue() == AccessibilityRole::ColorWell; } 590 584 bool isRangeControl() const; 591 585 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; } 594 588 bool isStyleFormatGroup() const; 595 589 bool isSubscriptStyleGroup() const; 596 590 bool isSuperscriptStyleGroup() const; 597 591 bool isFigureElement() const; 598 bool isSummary() const { return roleValue() == SummaryRole; }592 bool isSummary() const { return roleValue() == AccessibilityRole::Summary; } 599 593 bool isOutput() const; 600 594 … … 629 623 virtual bool hasSameFontColor(RenderObject*) const { return false; } 630 624 virtual bool hasSameStyle(RenderObject*) const { return false; } 631 bool isStaticText() const { return roleValue() == StaticTextRole; }625 bool isStaticText() const { return roleValue() == AccessibilityRole::StaticText; } 632 626 virtual bool hasUnderline() const { return false; } 633 627 bool hasHighlighting() const; … … 760 754 virtual AccessibilityObject* scrollBar(AccessibilityOrientation) { return nullptr; } 761 755 762 virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; }756 virtual AccessibilityRole ariaRoleAttribute() const { return AccessibilityRole::Unknown; } 763 757 virtual bool isPresentationalChildOfAriaRole() const { return false; } 764 758 virtual bool ariaRoleHasPresentationalChildren() const { return false; } … … 1009 1003 virtual void scrollToGlobalPoint(const IntPoint&) const; 1010 1004 1011 enum ScrollByPageDirection { Up, Down, Left, Right };1005 enum class ScrollByPageDirection { Up, Down, Left, Right }; 1012 1006 bool scrollByPage(ScrollByPageDirection) const; 1013 1007 IntPoint scrollPosition() const; … … 1103 1097 #else 1104 1098 bool accessibilityIgnoreAttachment() const { return true; } 1105 AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return DefaultBehavior; }1099 AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return AccessibilityObjectInclusion::DefaultBehavior; } 1106 1100 #endif 1107 1101 … … 1136 1130 1137 1131 protected: 1138 AXID m_id ;1132 AXID m_id { 0 }; 1139 1133 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 }; 1146 1140 1147 1141 void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData& data) { m_isIgnoredFromParentData = data; } … … 1181 1175 COMPtr<AccessibilityObjectWrapper> m_wrapper; 1182 1176 #elif PLATFORM(GTK) 1183 AtkObject* m_wrapper ;1177 AtkObject* m_wrapper { nullptr }; 1184 1178 #elif PLATFORM(WPE) 1185 1179 RefPtr<AccessibilityObjectWrapper> m_wrapper; -
trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h
r208179 r224074 43 43 44 44 private: 45 AccessibilityRole roleValue() const override { return ProgressIndicatorRole; }45 AccessibilityRole roleValue() const override { return AccessibilityRole::ProgressIndicator; } 46 46 47 47 bool isProgressIndicator() const override { return true; } -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r223766 r224074 492 492 return nullptr; 493 493 494 if (ariaRoleAttribute() == MenuBarRole)494 if (ariaRoleAttribute() == AccessibilityRole::MenuBar) 495 495 return axObjectCache()->getOrCreate(m_renderer->parent()); 496 496 497 497 // 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) { 499 499 AccessibilityObject* parent = menuButtonForMenu(); 500 500 if (parent) … … 525 525 bool isWidget = renderer->isWidget(); 526 526 527 return isWidget && ariaRoleAttribute() == UnknownRole;527 return isWidget && ariaRoleAttribute() == AccessibilityRole::Unknown; 528 528 } 529 529 … … 613 613 // added to those kinds of elements, it is likely it was meant for a child element. 614 614 if (AccessibilityObject* axObj = axObjectCache()->getOrCreate(ancestor)) { 615 if (!axObj->isGroup() && axObj->roleValue() != UnknownRole)615 if (!axObj->isGroup() && axObj->roleValue() != AccessibilityRole::Unknown) 616 616 break; 617 617 } … … 744 744 RenderBoxModelObject* cssBox = renderBoxModelObject(); 745 745 746 if (ariaRoleAttribute() == StaticTextRole) {746 if (ariaRoleAttribute() == AccessibilityRole::StaticText) { 747 747 String staticText = text(); 748 748 if (!staticText.length()) … … 962 962 { 963 963 for (const auto& child : parent->children()) { 964 if (child->roleValue() == RadioButtonRole)964 if (child->roleValue() == AccessibilityRole::RadioButton) 965 965 linkedUIElements.append(child); 966 966 else … … 971 971 void AccessibilityRenderObject::addRadioButtonGroupMembers(AccessibilityChildrenVector& linkedUIElements) const 972 972 { 973 if (roleValue() != RadioButtonRole)973 if (roleValue() != AccessibilityRole::RadioButton) 974 974 return; 975 975 … … 984 984 // If we didn't find any radio button siblings with the traditional naming, lets search for a radio group role and find its children. 985 985 for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { 986 if (parent->roleValue() == RadioGroupRole)986 if (parent->roleValue() == AccessibilityRole::RadioGroup) 987 987 addRadioButtonGroupChildren(parent, linkedUIElements); 988 988 } … … 1002 1002 } 1003 1003 1004 if (roleValue() == RadioButtonRole)1004 if (roleValue() == AccessibilityRole::RadioButton) 1005 1005 addRadioButtonGroupMembers(linkedUIElements); 1006 1006 } … … 1107 1107 bool isTreeItemDescendant = false; 1108 1108 while (axObj) { 1109 if (axObj->roleValue() == TreeItemRole)1109 if (axObj->roleValue() == AccessibilityRole::TreeItem) 1110 1110 isTreeItemDescendant = true; 1111 1111 if (axObj->isTree()) { … … 1119 1119 if (isInTree) { 1120 1120 AccessibilityRole role = roleValue(); 1121 if (role != TreeItemRole && role != StaticTextRole&& !isTreeItemDescendant)1121 if (role != AccessibilityRole::TreeItem && role != AccessibilityRole::StaticText && !isTreeItemDescendant) 1122 1122 return false; 1123 1123 } … … 1129 1129 // Don't ignore an image that has an alt tag. 1130 1130 if (!altText.containsOnlyWhitespace()) 1131 return IncludeObject;1131 return AccessibilityObjectInclusion::IncludeObject; 1132 1132 1133 1133 // The informal standard is to ignore images with zero-length alt strings. 1134 1134 if (!altText.isNull()) 1135 return IgnoreObject;1136 1137 return DefaultBehavior;1135 return AccessibilityObjectInclusion::IgnoreObject; 1136 1137 return AccessibilityObjectInclusion::DefaultBehavior; 1138 1138 } 1139 1139 … … 1143 1143 1144 1144 if (!m_renderer) 1145 return IgnoreObject;1145 return AccessibilityObjectInclusion::IgnoreObject; 1146 1146 1147 1147 if (m_renderer->style().visibility() != VISIBLE) { 1148 1148 // aria-hidden is meant to override visibility as the determinant in AX hierarchy inclusion. 1149 1149 if (equalLettersIgnoringASCIICase(getAttribute(aria_hiddenAttr), "false")) 1150 return DefaultBehavior;1150 return AccessibilityObjectInclusion::DefaultBehavior; 1151 1151 1152 return IgnoreObject;1152 return AccessibilityObjectInclusion::IgnoreObject; 1153 1153 } 1154 1154 … … 1180 1180 // that AccessibilityRenderObjects take on. 1181 1181 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) 1185 1185 return true; 1186 1186 … … 1189 1189 return true; 1190 1190 1191 if (roleValue() == IgnoredRole)1191 if (roleValue() == AccessibilityRole::Ignored) 1192 1192 return true; 1193 1193 1194 if (roleValue() == PresentationalRole|| inheritsPresentationalRole())1194 if (roleValue() == AccessibilityRole::Presentational || inheritsPresentationalRole()) 1195 1195 return true; 1196 1196 … … 1227 1227 // static text beneath MenuItems and MenuButtons are just reported along with the menu item, so it's ignored on an individual level 1228 1228 AccessibilityObject* parent = parentObjectUnignored(); 1229 if (parent && (parent->isMenuItem() || parent->ariaRoleAttribute() == MenuButtonRole))1229 if (parent && (parent->isMenuItem() || parent->ariaRoleAttribute() == AccessibilityRole::MenuButton)) 1230 1230 return true; 1231 1231 auto& renderText = downcast<RenderText>(*m_renderer); … … 1235 1235 // static text beneath TextControls is reported along with the text control text so it's ignored. 1236 1236 for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { 1237 if (parent->roleValue() == TextFieldRole)1237 if (parent->roleValue() == AccessibilityRole::TextField) 1238 1238 return true; 1239 1239 } … … 1246 1246 if (is<RenderTextFragment>(renderText)) { 1247 1247 AccessibilityObjectInclusion altTextInclusion = objectInclusionFromAltText(downcast<RenderTextFragment>(renderText).altText()); 1248 if (altTextInclusion == IgnoreObject)1248 if (altTextInclusion == AccessibilityObjectInclusion::IgnoreObject) 1249 1249 return true; 1250 if (altTextInclusion == IncludeObject)1250 if (altTextInclusion == AccessibilityObjectInclusion::IncludeObject) 1251 1251 return false; 1252 1252 if (downcast<RenderTextFragment>(renderText).firstLetter()) … … 1275 1275 1276 1276 switch (roleValue()) { 1277 case A udioRole: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: 1286 1286 return false; 1287 1287 default: … … 1289 1289 } 1290 1290 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) 1295 1295 return false; 1296 1296 … … 1332 1332 // First check the RenderImage's altText (which can be set through a style sheet, or come from the Element). 1333 1333 // However, if this is not a native image, fallback to the attribute on the Element. 1334 AccessibilityObjectInclusion altTextInclusion = DefaultBehavior;1334 AccessibilityObjectInclusion altTextInclusion = AccessibilityObjectInclusion::DefaultBehavior; 1335 1335 bool isRenderImage = is<RenderImage>(renderer()); 1336 1336 if (isRenderImage) … … 1339 1339 altTextInclusion = objectInclusionFromAltText(getAttribute(altAttr).string()); 1340 1340 1341 if (altTextInclusion == IgnoreObject)1341 if (altTextInclusion == AccessibilityObjectInclusion::IgnoreObject) 1342 1342 return true; 1343 if (altTextInclusion == IncludeObject)1343 if (altTextInclusion == AccessibilityObjectInclusion::IncludeObject) 1344 1344 return false; 1345 1345 … … 1404 1404 // <span> tags are inline tags and not meant to convey information if they have no other aria 1405 1405 // 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 GroupRole1406 // their parent. In addition, because included spans are AccessibilityRole::Group objects, and AccessibilityRole::Group 1407 1407 // objects are often containers with meaningful information, the inclusion of a span can have 1408 1408 // the side effect of causing the immediate parent accessible to be ignored. This is especially … … 1529 1529 AccessibilityRole ariaRole = ariaRoleAttribute(); 1530 1530 // 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())) { 1532 1532 HTMLTextFormControlElement& textControl = downcast<RenderTextControl>(*m_renderer).textFormControlElement(); 1533 1533 return PlainTextRange(textControl.selectionStart(), textControl.selectionEnd() - textControl.selectionStart()); … … 1676 1676 1677 1677 // A tab item should only control tab panels. 1678 if (!tabPanel || tabPanel->roleValue() != TabPanelRole)1678 if (!tabPanel || tabPanel->roleValue() != AccessibilityRole::TabPanel) 1679 1679 continue; 1680 1680 … … 1705 1705 // Check instead if the frame's selection controller is focused 1706 1706 if (focusedElement == m_renderer->node() 1707 || (roleValue() == WebAreaRole&& document.frame()->selection().isFocusedAndActive()))1707 || (roleValue() == AccessibilityRole::WebArea && document.frame()->selection().isFocusedAndActive())) 1708 1708 return true; 1709 1709 … … 1747 1747 // Setting selected only makes sense in trees and tables (and tree-tables). 1748 1748 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) 1750 1750 return; 1751 1751 … … 1836 1836 auto* parent = current->parentNode(); 1837 1837 if (is<HTMLAreaElement>(*current) && is<HTMLMapElement>(parent)) { 1838 auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate( ImageMapLinkRole));1838 auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(AccessibilityRole::ImageMapLink)); 1839 1839 HTMLMapElement& map = downcast<HTMLMapElement>(*parent); 1840 1840 areaObject.setHTMLAreaElement(downcast<HTMLAreaElement>(current)); … … 2412 2412 { 2413 2413 switch (ariaRoleAttribute()) { 2414 case A pplicationGroupRole: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: 2426 2426 /* FIXME: replace these with actual roles when they are added to AccessibilityRole 2427 2427 composite … … 2475 2475 2476 2476 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: 2482 2482 foundParent = true; 2483 2483 break; … … 2501 2501 2502 2502 // Post that the specific row either collapsed or expanded. 2503 if (roleValue() == RowRole || roleValue() == TreeItemRole)2503 if (roleValue() == AccessibilityRole::Row || roleValue() == AccessibilityRole::TreeItem) 2504 2504 cache->postNotification(this, document(), isExpanded() ? AXObjectCache::AXRowExpanded : AXObjectCache::AXRowCollapsed); 2505 2505 else … … 2610 2610 bool AccessibilityRenderObject::supportsExpandedTextValue() const 2611 2611 { 2612 if (roleValue() == StaticTextRole) {2612 if (roleValue() == AccessibilityRole::StaticText) { 2613 2613 if (AccessibilityObject* parent = parentObject()) 2614 2614 return parent->hasTagName(abbrTag) || parent->hasTagName(acronymTag); … … 2621 2621 { 2622 2622 if (!m_renderer) 2623 return UnknownRole;2623 return AccessibilityRole::Unknown; 2624 2624 2625 2625 // Sometimes we need to ignore the attribute role. Like if a tree is malformed, 2626 2626 // we want to ignore the treeitem's attribute role. 2627 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole&& !shouldIgnoreAttributeRole())2627 if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown && !shouldIgnoreAttributeRole()) 2628 2628 return m_ariaRole; 2629 2629 … … 2632 2632 2633 2633 if (node && node->isLink()) 2634 return WebCoreLinkRole;2634 return AccessibilityRole::WebCoreLink; 2635 2635 if (node && is<HTMLImageElement>(*node) && downcast<HTMLImageElement>(*node).hasAttributeWithoutSynchronization(usemapAttr)) 2636 return ImageMapRole;2636 return AccessibilityRole::ImageMap; 2637 2637 if ((cssBox && cssBox->isListItem()) || (node && node->hasTagName(liTag))) 2638 return ListItemRole;2638 return AccessibilityRole::ListItem; 2639 2639 if (m_renderer->isListMarker()) 2640 return ListMarkerRole;2640 return AccessibilityRole::ListMarker; 2641 2641 if (node && node->hasTagName(buttonTag)) 2642 2642 return buttonRoleType(); 2643 2643 if (node && node->hasTagName(legendTag)) 2644 return LegendRole;2644 return AccessibilityRole::Legend; 2645 2645 if (m_renderer->isText()) 2646 return StaticTextRole;2646 return AccessibilityRole::StaticText; 2647 2647 if (cssBox && cssBox->isImage()) { 2648 2648 if (is<HTMLInputElement>(node)) 2649 return ariaHasPopup() ? PopUpButtonRole : ButtonRole;2649 return ariaHasPopup() ? AccessibilityRole::PopUpButton : AccessibilityRole::Button; 2650 2650 if (isSVGImage()) 2651 return SVGRootRole;2652 return ImageRole;2651 return AccessibilityRole::SVGRoot; 2652 return AccessibilityRole::Image; 2653 2653 } 2654 2654 2655 2655 if (node && node->hasTagName(canvasTag)) 2656 return CanvasRole;2656 return AccessibilityRole::Canvas; 2657 2657 2658 2658 if (cssBox && cssBox->isRenderView()) 2659 return WebAreaRole;2659 return AccessibilityRole::WebArea; 2660 2660 2661 2661 if (cssBox && cssBox->isTextField()) { 2662 2662 if (is<HTMLInputElement>(node)) 2663 return downcast<HTMLInputElement>(*node).isSearchField() ? SearchFieldRole : TextFieldRole;2663 return downcast<HTMLInputElement>(*node).isSearchField() ? AccessibilityRole::SearchField : AccessibilityRole::TextField; 2664 2664 } 2665 2665 2666 2666 if (cssBox && cssBox->isTextArea()) 2667 return TextAreaRole;2667 return AccessibilityRole::TextArea; 2668 2668 2669 2669 if (is<HTMLInputElement>(node)) { 2670 2670 HTMLInputElement& input = downcast<HTMLInputElement>(*node); 2671 2671 if (input.isCheckbox()) 2672 return CheckBoxRole;2672 return AccessibilityRole::CheckBox; 2673 2673 if (input.isRadioButton()) 2674 return RadioButtonRole;2674 return AccessibilityRole::RadioButton; 2675 2675 if (input.isTextButton()) 2676 2676 return buttonRoleType(); … … 2678 2678 #if PLATFORM(IOS) 2679 2679 if (input.isDateField() || input.isTimeField()) 2680 return PopUpButtonRole;2680 return AccessibilityRole::PopUpButton; 2681 2681 #endif 2682 2682 #if ENABLE(INPUT_TYPE_COLOR) 2683 2683 if (input.isColorControl()) 2684 return ColorWellRole;2684 return AccessibilityRole::ColorWell; 2685 2685 #endif 2686 2686 } 2687 2687 2688 2688 if (hasContentEditableAttributeSet()) 2689 return TextAreaRole;2689 return AccessibilityRole::TextArea; 2690 2690 2691 2691 if (isFileUploadButton()) 2692 return ButtonRole;2692 return AccessibilityRole::Button; 2693 2693 2694 2694 if (cssBox && cssBox->isMenuList()) 2695 return PopUpButtonRole;2695 return AccessibilityRole::PopUpButton; 2696 2696 2697 2697 if (headingLevel()) 2698 return HeadingRole;2698 return AccessibilityRole::Heading; 2699 2699 2700 2700 if (m_renderer->isSVGRoot()) 2701 return SVGRootRole;2701 return AccessibilityRole::SVGRoot; 2702 2702 2703 2703 if (isStyleFormatGroup()) 2704 return is<RenderInline>(*m_renderer) ? InlineRole : TextGroupRole;2704 return is<RenderInline>(*m_renderer) ? AccessibilityRole::Inline : AccessibilityRole::TextGroup; 2705 2705 2706 2706 if (node && node->hasTagName(ddTag)) 2707 return DescriptionListDetailRole;2707 return AccessibilityRole::DescriptionListDetail; 2708 2708 2709 2709 if (node && node->hasTagName(dtTag)) 2710 return DescriptionListTermRole;2710 return AccessibilityRole::DescriptionListTerm; 2711 2711 2712 2712 if (node && node->hasTagName(dlTag)) 2713 return DescriptionListRole;2713 return AccessibilityRole::DescriptionList; 2714 2714 2715 2715 if (node && node->hasTagName(fieldsetTag)) 2716 return GroupRole;2716 return AccessibilityRole::Group; 2717 2717 2718 2718 if (node && node->hasTagName(figureTag)) 2719 return FigureRole;2719 return AccessibilityRole::Figure; 2720 2720 2721 2721 // Check for Ruby elements 2722 2722 if (m_renderer->isRubyText()) 2723 return RubyTextRole;2723 return AccessibilityRole::RubyText; 2724 2724 if (m_renderer->isRubyBase()) 2725 return RubyBaseRole;2725 return AccessibilityRole::RubyBase; 2726 2726 if (m_renderer->isRubyRun()) 2727 return RubyRunRole;2727 return AccessibilityRole::RubyRun; 2728 2728 if (m_renderer->isRubyBlock()) 2729 return RubyBlockRole;2729 return AccessibilityRole::RubyBlock; 2730 2730 if (m_renderer->isRubyInline()) 2731 return RubyInlineRole;2731 return AccessibilityRole::RubyInline; 2732 2732 2733 2733 // This return value is what will be used if AccessibilityTableCell determines 2734 2734 // the cell should not be treated as a cell (e.g. because it is a layout table. 2735 2735 if (is<RenderTableCell>(renderer())) 2736 return TextGroupRole;2736 return AccessibilityRole::TextGroup; 2737 2737 2738 2738 // Table sections should be ignored. 2739 2739 if (m_renderer->isTableSection()) 2740 return IgnoredRole;2740 return AccessibilityRole::Ignored; 2741 2741 2742 2742 if (m_renderer->isHR()) 2743 return HorizontalRuleRole;2743 return AccessibilityRole::HorizontalRule; 2744 2744 2745 2745 if (node && node->hasTagName(pTag)) 2746 return ParagraphRole;2746 return AccessibilityRole::Paragraph; 2747 2747 2748 2748 if (is<HTMLLabelElement>(node)) 2749 return LabelRole;2749 return AccessibilityRole::Label; 2750 2750 2751 2751 if (node && node->hasTagName(dfnTag)) 2752 return DefinitionRole;2752 return AccessibilityRole::Definition; 2753 2753 2754 2754 if (node && node->hasTagName(divTag)) 2755 return DivRole;2755 return AccessibilityRole::Div; 2756 2756 2757 2757 if (is<HTMLFormElement>(node)) 2758 return FormRole;2758 return AccessibilityRole::Form; 2759 2759 2760 2760 if (node && node->hasTagName(articleTag)) 2761 return DocumentArticleRole;2761 return AccessibilityRole::DocumentArticle; 2762 2762 2763 2763 if (node && node->hasTagName(mainTag)) 2764 return LandmarkMainRole;2764 return AccessibilityRole::LandmarkMain; 2765 2765 2766 2766 if (node && node->hasTagName(navTag)) 2767 return LandmarkNavigationRole;2767 return AccessibilityRole::LandmarkNavigation; 2768 2768 2769 2769 if (node && node->hasTagName(asideTag)) 2770 return LandmarkComplementaryRole;2770 return AccessibilityRole::LandmarkComplementary; 2771 2771 2772 2772 // The default role attribute value for the section element, region, became a landmark in ARIA 1.1. … … 2774 2774 // for section elements which have names. 2775 2775 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; 2777 2777 2778 2778 if (node && node->hasTagName(addressTag)) 2779 return LandmarkContentInfoRole;2779 return AccessibilityRole::LandmarkContentInfo; 2780 2780 2781 2781 if (node && node->hasTagName(blockquoteTag)) 2782 return BlockquoteRole;2782 return AccessibilityRole::Blockquote; 2783 2783 2784 2784 if (node && node->hasTagName(captionTag)) 2785 return CaptionRole;2785 return AccessibilityRole::Caption; 2786 2786 2787 2787 if (node && node->hasTagName(markTag)) 2788 return MarkRole;2788 return AccessibilityRole::Mark; 2789 2789 2790 2790 if (node && node->hasTagName(preTag)) 2791 return PreRole;2791 return AccessibilityRole::Pre; 2792 2792 2793 2793 if (is<HTMLDetailsElement>(node)) 2794 return DetailsRole;2794 return AccessibilityRole::Details; 2795 2795 if (is<HTMLSummaryElement>(node)) 2796 return SummaryRole;2796 return AccessibilityRole::Summary; 2797 2797 2798 2798 // http://rawgit.com/w3c/aria/master/html-aam/html-aam.html 2799 2799 // Output elements should be mapped to status role. 2800 2800 if (isOutput()) 2801 return A pplicationStatusRole;2801 return AccessibilityRole::ApplicationStatus; 2802 2802 2803 2803 #if ENABLE(VIDEO) 2804 2804 if (is<HTMLVideoElement>(node)) 2805 return VideoRole;2805 return AccessibilityRole::Video; 2806 2806 if (is<HTMLAudioElement>(node)) 2807 return A udioRole;2807 return AccessibilityRole::Audio; 2808 2808 #endif 2809 2809 2810 2810 // The HTML element should not be exposed as an element. That's what the RenderView element does. 2811 2811 if (node && node->hasTagName(htmlTag)) 2812 return IgnoredRole;2812 return AccessibilityRole::Ignored; 2813 2813 2814 2814 // There should only be one banner/contentInfo per page. If header/footer are being used within an article or section 2815 2815 // then it should not be exposed as whole page's banner/contentInfo 2816 2816 if (node && node->hasTagName(headerTag) && !isDescendantOfElementType(articleTag) && !isDescendantOfElementType(sectionTag)) 2817 return LandmarkBannerRole;2817 return AccessibilityRole::LandmarkBanner; 2818 2818 if (node && node->hasTagName(footerTag) && !isDescendantOfElementType(articleTag) && !isDescendantOfElementType(sectionTag)) 2819 return FooterRole;2819 return AccessibilityRole::Footer; 2820 2820 2821 2821 // menu tags with toolbar type should have Toolbar role. 2822 2822 if (node && node->hasTagName(menuTag) && equalLettersIgnoringASCIICase(getAttribute(typeAttr), "toolbar")) 2823 return ToolbarRole;2823 return AccessibilityRole::Toolbar; 2824 2824 2825 2825 if (node && node->hasTagName(timeTag)) 2826 return TimeRole;2826 return AccessibilityRole::Time; 2827 2827 2828 2828 // 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. 2829 2829 if (supportsARIAAttributes() || canSetFocusAttribute()) 2830 return GroupRole;2830 return AccessibilityRole::Group; 2831 2831 2832 2832 if (m_renderer->isRenderBlockFlow()) 2833 return m_renderer->isAnonymousBlock() ? TextGroupRole : GroupRole;2834 2835 // InlineRole is the final fallback before assigning UnknownRoleto an object. It makes it2833 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 2836 2836 // possible to distinguish truly unknown objects from non-focusable inline text elements 2837 2837 // which have an event handler or attribute suggesting possible inclusion by the platform. … … 2840 2840 || (node && node->hasEventListeners()) 2841 2841 || (supportsDatetimeAttribute() && !getAttribute(datetimeAttr).isEmpty()))) 2842 return InlineRole;2843 2844 return UnknownRole;2842 return AccessibilityRole::Inline; 2843 2844 return AccessibilityRole::Unknown; 2845 2845 } 2846 2846 … … 2849 2849 const AtomicString& ariaOrientation = getAttribute(aria_orientationAttr); 2850 2850 if (equalLettersIgnoringASCIICase(ariaOrientation, "horizontal")) 2851 return AccessibilityOrientation Horizontal;2851 return AccessibilityOrientation::Horizontal; 2852 2852 if (equalLettersIgnoringASCIICase(ariaOrientation, "vertical")) 2853 return AccessibilityOrientation Vertical;2853 return AccessibilityOrientation::Vertical; 2854 2854 if (equalLettersIgnoringASCIICase(ariaOrientation, "undefined")) 2855 return AccessibilityOrientation Undefined;2855 return AccessibilityOrientation::Undefined; 2856 2856 2857 2857 // In ARIA 1.1, the implicit value of aria-orientation changed from horizontal … … 2859 2859 // addition, the implicit value of combobox became undefined. 2860 2860 if (isComboBox() || isRadioGroup() || isTreeGrid()) 2861 return AccessibilityOrientation Undefined;2861 return AccessibilityOrientation::Undefined; 2862 2862 2863 2863 if (isScrollbar() || isListBox() || isMenu() || isTree()) 2864 return AccessibilityOrientation Vertical;2864 return AccessibilityOrientation::Vertical; 2865 2865 2866 2866 if (isMenuBar() || isSplitter() || isTabList() || isToolbar() || isSlider()) 2867 return AccessibilityOrientation Horizontal;2867 return AccessibilityOrientation::Horizontal; 2868 2868 2869 2869 return AccessibilityObject::orientation(); … … 2882 2882 const Vector<const HTMLQualifiedName*>* parentTags; 2883 2883 switch (roleValue()) { 2884 case ListItemRole:2885 case ListMarkerRole: {2884 case AccessibilityRole::ListItem: 2885 case AccessibilityRole::ListMarker: { 2886 2886 static const auto listItemParents = makeNeverDestroyed(Vector<const HTMLQualifiedName*> { &dlTag, &olTag, &ulTag }); 2887 2887 parentTags = &listItemParents.get(); 2888 2888 break; 2889 2889 } 2890 case GridCellRole:2891 case CellRole: {2890 case AccessibilityRole::GridCell: 2891 case AccessibilityRole::Cell: { 2892 2892 static const auto tableCellParents = makeNeverDestroyed(Vector<const HTMLQualifiedName*> { &tableTag }); 2893 2893 parentTags = &tableCellParents.get(); … … 2911 2911 auto& name = downcast<Element>(*node).tagQName(); 2912 2912 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; 2914 2914 } 2915 2915 … … 2930 2930 { 2931 2931 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: 2937 2937 // case SeparatorRole: 2938 2938 return true; … … 2944 2944 bool AccessibilityRenderObject::canSetExpandedAttribute() const 2945 2945 { 2946 if (roleValue() == DetailsRole)2946 if (roleValue() == AccessibilityRole::Details) 2947 2947 return true; 2948 2948 … … 2998 2998 if (!area.isLink()) 2999 2999 continue; 3000 auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate( ImageMapLinkRole));3000 auto& areaObject = downcast<AccessibilityImageMapLink>(*axObjectCache()->getOrCreate(AccessibilityRole::ImageMapLink)); 3001 3001 areaObject.setHTMLAreaElement(&area); 3002 3002 areaObject.setHTMLMapElement(map); … … 3033 3033 return; 3034 3034 3035 auto& axSpinButton = downcast<AccessibilitySpinButton>(*axObjectCache()->getOrCreate( SpinButtonRole));3035 auto& axSpinButton = downcast<AccessibilitySpinButton>(*axObjectCache()->getOrCreate(AccessibilityRole::SpinButton)); 3036 3036 axSpinButton.setSpinButtonElement(downcast<SpinButtonElement>(spinButtonElement)); 3037 3037 axSpinButton.setParent(this); … … 3206 3206 { 3207 3207 // 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) { 3209 3209 // Elements marked as menus must have at least one menu item child. 3210 3210 size_t menuItemCount = 0; … … 3217 3217 3218 3218 if (!menuItemCount) 3219 m_role = GroupRole;3219 m_role = AccessibilityRole::Group; 3220 3220 } 3221 3221 } … … 3291 3291 // WAI-ARIA "alert" and "status" roles have an implicit aria-atomic value of true. 3292 3292 switch (roleValue()) { 3293 case A pplicationAlertRole:3294 case A pplicationStatusRole:3293 case AccessibilityRole::ApplicationAlert: 3294 case AccessibilityRole::ApplicationStatus: 3295 3295 return true; 3296 3296 default: … … 3308 3308 switch (roleValue()) { 3309 3309 // 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: 3315 3315 // These roles are containers whose children are treated as selected by assistive 3316 3316 // technologies. We can get the "selected" item via aria-activedescendant or the 3317 3317 // focused element. 3318 case MenuRole:3319 case MenuBarRole:3318 case AccessibilityRole::Menu: 3319 case AccessibilityRole::MenuBar: 3320 3320 return true; 3321 3321 default: … … 3364 3364 for (const auto& child : children()) { 3365 3365 // 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) { 3367 3367 result.append(child); 3368 3368 if (!isMulti) … … 3380 3380 3381 3381 switch (roleValue()) { 3382 case ListBoxRole:3382 case AccessibilityRole::ListBox: 3383 3383 // native list boxes would be AccessibilityListBoxes, so only check for aria list boxes 3384 3384 ariaListboxSelectedChildren(result); 3385 3385 return; 3386 case GridRole:3387 case TreeRole:3388 case TreeGridRole:3386 case AccessibilityRole::Grid: 3387 case AccessibilityRole::Tree: 3388 case AccessibilityRole::TreeGrid: 3389 3389 ariaSelectedRows(result); 3390 3390 return; 3391 case TabListRole:3391 case AccessibilityRole::TabList: 3392 3392 if (AccessibilityObject* selectedTab = selectedTabItem()) 3393 3393 result.append(selectedTab); 3394 3394 return; 3395 case MenuRole:3396 case MenuBarRole:3395 case AccessibilityRole::Menu: 3396 case AccessibilityRole::MenuBar: 3397 3397 if (AccessibilityObject* descendant = activeDescendant()) { 3398 3398 result.append(descendant); … … 3425 3425 3426 3426 // 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 3428 3429 ASSERT_NOT_REACHED(); 3429 3430 return; … … 3434 3435 void AccessibilityRenderObject::tabChildren(AccessibilityChildrenVector& result) 3435 3436 { 3436 ASSERT(roleValue() == TabListRole);3437 ASSERT(roleValue() == AccessibilityRole::TabList); 3437 3438 3438 3439 for (const auto& child : children()) { … … 3454 3455 3455 3456 switch (roleValue()) { 3456 case ButtonRole:3457 case ToggleButtonRole:3457 case AccessibilityRole::Button: 3458 case AccessibilityRole::ToggleButton: 3458 3459 return buttonAction; 3459 case TextFieldRole:3460 case TextAreaRole:3460 case AccessibilityRole::TextField: 3461 case AccessibilityRole::TextArea: 3461 3462 return textFieldAction; 3462 case RadioButtonRole:3463 case AccessibilityRole::RadioButton: 3463 3464 return radioButtonAction; 3464 case CheckBoxRole:3465 case AccessibilityRole::CheckBox: 3465 3466 return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction; 3466 case LinkRole:3467 case WebCoreLinkRole:3467 case AccessibilityRole::Link: 3468 case AccessibilityRole::WebCoreLink: 3468 3469 return linkAction; 3469 3470 default: … … 3656 3657 { 3657 3658 if (!renderer) 3658 return UnknownRole;3659 return AccessibilityRole::Unknown; 3659 3660 3660 3661 if (is<RenderText>(*renderer)) 3661 return EditableTextRole;3662 return AccessibilityRole::EditableText; 3662 3663 3663 3664 if (is<RenderListItem>(*renderer)) 3664 return ListItemRole;3665 3666 return UnknownRole;3665 return AccessibilityRole::ListItem; 3666 3667 return AccessibilityRole::Unknown; 3667 3668 } 3668 3669 3669 3670 AccessibilityRole AccessibilityRenderObject::roleValueForMSAA() const 3670 3671 { 3671 if (m_roleForMSAA != UnknownRole)3672 if (m_roleForMSAA != AccessibilityRole::Unknown) 3672 3673 return m_roleForMSAA; 3673 3674 3674 3675 m_roleForMSAA = msaaRoleForRenderer(renderer()); 3675 3676 3676 if (m_roleForMSAA == UnknownRole)3677 if (m_roleForMSAA == AccessibilityRole::Unknown) 3677 3678 m_roleForMSAA = roleValue(); 3678 3679 -
trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp
r223728 r224074 112 112 String description = accessibilityDescription(); 113 113 if (!description.isEmpty()) 114 textOrder.append(AccessibilityText(description, A lternativeText));114 textOrder.append(AccessibilityText(description, AccessibilityTextSource::Alternative)); 115 115 116 116 String helptext = helpText(); 117 117 if (!helptext.isEmpty()) 118 textOrder.append(AccessibilityText(helptext, HelpText));118 textOrder.append(AccessibilityText(helptext, AccessibilityTextSource::Help)); 119 119 } 120 120 … … 218 218 219 219 AccessibilityObjectInclusion decision = defaultObjectInclusion(); 220 if (decision == IgnoreObject)220 if (decision == AccessibilityObjectInclusion::IgnoreObject) 221 221 return true; 222 222 … … 231 231 } 232 232 233 if (roleValue() == PresentationalRole|| inheritsPresentationalRole())233 if (roleValue() == AccessibilityRole::Presentational || inheritsPresentationalRole()) 234 234 return true; 235 235 236 if (ariaRoleAttribute() != UnknownRole)236 if (ariaRoleAttribute() != AccessibilityRole::Unknown) 237 237 return false; 238 238 … … 259 259 260 260 AccessibilityRole role = roleValue(); 261 if (role != SVGTextPathRole && role != SVGTSpanRole)261 if (role != AccessibilityRole::SVGTextPath && role != AccessibilityRole::SVGTSpan) 262 262 return false; 263 263 264 264 for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { 265 265 if (is<AccessibilityRenderObject>(*parent) && parent->element()->hasTagName(SVGNames::textTag)) 266 return parent->roleValue() == PresentationalRole;266 return parent->roleValue() == AccessibilityRole::Presentational; 267 267 } 268 268 … … 273 273 { 274 274 AccessibilityRole role = AccessibilityRenderObject::determineAriaRoleAttribute(); 275 if (role != PresentationalRole)275 if (role != AccessibilityRole::Presentational) 276 276 return role; 277 277 … … 281 281 for (const auto& child : childrenOfType<SVGElement>(*element())) { 282 282 if ((is<SVGTitleElement>(child) || is<SVGDescElement>(child))) 283 return UnknownRole;283 return AccessibilityRole::Unknown; 284 284 } 285 285 … … 289 289 AccessibilityRole AccessibilitySVGElement::determineAccessibilityRole() 290 290 { 291 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)291 if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown) 292 292 return m_ariaRole; 293 293 … … 295 295 296 296 if (m_renderer->isSVGShape() || m_renderer->isSVGPath() || m_renderer->isSVGImage() || is<SVGUseElement>(svgElement)) 297 return ImageRole;297 return AccessibilityRole::Image; 298 298 if (m_renderer->isSVGForeignObject() || is<SVGGElement>(svgElement)) 299 return GroupRole;299 return AccessibilityRole::Group; 300 300 if (m_renderer->isSVGText()) 301 return SVGTextRole;301 return AccessibilityRole::SVGText; 302 302 if (m_renderer->isSVGTextPath()) 303 return SVGTextPathRole;303 return AccessibilityRole::SVGTextPath; 304 304 if (m_renderer->isSVGTSpan()) 305 return SVGTSpanRole;305 return AccessibilityRole::SVGTSpan; 306 306 if (is<SVGAElement>(svgElement)) 307 return WebCoreLinkRole;307 return AccessibilityRole::WebCoreLink; 308 308 309 309 return AccessibilityRenderObject::determineAccessibilityRole(); -
trunk/Source/WebCore/accessibility/AccessibilitySVGRoot.h
r220551 r224074 48 48 49 49 WeakPtr<AccessibilityRenderObject> m_parent; 50 AccessibilityRole roleValue() const override { return GroupRole; }50 AccessibilityRole roleValue() const override { return AccessibilityRole::Group; } 51 51 }; 52 52 -
trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp
r219075 r224074 66 66 switch (orientation) { 67 67 // ARIA 1.1 Elements with the role scrollbar have an implicit aria-orientation value of vertical. 68 case AccessibilityOrientation Undefined:69 case AccessibilityOrientation Vertical:68 case AccessibilityOrientation::Undefined: 69 case AccessibilityOrientation::Vertical: 70 70 return m_verticalScrollbar ? m_verticalScrollbar.get() : nullptr; 71 case AccessibilityOrientation Horizontal:71 case AccessibilityOrientation::Horizontal: 72 72 return m_horizontalScrollbar ? m_horizontalScrollbar.get() : nullptr; 73 73 } -
trunk/Source/WebCore/accessibility/AccessibilityScrollView.h
r208179 r224074 37 37 public: 38 38 static Ref<AccessibilityScrollView> create(ScrollView*); 39 AccessibilityRole roleValue() const override { return ScrollAreaRole; }39 AccessibilityRole roleValue() const override { return AccessibilityRole::ScrollArea; } 40 40 ScrollView* scrollView() const { return m_scrollView; } 41 41 -
trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp
r190648 r224074 68 68 // ARIA 1.1 Elements with the role scrollbar have an implicit aria-orientation value of vertical. 69 69 if (!m_scrollbar) 70 return AccessibilityOrientation Vertical;70 return AccessibilityOrientation::Vertical; 71 71 72 72 if (m_scrollbar->orientation() == HorizontalScrollbar) 73 return AccessibilityOrientation Horizontal;73 return AccessibilityOrientation::Horizontal; 74 74 if (m_scrollbar->orientation() == VerticalScrollbar) 75 return AccessibilityOrientation Vertical;75 return AccessibilityOrientation::Vertical; 76 76 77 return AccessibilityOrientation Vertical;77 return AccessibilityOrientation::Vertical; 78 78 } 79 79 -
trunk/Source/WebCore/accessibility/AccessibilityScrollbar.h
r208179 r224074 50 50 LayoutRect elementRect() const override; 51 51 52 AccessibilityRole roleValue() const override { return ScrollBarRole; }52 AccessibilityRole roleValue() const override { return AccessibilityRole::ScrollBar; } 53 53 AccessibilityOrientation orientation() const override; 54 54 Document* document() const override; -
trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp
r223151 r224074 55 55 // Default to horizontal in the unknown case. 56 56 if (!m_renderer) 57 return AccessibilityOrientation Horizontal;57 return AccessibilityOrientation::Horizontal; 58 58 59 59 const RenderStyle& style = m_renderer->style(); … … 65 65 case MediaSliderPart: 66 66 case MediaFullScreenVolumeSliderPart: 67 return AccessibilityOrientation Horizontal;67 return AccessibilityOrientation::Horizontal; 68 68 69 69 case SliderThumbVerticalPart: 70 70 case SliderVerticalPart: 71 71 case MediaVolumeSliderPart: 72 return AccessibilityOrientation Vertical;72 return AccessibilityOrientation::Vertical; 73 73 74 74 default: 75 return AccessibilityOrientation Horizontal;75 return AccessibilityOrientation::Horizontal; 76 76 } 77 77 } … … 85 85 AXObjectCache* cache = m_renderer->document().axObjectCache(); 86 86 87 auto& thumb = downcast<AccessibilitySliderThumb>(*cache->getOrCreate( SliderThumbRole));87 auto& thumb = downcast<AccessibilitySliderThumb>(*cache->getOrCreate(AccessibilityRole::SliderThumb)); 88 88 thumb.setParent(this); 89 89 -
trunk/Source/WebCore/accessibility/AccessibilitySlider.h
r223728 r224074 48 48 AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override; 49 49 50 AccessibilityRole roleValue() const override { return SliderRole; }50 AccessibilityRole roleValue() const override { return AccessibilityRole::Slider; } 51 51 bool isSlider() const final { return true; } 52 52 bool isInputSlider() const override { return true; } … … 70 70 virtual ~AccessibilitySliderThumb() = default; 71 71 72 AccessibilityRole roleValue() const override { return SliderThumbRole; }72 AccessibilityRole roleValue() const override { return AccessibilityRole::SliderThumb; } 73 73 LayoutRect elementRect() const override; 74 74 -
trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
r223728 r224074 89 89 m_haveChildren = true; 90 90 91 auto& incrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate( SpinButtonPartRole));91 auto& incrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(AccessibilityRole::SpinButtonPart)); 92 92 incrementor.setIsIncrementor(true); 93 93 incrementor.setParent(this); 94 94 m_children.append(&incrementor); 95 95 96 auto& decrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate( SpinButtonPartRole));96 auto& decrementor = downcast<AccessibilitySpinButtonPart>(*cache->getOrCreate(AccessibilityRole::SpinButtonPart)); 97 97 decrementor.setIsIncrementor(false); 98 98 decrementor.setParent(this); -
trunk/Source/WebCore/accessibility/AccessibilitySpinButton.h
r223728 r224074 46 46 AccessibilitySpinButton(); 47 47 48 AccessibilityRole roleValue() const override { return SpinButtonRole; }48 AccessibilityRole roleValue() const override { return AccessibilityRole::SpinButton; } 49 49 bool isSpinButton() const override { return true; } 50 50 bool isNativeSpinButton() const override { return true; } … … 67 67 68 68 bool press() override; 69 AccessibilityRole roleValue() const override { return ButtonRole; }69 AccessibilityRole roleValue() const override { return AccessibilityRole::Button; } 70 70 bool isSpinButtonPart() const override { return true; } 71 71 LayoutRect elementRect() const override; -
trunk/Source/WebCore/accessibility/AccessibilityTable.cpp
r223728 r224074 77 77 78 78 AccessibilityRole ariaRole = ariaRoleAttribute(); 79 if (ariaRole != UnknownRole)79 if (ariaRole != AccessibilityRole::Unknown) 80 80 return true; 81 81 … … 417 417 unsigned length = maxColumnCount; 418 418 for (unsigned i = 0; i < length; ++i) { 419 auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate( ColumnRole));419 auto& column = downcast<AccessibilityTableColumn>(*axCache->getOrCreate(AccessibilityRole::Column)); 420 420 column.setColumnIndex((int)i); 421 421 column.setParent(this); … … 506 506 return m_headerContainer.get(); 507 507 508 auto& tableHeader = downcast<AccessibilityMockObject>(*axObjectCache()->getOrCreate( TableHeaderContainerRole));508 auto& tableHeader = downcast<AccessibilityMockObject>(*axObjectCache()->getOrCreate(AccessibilityRole::TableHeaderContainer)); 509 509 tableHeader.setParent(this); 510 510 … … 648 648 649 649 AccessibilityRole ariaRole = ariaRoleAttribute(); 650 if (ariaRole == GridRole || ariaRole == TreeGridRole)650 if (ariaRole == AccessibilityRole::Grid || ariaRole == AccessibilityRole::TreeGrid) 651 651 return ariaRole; 652 652 653 return TableRole;653 return AccessibilityRole::Table; 654 654 } 655 655 … … 657 657 { 658 658 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) 662 662 return true; 663 663 … … 672 672 String title = this->title(); 673 673 if (!title.isEmpty()) 674 textOrder.append(AccessibilityText(title, LabelByElementText));674 textOrder.append(AccessibilityText(title, AccessibilityTextSource::LabelByElement)); 675 675 } 676 676 -
trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp
r223728 r224074 59 59 { 60 60 AccessibilityObjectInclusion decision = defaultObjectInclusion(); 61 if (decision == IncludeObject)61 if (decision == AccessibilityObjectInclusion::IncludeObject) 62 62 return false; 63 if (decision == IgnoreObject)63 if (decision == AccessibilityObjectInclusion::IgnoreObject) 64 64 return true; 65 65 … … 129 129 // should not be exposed as a cell. Thus if we already know it's a cell, return that. 130 130 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) 132 132 return defaultRole; 133 133 … … 135 135 return defaultRole; 136 136 if (isColumnHeaderCell()) 137 return ColumnHeaderRole;137 return AccessibilityRole::ColumnHeader; 138 138 if (isRowHeaderCell()) 139 return RowHeaderRole;140 141 return CellRole;139 return AccessibilityRole::RowHeader; 140 141 return AccessibilityRole::Cell; 142 142 } 143 143 -
trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp
r223728 r224074 88 88 if (parentTable.isAriaTable()) { 89 89 for (const auto& cell : children()) { 90 if (cell->ariaRoleAttribute() == ColumnHeaderRole)90 if (cell->ariaRoleAttribute() == AccessibilityRole::ColumnHeader) 91 91 return cell.get(); 92 92 } -
trunk/Source/WebCore/accessibility/AccessibilityTableColumn.h
r208179 r224074 44 44 AccessibilityObject* headerObject(); 45 45 46 AccessibilityRole roleValue() const override { return ColumnRole; }46 AccessibilityRole roleValue() const override { return AccessibilityRole::Column; } 47 47 48 48 void setColumnIndex(int columnIndex) { m_columnIndex = columnIndex; } -
trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h
r208179 r224074 40 40 virtual ~AccessibilityTableHeaderContainer(); 41 41 42 AccessibilityRole roleValue() const override { return TableHeaderContainerRole; }42 AccessibilityRole roleValue() const override { return AccessibilityRole::TableHeaderContainer; } 43 43 44 44 void addChildren() override; -
trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp
r223728 r224074 60 60 return AccessibilityRenderObject::determineAccessibilityRole(); 61 61 62 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole)62 if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Unknown) 63 63 return m_ariaRole; 64 64 65 return RowRole;65 return AccessibilityRole::Row; 66 66 } 67 67 … … 81 81 { 82 82 AccessibilityObjectInclusion decision = defaultObjectInclusion(); 83 if (decision == IncludeObject)83 if (decision == AccessibilityObjectInclusion::IncludeObject) 84 84 return false; 85 if (decision == IgnoreObject)85 if (decision == AccessibilityObjectInclusion::IgnoreObject) 86 86 return true; 87 87 -
trunk/Source/WebCore/accessibility/AccessibilityTree.cpp
r223728 r224074 60 60 AccessibilityRole AccessibilityTree::determineAccessibilityRole() 61 61 { 62 if ((m_ariaRole = determineAriaRoleAttribute()) != TreeRole)62 if ((m_ariaRole = determineAriaRoleAttribute()) != AccessibilityRole::Tree) 63 63 return AccessibilityRenderObject::determineAccessibilityRole(); 64 64 65 return isTreeValid() ? TreeRole : GroupRole;65 return isTreeValid() ? AccessibilityRole::Tree : AccessibilityRole::Group; 66 66 } 67 67 -
trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
r223766 r224074 44 44 // If an object is being detached NOT because of the AXObjectCache being destroyed, 45 45 // then it's being removed from the accessibility tree and we should emit a signal. 46 if (detachmentType != CacheDestroyed) {46 if (detachmentType != AccessibilityDetachmentType::CacheDestroyed) { 47 47 if (obj->document()) { 48 48 // Look for the right object to emit the signal from, but using the implementation … … 245 245 246 246 case AXCurrentChanged: 247 atk_object_notify_state_change(axObject, ATK_STATE_ACTIVE, coreObject->ariaCurrentState() != A RIACurrentFalse);247 atk_object_notify_state_change(axObject, ATK_STATE_ACTIVE, coreObject->ariaCurrentState() != AccessibilityARIACurrentState::False); 248 248 break; 249 249 -
trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp
r208929 r224074 44 44 AccessibilityObject* parent = parentObject(); 45 45 if (!parent) 46 return DefaultBehavior;46 return AccessibilityObjectInclusion::DefaultBehavior; 47 47 48 48 // 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; 51 51 52 52 AccessibilityRole role = roleValue(); 53 53 // 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; 56 56 57 57 // When a list item is made up entirely of children (e.g. paragraphs) 58 58 // the list item gets ignored. We need it. 59 59 if (isGroup() && parent->isList()) 60 return IncludeObject;60 return AccessibilityObjectInclusion::IncludeObject; 61 61 62 62 // Entries and password fields have extraneous children which we want to ignore. 63 63 if (parent->isPasswordField() || parent->isTextControl()) 64 return IgnoreObject;64 return AccessibilityObjectInclusion::IgnoreObject; 65 65 66 66 // 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; 69 69 70 70 // The object containing the text should implement AtkText itself. 71 71 // 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; 74 74 75 75 // 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; 78 78 79 79 // 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; 82 82 83 83 // Never expose an unknown object, since AT's won't know what to 84 84 // 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; 90 90 91 91 // Lines past this point only make sense for AccessibilityRenderObjects. 92 92 RenderObject* renderObject = renderer(); 93 93 if (!renderObject) 94 return DefaultBehavior;94 return AccessibilityObjectInclusion::DefaultBehavior; 95 95 96 96 // We always want to include paragraphs that have rendered content. 97 97 // WebCore Accessibility does so unless there is a RenderBlock child. 98 if (role == ParagraphRole) {98 if (role == AccessibilityRole::Paragraph) { 99 99 auto child = childrenOfType<RenderBlock>(downcast<RenderElement>(*renderObject)).first(); 100 return child ? IncludeObject :DefaultBehavior;100 return child ? AccessibilityObjectInclusion::IncludeObject : AccessibilityObjectInclusion::DefaultBehavior; 101 101 } 102 102 … … 105 105 for (const auto& child : childrenOfType<RenderObject>(downcast<RenderElement>(*renderObject))) { 106 106 if (is<RenderInline>(child) || is<RenderText>(child) || is<HTMLSpanElement>(child.node())) 107 return IncludeObject;107 return AccessibilityObjectInclusion::IncludeObject; 108 108 } 109 return DefaultBehavior;109 return AccessibilityObjectInclusion::DefaultBehavior; 110 110 } 111 111 … … 113 113 // The text displayed by an ARIA menu item is exposed through the accessible name. 114 114 if (parent->isMenuItem()) 115 return IgnoreObject;115 return AccessibilityObjectInclusion::IgnoreObject; 116 116 117 117 // The text displayed in headings is typically exposed in the heading itself. 118 118 if (parent->isHeading()) 119 return IgnoreObject;119 return AccessibilityObjectInclusion::IgnoreObject; 120 120 121 121 // The text displayed in list items is typically exposed in the list item itself. 122 122 if (parent->isListItem()) 123 return IgnoreObject;123 return AccessibilityObjectInclusion::IgnoreObject; 124 124 125 125 // The text displayed in links is typically exposed in the link itself. 126 126 if (parent->isLink()) 127 return IgnoreObject;127 return AccessibilityObjectInclusion::IgnoreObject; 128 128 129 129 // FIXME: This next one needs some further consideration. But paragraphs are not 130 130 // typically huge (like divs). And ignoring anonymous block children of paragraphs 131 131 // 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; 136 136 } 137 137 138 138 Node* node = renderObject->node(); 139 139 if (!node) 140 return DefaultBehavior;140 return AccessibilityObjectInclusion::DefaultBehavior; 141 141 142 142 // We don't want <span> elements to show up in the accessibility hierarchy unless … … 145 145 // atk_component_grab_focus() to set the focus to it. 146 146 if (is<HTMLSpanElement>(node) && !canSetFocusAttribute() && !hasAttributesRequiredForInclusion() && !supportsARIAAttributes()) 147 return IgnoreObject;147 return AccessibilityObjectInclusion::IgnoreObject; 148 148 149 149 // If we include TextControlInnerTextElement children, changes to those children … … 152 152 // key echo enabled when typing in a password input. 153 153 if (is<TextControlInnerTextElement>(node)) 154 return IgnoreObject;155 156 return DefaultBehavior;154 return AccessibilityObjectInclusion::IgnoreObject; 155 156 return AccessibilityObjectInclusion::DefaultBehavior; 157 157 } 158 158 … … 184 184 // Check roles as the last fallback mechanism. 185 185 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; 187 187 } 188 188 -
trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp
r219544 r224074 448 448 449 449 #if ENABLE(INPUT_TYPE_COLOR) 450 if (coreObject->roleValue() == ColorWellRole) {450 if (coreObject->roleValue() == AccessibilityRole::ColorWell) { 451 451 int r, g, b; 452 452 coreObject->colorValue(r, g, b); … … 466 466 // Prefix a item number/bullet if needed 467 467 int actualEndOffset = endOffset == -1 ? ret.length() : endOffset; 468 if (coreObject->roleValue() == ListItemRole) {468 if (coreObject->roleValue() == AccessibilityRole::ListItem) { 469 469 RenderObject* objRenderer = coreObject->renderer(); 470 470 if (is<RenderListItem>(objRenderer)) { -
trunk/Source/WebCore/accessibility/atk/WebKitAccessibleUtil.cpp
r208479 r224074 97 97 for (const AccessibilityText& text : textOrder) { 98 98 // 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) 100 100 return text.text; 101 101 102 102 // If there's an element that labels this object and it's not exposed, then we should use 103 103 // that text as our title. 104 if (text.textSource == LabelByElementText && !coreObject->exposesTitleUIElement())104 if (text.textSource == AccessibilityTextSource::LabelByElement && !coreObject->exposesTitleUIElement()) 105 105 return text.text; 106 106 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) 109 109 return text.text; 110 110 111 111 // FIXME: The title tag is used in certain cases for the title. This usage should 112 112 // 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)) 114 114 return text.text; 115 115 } … … 125 125 bool visibleTextAvailable = false; 126 126 for (const AccessibilityText& text : textOrder) { 127 if (text.textSource == A lternativeText)127 if (text.textSource == AccessibilityTextSource::Alternative) 128 128 return text.text; 129 129 130 130 switch (text.textSource) { 131 case VisibleText:132 case ChildrenText:133 case LabelByElementText:131 case AccessibilityTextSource::Visible: 132 case AccessibilityTextSource::Children: 133 case AccessibilityTextSource::LabelByElement: 134 134 visibleTextAvailable = true; 135 135 default: … … 137 137 } 138 138 139 if (text.textSource == TitleTagText&& !visibleTextAvailable)139 if (text.textSource == AccessibilityTextSource::TitleTag && !visibleTextAvailable) 140 140 return text.text; 141 141 } -
trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
r223766 r224074 127 127 // in the order defined by that spec. So take the first thing that our platform 128 128 // 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) 130 130 return cacheAndReturnAtkProperty(object, AtkCachedAccessibleName, text.text); 131 131 } … … 147 147 // in the order defined by that spec. So take the first thing that our platform 148 148 // 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) 150 150 return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, text.text); 151 151 152 152 // If there is no other text alternative, the title tag contents will have been 153 153 // 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) 155 155 return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, text.text); 156 156 … … 186 186 if (AccessibilityObject* label = coreObject->titleUIElement()) 187 187 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) { 189 189 if (RenderBlock* renderFieldset = ancestorsOfType<RenderBlock>(*coreObject->renderer()).first()) { 190 190 if (renderFieldset->isFieldset()) { … … 456 456 } 457 457 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)) 460 460 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)) 462 462 attributeSet = addToAtkAttributeSet(attributeSet, "multiscript-type", "post"); 463 463 } … … 512 512 if (coreObject->hasAttribute(HTMLNames::aria_sortAttr)) { 513 513 switch (coreObject->sortDirection()) { 514 case SortDirectionInvalid:514 case AccessibilitySortDirection::Invalid: 515 515 break; 516 case SortDirectionAscending:516 case AccessibilitySortDirection::Ascending: 517 517 attributeSet = addToAtkAttributeSet(attributeSet, "sort", "ascending"); 518 518 break; 519 case SortDirectionDescending:519 case AccessibilitySortDirection::Descending: 520 520 attributeSet = addToAtkAttributeSet(attributeSet, "sort", "descending"); 521 521 break; 522 case SortDirectionOther:522 case AccessibilitySortDirection::Other: 523 523 attributeSet = addToAtkAttributeSet(attributeSet, "sort", "other"); 524 524 break; 525 default:525 case AccessibilitySortDirection::None: 526 526 attributeSet = addToAtkAttributeSet(attributeSet, "sort", "none"); 527 527 } … … 557 557 // The HTML AAM maps several elements to ARIA landmark roles. In order for the type of landmark 558 558 // 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()) 560 560 attributeSet = addToAtkAttributeSet(attributeSet, "xml-roles", computedRoleString.utf8().data()); 561 561 } … … 614 614 AccessibilityRole role = coreObject->roleValue(); 615 615 switch (role) { 616 case A pplicationAlertRole:616 case AccessibilityRole::ApplicationAlert: 617 617 return ATK_ROLE_ALERT; 618 case A pplicationAlertDialogRole:619 case A pplicationDialogRole:618 case AccessibilityRole::ApplicationAlertDialog: 619 case AccessibilityRole::ApplicationDialog: 620 620 return ATK_ROLE_DIALOG; 621 case A pplicationStatusRole:621 case AccessibilityRole::ApplicationStatus: 622 622 return ATK_ROLE_STATUSBAR; 623 case UnknownRole:623 case AccessibilityRole::Unknown: 624 624 return ATK_ROLE_UNKNOWN; 625 case A udioRole:625 case AccessibilityRole::Audio: 626 626 #if ATK_CHECK_VERSION(2, 11, 3) 627 627 return ATK_ROLE_AUDIO; 628 628 #endif 629 case VideoRole:629 case AccessibilityRole::Video: 630 630 #if ATK_CHECK_VERSION(2, 11, 3) 631 631 return ATK_ROLE_VIDEO; 632 632 #endif 633 633 return ATK_ROLE_EMBEDDED; 634 case ButtonRole:634 case AccessibilityRole::Button: 635 635 return ATK_ROLE_PUSH_BUTTON; 636 case SwitchRole:637 case ToggleButtonRole:636 case AccessibilityRole::Switch: 637 case AccessibilityRole::ToggleButton: 638 638 return ATK_ROLE_TOGGLE_BUTTON; 639 case RadioButtonRole:639 case AccessibilityRole::RadioButton: 640 640 return ATK_ROLE_RADIO_BUTTON; 641 case CheckBoxRole:641 case AccessibilityRole::CheckBox: 642 642 return ATK_ROLE_CHECK_BOX; 643 case SliderRole:643 case AccessibilityRole::Slider: 644 644 return ATK_ROLE_SLIDER; 645 case TabGroupRole:646 case TabListRole:645 case AccessibilityRole::TabGroup: 646 case AccessibilityRole::TabList: 647 647 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: 651 651 return ATK_ROLE_ENTRY; 652 case StaticTextRole:652 case AccessibilityRole::StaticText: 653 653 #if ATK_CHECK_VERSION(2, 15, 2) 654 654 return ATK_ROLE_STATIC; … … 656 656 return ATK_ROLE_TEXT; 657 657 #endif 658 case OutlineRole:659 case TreeRole:658 case AccessibilityRole::Outline: 659 case AccessibilityRole::Tree: 660 660 return ATK_ROLE_TREE; 661 case TreeItemRole:661 case AccessibilityRole::TreeItem: 662 662 return ATK_ROLE_TREE_ITEM; 663 case MenuBarRole:663 case AccessibilityRole::MenuBar: 664 664 return ATK_ROLE_MENU_BAR; 665 case MenuListPopupRole:666 case MenuRole:665 case AccessibilityRole::MenuListPopup: 666 case AccessibilityRole::Menu: 667 667 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: 671 671 return ATK_ROLE_MENU_ITEM; 672 case MenuItemCheckboxRole:672 case AccessibilityRole::MenuItemCheckbox: 673 673 return ATK_ROLE_CHECK_MENU_ITEM; 674 case MenuItemRadioRole:674 case AccessibilityRole::MenuItemRadio: 675 675 return ATK_ROLE_RADIO_MENU_ITEM; 676 case ColumnRole:676 case AccessibilityRole::Column: 677 677 // return ATK_ROLE_TABLE_COLUMN_HEADER; // Is this right? 678 678 return ATK_ROLE_UNKNOWN; // Matches Mozilla 679 case RowRole:679 case AccessibilityRole::Row: 680 680 return ATK_ROLE_TABLE_ROW; 681 case ToolbarRole:681 case AccessibilityRole::Toolbar: 682 682 return ATK_ROLE_TOOL_BAR; 683 case BusyIndicatorRole:683 case AccessibilityRole::BusyIndicator: 684 684 return ATK_ROLE_PROGRESS_BAR; // Is this right? 685 case ProgressIndicatorRole:685 case AccessibilityRole::ProgressIndicator: 686 686 return coreObject->isMeter() ? ATK_ROLE_LEVEL_BAR : ATK_ROLE_PROGRESS_BAR; 687 case WindowRole:687 case AccessibilityRole::Window: 688 688 return ATK_ROLE_WINDOW; 689 case PopUpButtonRole:689 case AccessibilityRole::PopUpButton: 690 690 return coreObject->ariaHasPopup() ? ATK_ROLE_PUSH_BUTTON : ATK_ROLE_COMBO_BOX; 691 case ComboBoxRole:691 case AccessibilityRole::ComboBox: 692 692 return ATK_ROLE_COMBO_BOX; 693 case SplitGroupRole:693 case AccessibilityRole::SplitGroup: 694 694 return ATK_ROLE_SPLIT_PANE; 695 case SplitterRole:695 case AccessibilityRole::Splitter: 696 696 return ATK_ROLE_SEPARATOR; 697 case ColorWellRole:697 case AccessibilityRole::ColorWell: 698 698 #if PLATFORM(GTK) 699 699 // ATK_ROLE_COLOR_CHOOSER is defined as a dialog (i.e. it's what appears when you push the button). 700 700 return ATK_ROLE_PUSH_BUTTON; 701 701 #endif 702 case ListRole:702 case AccessibilityRole::List: 703 703 return ATK_ROLE_LIST; 704 case ScrollBarRole:704 case AccessibilityRole::ScrollBar: 705 705 return ATK_ROLE_SCROLL_BAR; 706 case ScrollAreaRole:707 case TabPanelRole:706 case AccessibilityRole::ScrollArea: 707 case AccessibilityRole::TabPanel: 708 708 return ATK_ROLE_SCROLL_PANE; 709 case GridRole:710 case TableRole:709 case AccessibilityRole::Grid: 710 case AccessibilityRole::Table: 711 711 return ATK_ROLE_TABLE; 712 case TreeGridRole:712 case AccessibilityRole::TreeGrid: 713 713 return ATK_ROLE_TREE_TABLE; 714 case A pplicationRole:714 case AccessibilityRole::Application: 715 715 return ATK_ROLE_APPLICATION; 716 case A pplicationGroupRole: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: 722 722 return ATK_ROLE_PANEL; 723 case RowHeaderRole:723 case AccessibilityRole::RowHeader: 724 724 return ATK_ROLE_ROW_HEADER; 725 case ColumnHeaderRole:725 case AccessibilityRole::ColumnHeader: 726 726 return ATK_ROLE_COLUMN_HEADER; 727 case CaptionRole:727 case AccessibilityRole::Caption: 728 728 return ATK_ROLE_CAPTION; 729 case CellRole:730 case GridCellRole:729 case AccessibilityRole::Cell: 730 case AccessibilityRole::GridCell: 731 731 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: 735 735 return ATK_ROLE_LINK; 736 case ImageMapRole:736 case AccessibilityRole::ImageMap: 737 737 return ATK_ROLE_IMAGE_MAP; 738 case ImageRole:738 case AccessibilityRole::Image: 739 739 return ATK_ROLE_IMAGE; 740 case ListMarkerRole:740 case AccessibilityRole::ListMarker: 741 741 return ATK_ROLE_TEXT; 742 case DocumentArticleRole:742 case AccessibilityRole::DocumentArticle: 743 743 #if ATK_CHECK_VERSION(2, 11, 3) 744 744 return ATK_ROLE_ARTICLE; 745 745 #endif 746 case DocumentRole:746 case AccessibilityRole::Document: 747 747 return ATK_ROLE_DOCUMENT_FRAME; 748 case DocumentNoteRole:748 case AccessibilityRole::DocumentNote: 749 749 return ATK_ROLE_COMMENT; 750 case HeadingRole:750 case AccessibilityRole::Heading: 751 751 return ATK_ROLE_HEADING; 752 case ListBoxRole:752 case AccessibilityRole::ListBox: 753 753 // 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: 756 756 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: 760 760 return ATK_ROLE_PARAGRAPH; 761 case LabelRole:762 case LegendRole:761 case AccessibilityRole::Label: 762 case AccessibilityRole::Legend: 763 763 return ATK_ROLE_LABEL; 764 case BlockquoteRole:764 case AccessibilityRole::Blockquote: 765 765 #if ATK_CHECK_VERSION(2, 11, 3) 766 766 return ATK_ROLE_BLOCK_QUOTE; 767 767 #endif 768 case FootnoteRole:768 case AccessibilityRole::Footnote: 769 769 #if ATK_CHECK_VERSION(2, 25, 2) 770 770 return ATK_ROLE_FOOTNOTE; 771 771 #endif 772 case A pplicationTextGroupRole: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: 777 777 return ATK_ROLE_SECTION; 778 case FooterRole:778 case AccessibilityRole::Footer: 779 779 return ATK_ROLE_FOOTER; 780 case FormRole:780 case AccessibilityRole::Form: 781 781 #if ATK_CHECK_VERSION(2, 11, 3) 782 if (coreObject->ariaRoleAttribute() != UnknownRole)782 if (coreObject->ariaRoleAttribute() != AccessibilityRole::Unknown) 783 783 return ATK_ROLE_LANDMARK; 784 784 #endif 785 785 return ATK_ROLE_FORM; 786 case CanvasRole:786 case AccessibilityRole::Canvas: 787 787 return ATK_ROLE_CANVAS; 788 case HorizontalRuleRole:788 case AccessibilityRole::HorizontalRule: 789 789 return ATK_ROLE_SEPARATOR; 790 case SpinButtonRole:790 case AccessibilityRole::SpinButton: 791 791 return ATK_ROLE_SPIN_BUTTON; 792 case TabRole:792 case AccessibilityRole::Tab: 793 793 return ATK_ROLE_PAGE_TAB; 794 case UserInterfaceTooltipRole:794 case AccessibilityRole::UserInterfaceTooltip: 795 795 return ATK_ROLE_TOOL_TIP; 796 case WebAreaRole:796 case AccessibilityRole::WebArea: 797 797 return ATK_ROLE_DOCUMENT_WEB; 798 case WebApplicationRole:798 case AccessibilityRole::WebApplication: 799 799 return ATK_ROLE_EMBEDDED; 800 800 #if ATK_CHECK_VERSION(2, 11, 3) 801 case A pplicationLogRole:801 case AccessibilityRole::ApplicationLog: 802 802 return ATK_ROLE_LOG; 803 case A pplicationMarqueeRole:803 case AccessibilityRole::ApplicationMarquee: 804 804 return ATK_ROLE_MARQUEE; 805 case A pplicationTimerRole:805 case AccessibilityRole::ApplicationTimer: 806 806 return ATK_ROLE_TIMER; 807 case DefinitionRole:807 case AccessibilityRole::Definition: 808 808 return ATK_ROLE_DEFINITION; 809 case DocumentMathRole:809 case AccessibilityRole::DocumentMath: 810 810 return ATK_ROLE_MATH; 811 case MathElementRole:811 case AccessibilityRole::MathElement: 812 812 if (coreObject->isMathRow()) 813 813 return ATK_ROLE_PANEL; … … 825 825 if (coreObject->isMathSquareRoot() || coreObject->isMathRoot()) 826 826 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)) 829 829 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)) 832 832 return ATK_ROLE_SUPERSCRIPT; 833 833 #endif … … 837 837 #endif 838 838 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: 847 847 return ATK_ROLE_LANDMARK; 848 848 #endif 849 849 #if ATK_CHECK_VERSION(2, 11, 4) 850 case DescriptionListRole:850 case AccessibilityRole::DescriptionList: 851 851 return ATK_ROLE_DESCRIPTION_LIST; 852 case TermRole:853 case DescriptionListTermRole:852 case AccessibilityRole::Term: 853 case AccessibilityRole::DescriptionListTerm: 854 854 return ATK_ROLE_DESCRIPTION_TERM; 855 case DescriptionListDetailRole:855 case AccessibilityRole::DescriptionListDetail: 856 856 return ATK_ROLE_DESCRIPTION_VALUE; 857 857 #endif 858 case InlineRole:858 case AccessibilityRole::Inline: 859 859 #if ATK_CHECK_VERSION(2, 15, 4) 860 860 if (coreObject->isSubscriptStyleGroup()) … … 865 865 #if ATK_CHECK_VERSION(2, 15, 2) 866 866 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: 870 870 return ATK_ROLE_STATIC; 871 871 #endif … … 931 931 // Please keep the state list in alphabetical order 932 932 if ((isListBoxOption && coreObject->isSelectedOptionActive()) 933 || coreObject->ariaCurrentState() != A RIACurrentFalse)933 || coreObject->ariaCurrentState() != AccessibilityARIACurrentState::False) 934 934 atk_state_set_add_state(stateSet, ATK_STATE_ACTIVE); 935 935 … … 973 973 } 974 974 975 if (coreObject->orientation() == AccessibilityOrientation Horizontal)975 if (coreObject->orientation() == AccessibilityOrientation::Horizontal) 976 976 atk_state_set_add_state(stateSet, ATK_STATE_HORIZONTAL); 977 else if (coreObject->orientation() == AccessibilityOrientation Vertical)977 else if (coreObject->orientation() == AccessibilityOrientation::Vertical) 978 978 atk_state_set_add_state(stateSet, ATK_STATE_VERTICAL); 979 979 … … 984 984 atk_state_set_add_state(stateSet, ATK_STATE_INDETERMINATE); 985 985 else if (coreObject->isCheckboxOrRadio() || coreObject->isMenuItem() || coreObject->isToggleButton()) { 986 if (coreObject->checkboxOrRadioValue() == ButtonStateMixed)986 if (coreObject->checkboxOrRadioValue() == AccessibilityButtonState::Mixed) 987 987 atk_state_set_add_state(stateSet, ATK_STATE_INDETERMINATE); 988 988 } … … 1040 1040 1041 1041 // Mutually exclusive, so we group these two 1042 if (coreObject->roleValue() == TextAreaRole|| coreObject->ariaIsMultiline())1042 if (coreObject->roleValue() == AccessibilityRole::TextArea || coreObject->ariaIsMultiline()) 1043 1043 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) 1045 1045 atk_state_set_add_state(stateSet, ATK_STATE_SINGLE_LINE); 1046 1046 … … 1261 1261 static bool roleIsTextType(AccessibilityRole role) 1262 1262 { 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; 1266 1274 } 1267 1275 … … 1297 1305 1298 1306 // Text, Editable Text & Hypertext 1299 if (role == StaticTextRole|| coreObject->isMenuListOption())1307 if (role == AccessibilityRole::StaticText || coreObject->isMenuListOption()) 1300 1308 interfaceMask |= 1 << WAIText; 1301 1309 else if (coreObject->isTextControl() || coreObject->isNonNativeTextControl()) { … … 1304 1312 interfaceMask |= 1 << WAIEditableText; 1305 1313 } else if (!coreObject->isWebArea()) { 1306 if (role != TableRole) {1314 if (role != AccessibilityRole::Table) { 1307 1315 interfaceMask |= 1 << WAIHypertext; 1308 1316 if ((renderer && renderer->childrenInline()) || roleIsTextType(role) || coreObject->isMathToken()) … … 1312 1320 // Add the TEXT interface for list items whose 1313 1321 // first accessible child has a text renderer 1314 if (role == ListItemRole) {1322 if (role == AccessibilityRole::ListItem) { 1315 1323 const AccessibilityObject::AccessibilityChildrenVector& children = coreObject->children(); 1316 1324 if (children.size()) { … … 1330 1338 1331 1339 #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) 1333 1341 interfaceMask |= 1 << WAITableCell; 1334 1342 #endif 1335 1343 1336 1344 // Document 1337 if (role == WebAreaRole)1345 if (role == AccessibilityRole::WebArea) 1338 1346 interfaceMask |= 1 << WAIDocument; 1339 1347 … … 1344 1352 #if ENABLE(INPUT_TYPE_COLOR) 1345 1353 // Color type. 1346 if (role == ColorWellRole)1354 if (role == AccessibilityRole::ColorWell) 1347 1355 interfaceMask |= 1 << WAIText; 1348 1356 #endif … … 1413 1421 ASSERT(accessible->m_object); 1414 1422 1415 if (accessible->m_object->roleValue() == WebAreaRole)1423 if (accessible->m_object->roleValue() == AccessibilityRole::WebArea) 1416 1424 atk_object_notify_state_change(ATK_OBJECT(accessible), ATK_STATE_DEFUNCT, true); 1417 1425 -
trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
r223476 r224074 67 67 AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesObject() const 68 68 { 69 return DefaultBehavior;69 return AccessibilityObjectInclusion::DefaultBehavior; 70 70 } 71 71 … … 82 82 { 83 83 if (is<HTMLInputElement>(node())) 84 return roleValue() == PopUpButtonRole;84 return roleValue() == AccessibilityRole::PopUpButton; 85 85 return false; 86 86 } -
trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
r223881 r224074 343 343 // Elements that can be returned when performing fuzzy hit testing. 344 344 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: 369 369 return !m_object->accessibilityIsIgnored(); 370 370 default: … … 515 515 516 516 AccessibilityRole roleValue = m_object->roleValue(); 517 return roleValue == A pplicationDialogRole || roleValue == ApplicationAlertDialogRole;517 return roleValue == AccessibilityRole::ApplicationDialog || roleValue == AccessibilityRole::ApplicationAlertDialog; 518 518 } 519 519 … … 521 521 { 522 522 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: 535 535 return YES; 536 536 default: … … 543 543 auto matchFunc = [] (const AccessibilityObject& object) { 544 544 AccessibilityRole role = object.roleValue(); 545 return role == TreeRole;545 return role == AccessibilityRole::Tree; 546 546 }; 547 547 … … 555 555 auto matchFunc = [] (const AccessibilityObject& object) { 556 556 AccessibilityRole role = object.roleValue(); 557 return role == ListRole || role == ListBoxRole;557 return role == AccessibilityRole::List || role == AccessibilityRole::ListBox; 558 558 }; 559 559 … … 566 566 { 567 567 if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*m_object, false, [] (const AccessibilityObject& object) { 568 return object.roleValue() == DocumentArticleRole;568 return object.roleValue() == AccessibilityRole::DocumentArticle; 569 569 })) 570 570 return parent->wrapper(); … … 619 619 for (AccessibilityObject* parent = m_object->parentObject(); parent != nil; parent = parent->parentObject()) { 620 620 AccessibilityRole parentRole = parent->roleValue(); 621 if (parentRole == WebAreaRole)621 if (parentRole == AccessibilityRole::WebArea) 622 622 break; 623 623 624 624 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]; 649 645 } 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; 663 662 } 664 663 … … 677 676 678 677 // 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)) 680 679 return NO; 681 680 … … 742 741 if (m_object->isPasswordField()) 743 742 traits |= [self _axSecureTextFieldTrait]; 744 if (m_object->roleValue() == SearchFieldRole)743 if (m_object->roleValue() == AccessibilityRole::SearchField) 745 744 traits |= [self _axSearchFieldTrait]; 746 if (m_object->roleValue() == TextAreaRole)745 if (m_object->roleValue() == AccessibilityRole::TextArea) 747 746 traits |= [self _axTextAreaTrait]; 748 747 return traits; … … 757 756 uint64_t traits = [self _axWebContentTrait]; 758 757 switch (role) { 759 case LinkRole:760 case WebCoreLinkRole:761 762 763 764 765 case TextFieldRole:766 case SearchFieldRole:767 case TextAreaRole:768 769 770 case ImageRole:771 772 773 case TabRole:774 775 776 case ButtonRole:777 778 779 780 781 case PopUpButtonRole:782 783 784 case RadioButtonRole:785 786 787 case ToggleButtonRole:788 case CheckBoxRole:789 case SwitchRole:790 791 792 case HeadingRole:793 794 795 case StaticTextRole:796 797 798 case SliderRole:799 800 801 case MenuButtonRole:802 case MenuItemRole:803 804 805 case MenuItemCheckboxRole:806 case MenuItemRadioRole:807 808 809 810 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; 811 810 } 812 811 … … 850 849 851 850 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]) 881 895 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]) 891 906 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; 1024 1022 } 1025 1023 … … 1043 1041 if (m_object->isTextControl()) 1044 1042 return NO; 1045 if (m_object->roleValue() == PopUpButtonRole)1043 if (m_object->roleValue() == AccessibilityRole::PopUpButton) 1046 1044 return NO; 1047 1045 if (m_object->isFileUploadButton()) … … 1127 1125 1128 1126 // 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) 1130 1128 landmarkDescription = AXFooterRoleDescriptionText(); 1131 1129 1132 1130 NSMutableString *result = [NSMutableString string]; 1133 if (m_object->roleValue() == HorizontalRuleRole)1131 if (m_object->roleValue() == AccessibilityRole::HorizontalRule) 1134 1132 appendStringToResult(result, AXHorizontalRuleDescriptionText()); 1135 1133 1136 1134 appendStringToResult(result, axTitle); 1137 1135 appendStringToResult(result, axDescription); … … 1391 1389 1392 1390 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) { 1394 1392 switch (m_object->checkboxOrRadioValue()) { 1395 case ButtonStateOff:1393 case AccessibilityButtonState::Off: 1396 1394 return [NSString stringWithFormat:@"%d", 0]; 1397 case ButtonStateOn:1395 case AccessibilityButtonState::On: 1398 1396 return [NSString stringWithFormat:@"%d", 1]; 1399 case ButtonStateMixed:1397 case AccessibilityButtonState::Mixed: 1400 1398 return [NSString stringWithFormat:@"%d", 2]; 1401 1399 } … … 1451 1449 return NO; 1452 1450 1453 return m_object->roleValue() == ComboBoxRole;1451 return m_object->roleValue() == AccessibilityRole::ComboBox; 1454 1452 } 1455 1453 … … 1671 1669 1672 1670 AccessibilityRole role = m_object->roleValue(); 1673 if (role != LinkRole && role != WebCoreLinkRole)1671 if (role != AccessibilityRole::Link && role != AccessibilityRole::WebCoreLink) 1674 1672 return NO; 1675 1673 … … 1683 1681 for (unsigned i = 0; i < childrenSize; ++i) { 1684 1682 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) 1686 1684 return NO; 1687 1685 } … … 1827 1825 // If this static text inside of a link, it should use its parent's linked element. 1828 1826 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()) 1830 1828 element = m_object->parentObjectUnignored(); 1831 1829 … … 2001 1999 // Use this to check if an object is inside a treeitem object. 2002 2000 if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*object, true, [] (const AccessibilityObject& object) { 2003 return object.roleValue() == TreeItemRole;2001 return object.roleValue() == AccessibilityRole::TreeItem; 2004 2002 })) 2005 2003 return const_cast<AccessibilityObject*>(parent); … … 2023 2021 // In those cases we should focus on the link itself. 2024 2022 for (AccessibilityObject* object = m_object; object != nil; object = object->parentObject()) { 2025 if (object->roleValue() == WebAreaRole)2023 if (object->roleValue() == AccessibilityRole::WebArea) 2026 2024 break; 2027 2025 … … 2972 2970 2973 2971 switch (m_object->ariaCurrentState()) { 2974 case A RIACurrentFalse:2972 case AccessibilityARIACurrentState::False: 2975 2973 return @"false"; 2976 case A RIACurrentPage:2974 case AccessibilityARIACurrentState::Page: 2977 2975 return @"page"; 2978 case A RIACurrentStep:2976 case AccessibilityARIACurrentState::Step: 2979 2977 return @"step"; 2980 case A RIACurrentLocation:2978 case AccessibilityARIACurrentState::Location: 2981 2979 return @"location"; 2982 case A RIACurrentTime:2980 case AccessibilityARIACurrentState::Time: 2983 2981 return @"time"; 2984 case A RIACurrentDate:2982 case AccessibilityARIACurrentState::Date: 2985 2983 return @"date"; 2986 default: 2987 case ARIACurrentTrue: 2984 case AccessibilityARIACurrentState::True: 2988 2985 return @"true"; 2989 2986 } … … 2996 2993 2997 2994 switch (m_object->sortDirection()) { 2998 case SortDirectionAscending:2995 case AccessibilitySortDirection::Ascending: 2999 2996 return @"ascending"; 3000 case SortDirectionDescending:2997 case AccessibilitySortDirection::Descending: 3001 2998 return @"descending"; 3002 case SortDirectionOther:2999 case AccessibilitySortDirection::Other: 3003 3000 return @"other"; 3004 default:3005 case SortDirectionNone:3001 case AccessibilitySortDirection::Invalid: 3002 case AccessibilitySortDirection::None: 3006 3003 return nil; 3007 3004 } … … 3127 3124 return NO; 3128 3125 3129 return m_object->roleValue() == DocumentMathRole;3126 return m_object->roleValue() == AccessibilityRole::DocumentMath; 3130 3127 } 3131 3128 … … 3143 3140 return nil; 3144 3141 3145 if (m_object->roleValue() == MathElementRole) {3142 if (m_object->roleValue() == AccessibilityRole::MathElement) { 3146 3143 if (m_object->isMathFraction()) 3147 3144 return @"AXMathFraction"; -
trunk/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
r207583 r224074 83 83 { 84 84 if (isMenuListPopup() || isMenuListOption()) 85 return IgnoreObject;85 return AccessibilityObjectInclusion::IgnoreObject; 86 86 87 if (roleValue() == CaptionRole)88 return IgnoreObject;87 if (roleValue() == AccessibilityRole::Caption) 88 return AccessibilityObjectInclusion::IgnoreObject; 89 89 90 if (roleValue() == MarkRole)91 return IncludeObject;90 if (roleValue() == AccessibilityRole::Mark) 91 return AccessibilityObjectInclusion::IncludeObject; 92 92 93 93 // Never expose an unknown object on the Mac. Clients of the AX API will not know what to do with it. 94 94 // 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; 97 97 98 if (roleValue() == InlineRole && !isStyleFormatGroup())99 return IgnoreObject;98 if (roleValue() == AccessibilityRole::Inline && !isStyleFormatGroup()) 99 return AccessibilityObjectInclusion::IgnoreObject; 100 100 101 101 if (RenderObject* renderer = this->renderer()) { … … 104 104 Element* element = this->element(); 105 105 if (element && ancestorsOfType<HTMLFieldSetElement>(*element).first()) 106 return IgnoreObject;106 return AccessibilityObjectInclusion::IgnoreObject; 107 107 } 108 108 } 109 109 110 return DefaultBehavior;110 return AccessibilityObjectInclusion::DefaultBehavior; 111 111 } 112 112 -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
r222898 r224074 327 327 { 328 328 // 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) 330 330 return [NSString string]; 331 331 … … 341 341 for (const auto& text : textOrder) { 342 342 // If we have alternative text, then we should not expose a title. 343 if (text.textSource == A lternativeText)343 if (text.textSource == AccessibilityTextSource::Alternative) 344 344 break; 345 345 346 346 // 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) 348 348 return text.text; 349 349 350 350 // If there's an element that labels this object and it's not exposed, then we should use 351 351 // that text as our title. 352 if (text.textSource == LabelByElementText && !m_object->exposesTitleUIElement())352 if (text.textSource == AccessibilityTextSource::LabelByElement && !m_object->exposesTitleUIElement()) 353 353 return text.text; 354 354 } … … 361 361 // Static text objects should not have a description. Its content is communicated in its AXValue. 362 362 // 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()) 364 364 return [NSString string]; 365 365 … … 370 370 bool visibleTextAvailable = false; 371 371 for (const auto& text : textOrder) { 372 if (text.textSource == A lternativeText) {372 if (text.textSource == AccessibilityTextSource::Alternative) { 373 373 [returnText appendString:text.text]; 374 374 break; … … 377 377 switch (text.textSource) { 378 378 // These are sub-components of one element (Attachment) that are re-combined in OSX and iOS. 379 case TitleText:380 case SubtitleText:381 case Ac tionText: {379 case AccessibilityTextSource::Title: 380 case AccessibilityTextSource::Subtitle: 381 case AccessibilityTextSource::Action: { 382 382 if (!text.text.length()) 383 383 break; … … 387 387 break; 388 388 } 389 case VisibleText:390 case ChildrenText:391 case LabelByElementText:389 case AccessibilityTextSource::Visible: 390 case AccessibilityTextSource::Children: 391 case AccessibilityTextSource::LabelByElement: 392 392 visibleTextAvailable = true; 393 393 break; … … 396 396 } 397 397 398 if (text.textSource == TitleTagText&& !visibleTextAvailable) {398 if (text.textSource == AccessibilityTextSource::TitleTag && !visibleTextAvailable) { 399 399 [returnText appendString:text.text]; 400 400 break; … … 412 412 bool descriptiveTextAvailable = false; 413 413 for (const auto& text : textOrder) { 414 if (text.textSource == HelpText || text.textSource == SummaryText)414 if (text.textSource == AccessibilityTextSource::Help || text.textSource == AccessibilityTextSource::Summary) 415 415 return text.text; 416 416 … … 418 418 // But, if those ARE available, then the title tag should be used for help text instead. 419 419 switch (text.textSource) { 420 case A lternativeText: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: 424 424 descriptiveTextAvailable = true; 425 425 break; … … 428 428 } 429 429 430 if (text.textSource == TitleTagText&& descriptiveTextAvailable)430 if (text.textSource == AccessibilityTextSource::TitleTag && descriptiveTextAvailable) 431 431 return text.text; 432 432 } … … 499 499 { 500 500 switch (m_object->roleValue()) { 501 case LandmarkBannerRole:501 case AccessibilityRole::LandmarkBanner: 502 502 return AXARIAContentGroupText(@"ARIALandmarkBanner"); 503 case LandmarkComplementaryRole:503 case AccessibilityRole::LandmarkComplementary: 504 504 return AXARIAContentGroupText(@"ARIALandmarkComplementary"); 505 case LandmarkContentInfoRole:505 case AccessibilityRole::LandmarkContentInfo: 506 506 return AXARIAContentGroupText(@"ARIALandmarkContentInfo"); 507 case LandmarkMainRole:507 case AccessibilityRole::LandmarkMain: 508 508 return AXARIAContentGroupText(@"ARIALandmarkMain"); 509 case LandmarkNavigationRole:509 case AccessibilityRole::LandmarkNavigation: 510 510 return AXARIAContentGroupText(@"ARIALandmarkNavigation"); 511 case LandmarkDocRegionRole:512 case LandmarkRegionRole:511 case AccessibilityRole::LandmarkDocRegion: 512 case AccessibilityRole::LandmarkRegion: 513 513 return AXARIAContentGroupText(@"ARIALandmarkRegion"); 514 case LandmarkSearchRole:514 case AccessibilityRole::LandmarkSearch: 515 515 return AXARIAContentGroupText(@"ARIALandmarkSearch"); 516 case A pplicationAlertRole:516 case AccessibilityRole::ApplicationAlert: 517 517 return AXARIAContentGroupText(@"ARIAApplicationAlert"); 518 case A pplicationAlertDialogRole:518 case AccessibilityRole::ApplicationAlertDialog: 519 519 return AXARIAContentGroupText(@"ARIAApplicationAlertDialog"); 520 case A pplicationDialogRole:520 case AccessibilityRole::ApplicationDialog: 521 521 return AXARIAContentGroupText(@"ARIAApplicationDialog"); 522 case A pplicationLogRole:522 case AccessibilityRole::ApplicationLog: 523 523 return AXARIAContentGroupText(@"ARIAApplicationLog"); 524 case A pplicationMarqueeRole:524 case AccessibilityRole::ApplicationMarquee: 525 525 return AXARIAContentGroupText(@"ARIAApplicationMarquee"); 526 case A pplicationStatusRole:526 case AccessibilityRole::ApplicationStatus: 527 527 return AXARIAContentGroupText(@"ARIAApplicationStatus"); 528 case A pplicationTimerRole:528 case AccessibilityRole::ApplicationTimer: 529 529 return AXARIAContentGroupText(@"ARIAApplicationTimer"); 530 case DocumentRole:530 case AccessibilityRole::Document: 531 531 return AXARIAContentGroupText(@"ARIADocument"); 532 case DocumentArticleRole:532 case AccessibilityRole::DocumentArticle: 533 533 return AXARIAContentGroupText(@"ARIADocumentArticle"); 534 case DocumentMathRole:534 case AccessibilityRole::DocumentMath: 535 535 return AXARIAContentGroupText(@"ARIADocumentMath"); 536 case DocumentNoteRole:536 case AccessibilityRole::DocumentNote: 537 537 return AXARIAContentGroupText(@"ARIADocumentNote"); 538 case UserInterfaceTooltipRole:538 case AccessibilityRole::UserInterfaceTooltip: 539 539 return AXARIAContentGroupText(@"ARIAUserInterfaceTooltip"); 540 case TabPanelRole:540 case AccessibilityRole::TabPanel: 541 541 return AXARIAContentGroupText(@"ARIATabPanel"); 542 case WebApplicationRole:542 case AccessibilityRole::WebApplication: 543 543 return AXARIAContentGroupText(@"ARIAWebApplication"); 544 544 default: … … 653 653 { 654 654 const SearchKeyEntry searchKeys[] = { 655 { NSAccessibilityAnyTypeSearchKey, A nyTypeSearchKey},656 { NSAccessibilityArticleSearchKey, A rticleSearchKey},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 } 695 695 }; 696 696 … … 705 705 { 706 706 if (value.isEmpty()) 707 return A nyTypeSearchKey;707 return AccessibilitySearchKey::AnyType; 708 708 709 709 static const AccessibilitySearchKeyMap* searchKeyMap = createAccessibilitySearchKeyMap(); 710 710 AccessibilitySearchKey searchKey = searchKeyMap->get(value); 711 return s earchKey ? searchKey : AnyTypeSearchKey;711 return static_cast<int>(searchKey) ? searchKey : AccessibilitySearchKey::AnyType; 712 712 } 713 713 … … 722 722 id searchKeyParameter = [parameterizedAttribute objectForKey:@"AXSearchKey"]; 723 723 724 AccessibilitySearchDirection direction = SearchDirectionNext;724 AccessibilitySearchDirection direction = AccessibilitySearchDirection::Next; 725 725 if ([directionParameter isKindOfClass:[NSString class]]) 726 direction = [directionParameter isEqualToString:@"AXDirectionNext"] ? SearchDirectionNext : SearchDirectionPrevious;726 direction = [directionParameter isEqualToString:@"AXDirectionNext"] ? AccessibilitySearchDirection::Next : AccessibilitySearchDirection::Previous; 727 727 728 728 bool immediateDescendantsOnly = false; -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
r223048 r224074 495 495 NSArray *searchStringsParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextSearchStrings]; 496 496 497 AccessibilitySelectTextActivity activity = FindAndSelectActivity;497 AccessibilitySelectTextActivity activity = AccessibilitySelectTextActivity::FindAndSelect; 498 498 if ([activityParameter isKindOfClass:[NSString class]]) { 499 499 if ([activityParameter isEqualToString:NSAccessibilitySelectTextActivityFindAndReplace]) 500 activity = FindAndReplaceActivity;500 activity = AccessibilitySelectTextActivity::FindAndReplace; 501 501 else if ([activityParameter isEqualToString:kAXSelectTextActivityFindAndCapitalize]) 502 activity = FindAndCapitalize;502 activity = AccessibilitySelectTextActivity::FindAndCapitalize; 503 503 else if ([activityParameter isEqualToString:kAXSelectTextActivityFindAndLowercase]) 504 activity = FindAndLowercase;504 activity = AccessibilitySelectTextActivity::FindAndLowercase; 505 505 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; 510 510 if ([ambiguityResolutionParameter isKindOfClass:[NSString class]]) { 511 511 if ([ambiguityResolutionParameter isEqualToString:NSAccessibilitySelectTextAmbiguityResolutionClosestAfterSelection]) 512 ambiguityResolution = ClosestAfterSelectionAmbiguityResolution;512 ambiguityResolution = AccessibilitySelectTextAmbiguityResolution::ClosestAfter; 513 513 else if ([ambiguityResolutionParameter isEqualToString:NSAccessibilitySelectTextAmbiguityResolutionClosestBeforeSelection]) 514 ambiguityResolution = ClosestBeforeSelectionAmbiguityResolution;514 ambiguityResolution = AccessibilitySelectTextAmbiguityResolution::ClosestBefore; 515 515 } 516 516 … … 1199 1199 1200 1200 AccessibilitySortDirection sortDirection = m_object->sortDirection(); 1201 if (sortDirection != SortDirectionNone && sortDirection != SortDirectionInvalid)1201 if (sortDirection != AccessibilitySortDirection::None && sortDirection != AccessibilitySortDirection::Invalid) 1202 1202 [additional addObject:NSAccessibilitySortDirectionAttribute]; 1203 1203 … … 1662 1662 1663 1663 // Only expose AXARIACurrent attribute when the element is set to be current item. 1664 if (m_object->ariaCurrentState() != A RIACurrentFalse)1664 if (m_object->ariaCurrentState() != AccessibilityARIACurrentState::False) 1665 1665 objectAttributes = [objectAttributes arrayByAddingObjectsFromArray:@[ NSAccessibilityARIACurrentAttribute ]]; 1666 1666 … … 1850 1850 1851 1851 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 { A pplicationRole, 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 { A pplicationAlertRole, NSAccessibilityGroupRole },1933 { A pplicationAlertDialogRole, NSAccessibilityGroupRole },1934 { A pplicationDialogRole, NSAccessibilityGroupRole },1935 { A pplicationGroupRole, NSAccessibilityGroupRole },1936 { A pplicationTextGroupRole, NSAccessibilityGroupRole },1937 { A pplicationLogRole, NSAccessibilityGroupRole },1938 { A pplicationMarqueeRole, NSAccessibilityGroupRole },1939 { A pplicationStatusRole, NSAccessibilityGroupRole },1940 { A pplicationTimerRole, 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 { A udioRole, 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 }, 1986 1986 }; 1987 1987 AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap; … … 1989 1989 const unsigned numRoles = sizeof(roles) / sizeof(roles[0]); 1990 1990 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); 1992 1992 return roleMap; 1993 1993 } … … 1995 1995 static NSString* roleValueToNSString(AccessibilityRole value) 1996 1996 { 1997 ASSERT( value);1997 ASSERT(static_cast<int>(value)); 1998 1998 static const AccessibilityRoleMap& roleMap = createAccessibilityRoleMap(); 1999 return roleMap.get( value);1999 return roleMap.get(static_cast<int>(value)); 2000 2000 } 2001 2001 … … 2009 2009 AccessibilityRole role = m_object->roleValue(); 2010 2010 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; 2013 2013 2014 2014 // The mfenced element creates anonymous RenderMathMLOperators with no RenderText 2015 2015 // descendants. Because these anonymous renderers are the only accessible objects 2016 // containing the operator, assign StaticTextRole.2016 // containing the operator, assign AccessibilityRole::StaticText. 2017 2017 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; 2022 2022 NSString* string = roleValueToNSString(role); 2023 2023 if (string != nil) … … 2042 2042 2043 2043 AccessibilityRole role = m_object->roleValue(); 2044 if (role == HorizontalRuleRole)2044 if (role == AccessibilityRole::HorizontalRule) 2045 2045 return NSAccessibilityContentSeparatorSubrole; 2046 if (role == ToggleButtonRole)2046 if (role == AccessibilityRole::ToggleButton) 2047 2047 return NSAccessibilityToggleSubrole; 2048 2048 … … 2074 2074 // ARIA content subroles. 2075 2075 switch (role) { 2076 case LandmarkBannerRole:2077 2078 case LandmarkComplementaryRole:2079 2080 2081 case FooterRole:2082 case LandmarkContentInfoRole:2083 2084 case LandmarkMainRole:2085 2086 case LandmarkNavigationRole:2087 2088 case LandmarkDocRegionRole:2089 case LandmarkRegionRole:2090 2091 case LandmarkSearchRole:2092 2093 case ApplicationAlertRole:2094 2095 case ApplicationAlertDialogRole:2096 2097 case ApplicationDialogRole:2098 2099 case ApplicationGroupRole:2100 case ApplicationTextGroupRole:2101 case FeedRole:2102 case FootnoteRole:2103 2104 case ApplicationLogRole:2105 2106 case ApplicationMarqueeRole:2107 2108 case ApplicationStatusRole:2109 2110 case ApplicationTimerRole:2111 2112 case DocumentRole:2113 2114 case DocumentArticleRole:2115 2116 case DocumentMathRole:2117 2118 case DocumentNoteRole:2119 2120 case UserInterfaceTooltipRole:2121 2122 case TabPanelRole:2123 2124 case DefinitionRole:2125 2126 case DescriptionListTermRole:2127 case TermRole:2128 2129 case DescriptionListDetailRole:2130 2131 case WebApplicationRole:2132 2133 2134 2135 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) { 2139 2139 if (m_object->isMathFraction()) 2140 2140 return @"AXMathFraction"; … … 2173 2173 } 2174 2174 2175 if (role == VideoRole)2175 if (role == AccessibilityRole::Video) 2176 2176 return @"AXVideo"; 2177 if (role == A udioRole)2177 if (role == AccessibilityRole::Audio) 2178 2178 return @"AXAudio"; 2179 if (role == DetailsRole)2179 if (role == AccessibilityRole::Details) 2180 2180 return @"AXDetails"; 2181 if (role == SummaryRole)2181 if (role == AccessibilityRole::Summary) 2182 2182 return @"AXSummary"; 2183 if (role == TimeRole)2183 if (role == AccessibilityRole::Time) 2184 2184 return @"AXTimeGroup"; 2185 2185 … … 2217 2217 // Ruby subroles 2218 2218 switch (role) { 2219 case RubyBaseRole:2219 case AccessibilityRole::RubyBase: 2220 2220 return NSAccessibilityRubyBaseSubrole; 2221 case RubyBlockRole:2221 case AccessibilityRole::RubyBlock: 2222 2222 return NSAccessibilityRubyBlockSubrole; 2223 case RubyInlineRole:2223 case AccessibilityRole::RubyInline: 2224 2224 return NSAccessibilityRubyInlineSubrole; 2225 case RubyRunRole:2225 case AccessibilityRole::RubyRun: 2226 2226 return NSAccessibilityRubyRunSubrole; 2227 case RubyTextRole:2227 case AccessibilityRole::RubyText: 2228 2228 return NSAccessibilityRubyTextSubrole; 2229 2229 default: … … 2263 2263 2264 2264 switch (m_object->roleValue()) { 2265 case A udioRole:2265 case AccessibilityRole::Audio: 2266 2266 return localizedMediaControlElementString("AudioElement"); 2267 case DefinitionRole:2267 case AccessibilityRole::Definition: 2268 2268 return AXDefinitionText(); 2269 case DescriptionListTermRole:2270 case TermRole:2269 case AccessibilityRole::DescriptionListTerm: 2270 case AccessibilityRole::Term: 2271 2271 return AXDescriptionListTermText(); 2272 case DescriptionListDetailRole:2272 case AccessibilityRole::DescriptionListDetail: 2273 2273 return AXDescriptionListDetailText(); 2274 case DetailsRole:2274 case AccessibilityRole::Details: 2275 2275 return AXDetailsText(); 2276 case FeedRole:2276 case AccessibilityRole::Feed: 2277 2277 return AXFeedText(); 2278 case FigureRole:2278 case AccessibilityRole::Figure: 2279 2279 return AXFigureText(); 2280 case FooterRole:2280 case AccessibilityRole::Footer: 2281 2281 return AXFooterRoleDescriptionText(); 2282 case MarkRole:2282 case AccessibilityRole::Mark: 2283 2283 return AXMarkText(); 2284 case VideoRole:2284 case AccessibilityRole::Video: 2285 2285 return localizedMediaControlElementString("VideoElement"); 2286 2286 default: … … 2342 2342 } 2343 2343 2344 if (m_object->roleValue() == HorizontalRuleRole)2344 if (m_object->roleValue() == AccessibilityRole::HorizontalRule) 2345 2345 return AXHorizontalRuleDescriptionText(); 2346 2346 … … 2619 2619 if (m_object->supportsRangeValue()) 2620 2620 return [NSNumber numberWithFloat:m_object->valueForRange()]; 2621 if (m_object->roleValue() == SliderThumbRole)2621 if (m_object->roleValue() == AccessibilityRole::SliderThumb) 2622 2622 return [NSNumber numberWithFloat:m_object->parentObject()->valueForRange()]; 2623 2623 if (m_object->isHeading()) … … 2626 2626 if (m_object->isCheckboxOrRadio() || m_object->isMenuItem() || m_object->isSwitch() || m_object->isToggleButton()) { 2627 2627 switch (m_object->checkboxOrRadioValue()) { 2628 case ButtonStateOff:2629 2630 case ButtonStateOn:2631 2632 case ButtonStateMixed:2633 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]; 2634 2634 } 2635 2635 } … … 2669 2669 if ([attributeName isEqualToString: NSAccessibilityMinValueAttribute]) { 2670 2670 // 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)) 2672 2672 return @0; 2673 2673 return [NSNumber numberWithFloat:m_object->minValueForRange()]; … … 2676 2676 if ([attributeName isEqualToString: NSAccessibilityMaxValueAttribute]) { 2677 2677 // 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)) 2679 2679 return @0; 2680 2680 return [NSNumber numberWithFloat:m_object->maxValueForRange()]; … … 3006 3006 if ([attributeName isEqualToString:NSAccessibilityOrientationAttribute]) { 3007 3007 AccessibilityOrientation elementOrientation = m_object->orientation(); 3008 if (elementOrientation == AccessibilityOrientation Vertical)3008 if (elementOrientation == AccessibilityOrientation::Vertical) 3009 3009 return NSAccessibilityVerticalOrientationValue; 3010 if (elementOrientation == AccessibilityOrientation Horizontal)3010 if (elementOrientation == AccessibilityOrientation::Horizontal) 3011 3011 return NSAccessibilityHorizontalOrientationValue; 3012 if (elementOrientation == AccessibilityOrientation Undefined)3012 if (elementOrientation == AccessibilityOrientation::Undefined) 3013 3013 return NSAccessibilityUnknownOrientationValue; 3014 3014 return nil; … … 3016 3016 3017 3017 if ([attributeName isEqualToString:NSAccessibilityHorizontalScrollBarAttribute]) { 3018 AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation Horizontal);3018 AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation::Horizontal); 3019 3019 if (scrollBar) 3020 3020 return scrollBar->wrapper(); … … 3022 3022 } 3023 3023 if ([attributeName isEqualToString:NSAccessibilityVerticalScrollBarAttribute]) { 3024 AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation Vertical);3024 AccessibilityObject* scrollBar = m_object->scrollBar(AccessibilityOrientation::Vertical); 3025 3025 if (scrollBar) 3026 3026 return scrollBar->wrapper(); … … 3030 3030 if ([attributeName isEqualToString:NSAccessibilitySortDirectionAttribute]) { 3031 3031 switch (m_object->sortDirection()) { 3032 case SortDirectionAscending:3033 3034 case SortDirectionDescending:3035 3036 3037 3032 case AccessibilitySortDirection::Ascending: 3033 return NSAccessibilityAscendingSortDirectionValue; 3034 case AccessibilitySortDirection::Descending: 3035 return NSAccessibilityDescendingSortDirectionValue; 3036 default: 3037 return NSAccessibilityUnknownSortDirectionValue; 3038 3038 } 3039 3039 } … … 3482 3482 - (void)accessibilityPerformShowMenuAction 3483 3483 { 3484 if (m_object->roleValue() == ComboBoxRole)3484 if (m_object->roleValue() == AccessibilityRole::ComboBox) 3485 3485 m_object->setIsExpanded(true); 3486 3486 else { … … 3630 3630 m_object->setSelected([number boolValue]); 3631 3631 } else if ([attributeName isEqualToString: NSAccessibilitySelectedChildrenAttribute]) { 3632 if (!array || m_object->roleValue() != ListBoxRole) 3632 if (!array) 3633 return; 3634 if (m_object->roleValue() != AccessibilityRole::ListBox) 3633 3635 return; 3634 3636 AccessibilityObject::AccessibilityChildrenVector selectedChildren; -
trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp
r224002 r224074 1729 1729 supportsChecked = axObject->supportsChecked(); 1730 1730 if (supportsChecked) { 1731 intcheckValue = axObject->checkboxOrRadioValue(); // Element using aria-checked.1732 if (checkValue == 1)1731 AccessibilityButtonState checkValue = axObject->checkboxOrRadioValue(); // Element using aria-checked. 1732 if (checkValue == AccessibilityButtonState::On) 1733 1733 checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::True; 1734 else if (checkValue == 2)1734 else if (checkValue == AccessibilityButtonState::Mixed) 1735 1735 checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::Mixed; 1736 1736 else if (axObject->isChecked()) // Native checkbox. … … 1749 1749 1750 1750 switch (axObject->ariaCurrentState()) { 1751 case A RIACurrentFalse:1751 case AccessibilityARIACurrentState::False: 1752 1752 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::False; 1753 1753 break; 1754 case A RIACurrentPage:1754 case AccessibilityARIACurrentState::Page: 1755 1755 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Page; 1756 1756 break; 1757 case A RIACurrentStep:1757 case AccessibilityARIACurrentState::Step: 1758 1758 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Step; 1759 1759 break; 1760 case A RIACurrentLocation:1760 case AccessibilityARIACurrentState::Location: 1761 1761 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Location; 1762 1762 break; 1763 case A RIACurrentDate:1763 case AccessibilityARIACurrentState::Date: 1764 1764 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Date; 1765 1765 break; 1766 case A RIACurrentTime:1766 case AccessibilityARIACurrentState::Time: 1767 1767 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::Time; 1768 1768 break; 1769 default: 1770 case ARIACurrentTrue: 1769 case AccessibilityARIACurrentState::True: 1771 1770 currentState = Inspector::Protocol::DOM::AccessibilityProperties::Current::True; 1772 1771 break;
Note:
See TracChangeset
for help on using the changeset viewer.