Index: content/browser/accessibility/browser_accessibility_cocoa.mm |
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm |
index e2082fb320453fffd49e0753b00ed213550c7c9d..22e858a87710de214f424fd2d106796e57245c9c 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -22,11 +22,12 @@ |
// this object. |
extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element); |
-typedef WebAccessibility::StringAttribute StringAttribute; |
+using content::AccessibilityNodeData; |
+typedef AccessibilityNodeData::StringAttribute StringAttribute; |
namespace { |
-// Returns an autoreleased copy of the WebAccessibility's attribute. |
+// Returns an autoreleased copy of the AccessibilityNodeData's attribute. |
NSString* NSStringForStringAttribute( |
const std::map<StringAttribute, string16>& attributes, |
StringAttribute attribute) { |
@@ -40,11 +41,11 @@ NSString* NSStringForStringAttribute( |
} |
struct MapEntry { |
- WebAccessibility::Role webKitValue; |
+ AccessibilityNodeData::Role webKitValue; |
NSString* nativeValue; |
}; |
-typedef std::map<WebAccessibility::Role, NSString*> RoleMap; |
+typedef std::map<AccessibilityNodeData::Role, NSString*> RoleMap; |
struct AttributeToMethodNameEntry { |
NSString* attribute; |
@@ -87,7 +88,7 @@ const AttributeToMethodNameEntry attributeToMethodNameContainer[] = { |
{ @"AXVisited", @"visited" }, |
}; |
-// GetState checks the bitmask used in webaccessibility.h to check |
+// GetState checks the bitmask used in AccessibilityNodeData to check |
// if the given state was set on the accessibility object. |
bool GetState(BrowserAccessibility* accessibility, int state) { |
return ((accessibility->state() >> state) & 1); |
@@ -95,105 +96,118 @@ bool GetState(BrowserAccessibility* accessibility, int state) { |
RoleMap BuildRoleMap() { |
const MapEntry roles[] = { |
- { WebAccessibility::ROLE_ALERT, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_ALERT_DIALOG, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_ANNOTATION, NSAccessibilityUnknownRole }, |
- { WebAccessibility::ROLE_APPLICATION, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_ARTICLE, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_BROWSER, NSAccessibilityBrowserRole }, |
- { WebAccessibility::ROLE_BUSY_INDICATOR, NSAccessibilityBusyIndicatorRole }, |
- { WebAccessibility::ROLE_BUTTON, NSAccessibilityButtonRole }, |
- { WebAccessibility::ROLE_CELL, @"AXCell" }, |
- { WebAccessibility::ROLE_CHECKBOX, NSAccessibilityCheckBoxRole }, |
- { WebAccessibility::ROLE_COLOR_WELL, NSAccessibilityColorWellRole }, |
- { WebAccessibility::ROLE_COLUMN, NSAccessibilityColumnRole }, |
- { WebAccessibility::ROLE_COLUMN_HEADER, @"AXCell" }, |
- { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, |
+ { AccessibilityNodeData::ROLE_ALERT, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_ALERT_DIALOG, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_ANNOTATION, NSAccessibilityUnknownRole }, |
+ { AccessibilityNodeData::ROLE_APPLICATION, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_ARTICLE, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_BROWSER, NSAccessibilityBrowserRole }, |
+ { AccessibilityNodeData::ROLE_BUSY_INDICATOR, |
+ NSAccessibilityBusyIndicatorRole }, |
+ { AccessibilityNodeData::ROLE_BUTTON, NSAccessibilityButtonRole }, |
+ { AccessibilityNodeData::ROLE_CELL, @"AXCell" }, |
+ { AccessibilityNodeData::ROLE_CHECKBOX, NSAccessibilityCheckBoxRole }, |
+ { AccessibilityNodeData::ROLE_COLOR_WELL, NSAccessibilityColorWellRole }, |
+ { AccessibilityNodeData::ROLE_COLUMN, NSAccessibilityColumnRole }, |
+ { AccessibilityNodeData::ROLE_COLUMN_HEADER, @"AXCell" }, |
+ { AccessibilityNodeData::ROLE_DEFINITION_LIST_DEFINITION, |
NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_DEFINITION_LIST_TERM, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_DIALOG, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_DIRECTORY, NSAccessibilityListRole }, |
- { WebAccessibility::ROLE_DISCLOSURE_TRIANGLE, |
+ { AccessibilityNodeData::ROLE_DEFINITION_LIST_TERM, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_DIALOG, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_DIRECTORY, NSAccessibilityListRole }, |
+ { AccessibilityNodeData::ROLE_DISCLOSURE_TRIANGLE, |
NSAccessibilityDisclosureTriangleRole }, |
- { WebAccessibility::ROLE_DOCUMENT, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_DRAWER, NSAccessibilityDrawerRole }, |
- { WebAccessibility::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, |
- { WebAccessibility::ROLE_FOOTER, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_GRID, NSAccessibilityGridRole }, |
- { WebAccessibility::ROLE_GROUP, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, |
- { WebAccessibility::ROLE_HEADING, @"AXHeading" }, |
- { WebAccessibility::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, |
- { WebAccessibility::ROLE_IGNORED, NSAccessibilityUnknownRole }, |
- { WebAccessibility::ROLE_IMAGE, NSAccessibilityImageRole }, |
- { WebAccessibility::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, |
- { WebAccessibility::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, |
- { WebAccessibility::ROLE_LANDMARK_APPLICATION, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_BANNER, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_COMPLEMENTARY, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_CONTENTINFO, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_MAIN, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_NAVIGATION, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LANDMARK_SEARCH, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LINK, NSAccessibilityLinkRole }, |
- { WebAccessibility::ROLE_LIST, NSAccessibilityListRole }, |
- { WebAccessibility::ROLE_LIST_ITEM, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LIST_MARKER, @"AXListMarker" }, |
- { WebAccessibility::ROLE_LISTBOX, NSAccessibilityListRole }, |
- { WebAccessibility::ROLE_LISTBOX_OPTION, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_LOG, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_MARQUEE, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_MATH, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_MATTE, NSAccessibilityMatteRole }, |
- { WebAccessibility::ROLE_MENU, NSAccessibilityMenuRole }, |
- { WebAccessibility::ROLE_MENU_ITEM, NSAccessibilityMenuItemRole }, |
- { WebAccessibility::ROLE_MENU_BUTTON, NSAccessibilityButtonRole }, |
- { WebAccessibility::ROLE_MENU_LIST_OPTION, NSAccessibilityMenuItemRole }, |
- { WebAccessibility::ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole }, |
- { WebAccessibility::ROLE_NOTE, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_OUTLINE, NSAccessibilityOutlineRole }, |
- { WebAccessibility::ROLE_POPUP_BUTTON, NSAccessibilityPopUpButtonRole }, |
- { WebAccessibility::ROLE_PROGRESS_INDICATOR, |
+ { AccessibilityNodeData::ROLE_DOCUMENT, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_DRAWER, NSAccessibilityDrawerRole }, |
+ { AccessibilityNodeData::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, |
+ { AccessibilityNodeData::ROLE_FOOTER, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_GRID, NSAccessibilityGridRole }, |
+ { AccessibilityNodeData::ROLE_GROUP, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, |
+ { AccessibilityNodeData::ROLE_HEADING, @"AXHeading" }, |
+ { AccessibilityNodeData::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, |
+ { AccessibilityNodeData::ROLE_IGNORED, NSAccessibilityUnknownRole }, |
+ { AccessibilityNodeData::ROLE_IMAGE, NSAccessibilityImageRole }, |
+ { AccessibilityNodeData::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, |
+ { AccessibilityNodeData::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_BANNER, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_MAIN, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LINK, NSAccessibilityLinkRole }, |
+ { AccessibilityNodeData::ROLE_LIST, NSAccessibilityListRole }, |
+ { AccessibilityNodeData::ROLE_LIST_ITEM, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LIST_MARKER, @"AXListMarker" }, |
+ { AccessibilityNodeData::ROLE_LISTBOX, NSAccessibilityListRole }, |
+ { AccessibilityNodeData::ROLE_LISTBOX_OPTION, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_LOG, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_MARQUEE, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_MATH, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_MATTE, NSAccessibilityMatteRole }, |
+ { AccessibilityNodeData::ROLE_MENU, NSAccessibilityMenuRole }, |
+ { AccessibilityNodeData::ROLE_MENU_ITEM, NSAccessibilityMenuItemRole }, |
+ { AccessibilityNodeData::ROLE_MENU_BUTTON, NSAccessibilityButtonRole }, |
+ { AccessibilityNodeData::ROLE_MENU_LIST_OPTION, |
+ NSAccessibilityMenuItemRole }, |
+ { AccessibilityNodeData::ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole }, |
+ { AccessibilityNodeData::ROLE_NOTE, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_OUTLINE, NSAccessibilityOutlineRole }, |
+ { AccessibilityNodeData::ROLE_POPUP_BUTTON, |
+ NSAccessibilityPopUpButtonRole }, |
+ { AccessibilityNodeData::ROLE_PROGRESS_INDICATOR, |
NSAccessibilityProgressIndicatorRole }, |
- { WebAccessibility::ROLE_RADIO_BUTTON, NSAccessibilityRadioButtonRole }, |
- { WebAccessibility::ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole }, |
- { WebAccessibility::ROLE_REGION, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_ROOT_WEB_AREA, @"AXWebArea" }, |
- { WebAccessibility::ROLE_ROW, NSAccessibilityRowRole }, |
- { WebAccessibility::ROLE_ROW_HEADER, @"AXCell" }, |
- { WebAccessibility::ROLE_RULER, NSAccessibilityRulerRole }, |
- { WebAccessibility::ROLE_RULER_MARKER, NSAccessibilityRulerMarkerRole }, |
+ { AccessibilityNodeData::ROLE_RADIO_BUTTON, |
+ NSAccessibilityRadioButtonRole }, |
+ { AccessibilityNodeData::ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole }, |
+ { AccessibilityNodeData::ROLE_REGION, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_ROOT_WEB_AREA, @"AXWebArea" }, |
+ { AccessibilityNodeData::ROLE_ROW, NSAccessibilityRowRole }, |
+ { AccessibilityNodeData::ROLE_ROW_HEADER, @"AXCell" }, |
+ { AccessibilityNodeData::ROLE_RULER, NSAccessibilityRulerRole }, |
+ { AccessibilityNodeData::ROLE_RULER_MARKER, |
+ NSAccessibilityRulerMarkerRole }, |
// TODO(dtseng): we don't correctly support the attributes for these roles. |
- // { WebAccessibility::ROLE_SCROLLAREA, NSAccessibilityScrollAreaRole }, |
- // { WebAccessibility::ROLE_SCROLLBAR, NSAccessibilityScrollBarRole }, |
- { WebAccessibility::ROLE_SHEET, NSAccessibilitySheetRole }, |
- { WebAccessibility::ROLE_SLIDER, NSAccessibilitySliderRole }, |
- { WebAccessibility::ROLE_SLIDER_THUMB, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_SPLITTER, NSAccessibilitySplitterRole }, |
- { WebAccessibility::ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole }, |
- { WebAccessibility::ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole }, |
- { WebAccessibility::ROLE_STATUS, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole }, |
- { WebAccessibility::ROLE_TAB, NSAccessibilityRadioButtonRole }, |
- { WebAccessibility::ROLE_TAB_LIST, NSAccessibilityTabGroupRole }, |
- { WebAccessibility::ROLE_TAB_PANEL, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_TABLE, NSAccessibilityTableRole }, |
- { WebAccessibility::ROLE_TABLE_HEADER_CONTAINER, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_TAB_GROUP_UNUSED, NSAccessibilityTabGroupRole }, |
- { WebAccessibility::ROLE_TEXTAREA, NSAccessibilityTextAreaRole }, |
- { WebAccessibility::ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole }, |
- { WebAccessibility::ROLE_TIMER, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_TOOLBAR, NSAccessibilityToolbarRole }, |
- { WebAccessibility::ROLE_TOOLTIP, NSAccessibilityGroupRole }, |
- { WebAccessibility::ROLE_TREE, NSAccessibilityOutlineRole }, |
- { WebAccessibility::ROLE_TREE_GRID, NSAccessibilityTableRole }, |
- { WebAccessibility::ROLE_TREE_ITEM, NSAccessibilityRowRole }, |
- { WebAccessibility::ROLE_VALUE_INDICATOR, |
+ // { AccessibilityNodeData::ROLE_SCROLLAREA, |
+ // NSAccessibilityScrollAreaRole }, |
+ // { AccessibilityNodeData::ROLE_SCROLLBAR, NSAccessibilityScrollBarRole }, |
+ { AccessibilityNodeData::ROLE_SHEET, NSAccessibilitySheetRole }, |
+ { AccessibilityNodeData::ROLE_SLIDER, NSAccessibilitySliderRole }, |
+ { AccessibilityNodeData::ROLE_SLIDER_THUMB, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_SPLITTER, NSAccessibilitySplitterRole }, |
+ { AccessibilityNodeData::ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole }, |
+ { AccessibilityNodeData::ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole }, |
+ { AccessibilityNodeData::ROLE_STATUS, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole }, |
+ { AccessibilityNodeData::ROLE_TAB, NSAccessibilityRadioButtonRole }, |
+ { AccessibilityNodeData::ROLE_TAB_LIST, NSAccessibilityTabGroupRole }, |
+ { AccessibilityNodeData::ROLE_TAB_PANEL, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_TABLE, NSAccessibilityTableRole }, |
+ { AccessibilityNodeData::ROLE_TABLE_HEADER_CONTAINER, |
+ NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_TAB_GROUP_UNUSED, |
+ NSAccessibilityTabGroupRole }, |
+ { AccessibilityNodeData::ROLE_TEXTAREA, NSAccessibilityTextAreaRole }, |
+ { AccessibilityNodeData::ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole }, |
+ { AccessibilityNodeData::ROLE_TIMER, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_TOOLBAR, NSAccessibilityToolbarRole }, |
+ { AccessibilityNodeData::ROLE_TOOLTIP, NSAccessibilityGroupRole }, |
+ { AccessibilityNodeData::ROLE_TREE, NSAccessibilityOutlineRole }, |
+ { AccessibilityNodeData::ROLE_TREE_GRID, NSAccessibilityTableRole }, |
+ { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityRowRole }, |
+ { AccessibilityNodeData::ROLE_VALUE_INDICATOR, |
NSAccessibilityValueIndicatorRole }, |
- { WebAccessibility::ROLE_WEBCORE_LINK, NSAccessibilityLinkRole }, |
- { WebAccessibility::ROLE_WEB_AREA, @"AXWebArea" }, |
- { WebAccessibility::ROLE_WINDOW, NSAccessibilityUnknownRole }, |
+ { AccessibilityNodeData::ROLE_WEBCORE_LINK, NSAccessibilityLinkRole }, |
+ { AccessibilityNodeData::ROLE_WEB_AREA, @"AXWebArea" }, |
+ { AccessibilityNodeData::ROLE_WINDOW, NSAccessibilityUnknownRole }, |
}; |
RoleMap role_map; |
@@ -203,8 +217,8 @@ RoleMap BuildRoleMap() { |
} |
// A mapping of webkit roles to native roles. |
-NSString* NativeRoleFromWebAccessibilityRole( |
- const WebAccessibility::Role& role) { |
+NSString* NativeRoleFromAccessibilityNodeDataRole( |
+ const AccessibilityNodeData::Role& role) { |
CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role, |
(BuildRoleMap())); |
RoleMap::iterator it = web_accessibility_to_native_role.find(role); |
@@ -216,32 +230,35 @@ NSString* NativeRoleFromWebAccessibilityRole( |
RoleMap BuildSubroleMap() { |
const MapEntry subroles[] = { |
- { WebAccessibility::ROLE_ALERT, @"AXApplicationAlert" }, |
- { WebAccessibility::ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" }, |
- { WebAccessibility::ROLE_ARTICLE, @"AXDocumentArticle" }, |
- { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, @"AXDefinition" }, |
- { WebAccessibility::ROLE_DEFINITION_LIST_TERM, @"AXTerm" }, |
- { WebAccessibility::ROLE_DIALOG, @"AXApplicationDialog" }, |
- { WebAccessibility::ROLE_DOCUMENT, @"AXDocument" }, |
- { WebAccessibility::ROLE_FOOTER, @"AXLandmarkContentInfo" }, |
- { WebAccessibility::ROLE_LANDMARK_APPLICATION, @"AXLandmarkApplication" }, |
- { WebAccessibility::ROLE_LANDMARK_BANNER, @"AXLandmarkBanner" }, |
- { WebAccessibility::ROLE_LANDMARK_COMPLEMENTARY, |
+ { AccessibilityNodeData::ROLE_ALERT, @"AXApplicationAlert" }, |
+ { AccessibilityNodeData::ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" }, |
+ { AccessibilityNodeData::ROLE_ARTICLE, @"AXDocumentArticle" }, |
+ { AccessibilityNodeData::ROLE_DEFINITION_LIST_DEFINITION, @"AXDefinition" }, |
+ { AccessibilityNodeData::ROLE_DEFINITION_LIST_TERM, @"AXTerm" }, |
+ { AccessibilityNodeData::ROLE_DIALOG, @"AXApplicationDialog" }, |
+ { AccessibilityNodeData::ROLE_DOCUMENT, @"AXDocument" }, |
+ { AccessibilityNodeData::ROLE_FOOTER, @"AXLandmarkContentInfo" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION, |
+ @"AXLandmarkApplication" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_BANNER, @"AXLandmarkBanner" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY, |
@"AXLandmarkComplementary" }, |
- { WebAccessibility::ROLE_LANDMARK_CONTENTINFO, @"AXLandmarkContentInfo" }, |
- { WebAccessibility::ROLE_LANDMARK_MAIN, @"AXLandmarkMain" }, |
- { WebAccessibility::ROLE_LANDMARK_NAVIGATION, @"AXLandmarkNavigation" }, |
- { WebAccessibility::ROLE_LANDMARK_SEARCH, @"AXLandmarkSearch" }, |
- { WebAccessibility::ROLE_LOG, @"AXApplicationLog" }, |
- { WebAccessibility::ROLE_MARQUEE, @"AXApplicationMarquee" }, |
- { WebAccessibility::ROLE_MATH, @"AXDocumentMath" }, |
- { WebAccessibility::ROLE_NOTE, @"AXDocumentNote" }, |
- { WebAccessibility::ROLE_REGION, @"AXDocumentRegion" }, |
- { WebAccessibility::ROLE_STATUS, @"AXApplicationStatus" }, |
- { WebAccessibility::ROLE_TAB_PANEL, @"AXTabPanel" }, |
- { WebAccessibility::ROLE_TIMER, @"AXApplicationTimer" }, |
- { WebAccessibility::ROLE_TOOLTIP, @"AXUserInterfaceTooltip" }, |
- { WebAccessibility::ROLE_TREE_ITEM, NSAccessibilityOutlineRowSubrole }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO, |
+ @"AXLandmarkContentInfo" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_MAIN, @"AXLandmarkMain" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION, |
+ @"AXLandmarkNavigation" }, |
+ { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, @"AXLandmarkSearch" }, |
+ { AccessibilityNodeData::ROLE_LOG, @"AXApplicationLog" }, |
+ { AccessibilityNodeData::ROLE_MARQUEE, @"AXApplicationMarquee" }, |
+ { AccessibilityNodeData::ROLE_MATH, @"AXDocumentMath" }, |
+ { AccessibilityNodeData::ROLE_NOTE, @"AXDocumentNote" }, |
+ { AccessibilityNodeData::ROLE_REGION, @"AXDocumentRegion" }, |
+ { AccessibilityNodeData::ROLE_STATUS, @"AXApplicationStatus" }, |
+ { AccessibilityNodeData::ROLE_TAB_PANEL, @"AXTabPanel" }, |
+ { AccessibilityNodeData::ROLE_TIMER, @"AXApplicationTimer" }, |
+ { AccessibilityNodeData::ROLE_TOOLTIP, @"AXUserInterfaceTooltip" }, |
+ { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityOutlineRowSubrole }, |
}; |
RoleMap subrole_map; |
@@ -251,8 +268,8 @@ RoleMap BuildSubroleMap() { |
} |
// A mapping of webkit roles to native subroles. |
-NSString* NativeSubroleFromWebAccessibilityRole( |
- const WebAccessibility::Role& role) { |
+NSString* NativeSubroleFromAccessibilityNodeDataRole( |
+ const AccessibilityNodeData::Role& role) { |
CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole, |
(BuildSubroleMap())); |
RoleMap::iterator it = web_accessibility_to_native_subrole.find(role); |
@@ -304,33 +321,33 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSString*)accessKey { |
return NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_ACCESS_KEY); |
+ AccessibilityNodeData::ATTR_ACCESS_KEY); |
} |
- (NSNumber*)ariaAtomic { |
bool boolValue = false; |
browserAccessibility_->GetBoolAttribute( |
- WebAccessibility::ATTR_LIVE_ATOMIC, &boolValue); |
+ AccessibilityNodeData::ATTR_LIVE_ATOMIC, &boolValue); |
return [NSNumber numberWithBool:boolValue]; |
} |
- (NSNumber*)ariaBusy { |
bool boolValue = false; |
browserAccessibility_->GetBoolAttribute( |
- WebAccessibility::ATTR_LIVE_BUSY, &boolValue); |
+ AccessibilityNodeData::ATTR_LIVE_BUSY, &boolValue); |
return [NSNumber numberWithBool:boolValue]; |
} |
- (NSString*)ariaLive { |
return NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_LIVE_STATUS); |
+ AccessibilityNodeData::ATTR_LIVE_STATUS); |
} |
- (NSString*)ariaRelevant { |
return NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_LIVE_RELEVANT); |
+ AccessibilityNodeData::ATTR_LIVE_RELEVANT); |
} |
// Returns an array of BrowserAccessibilityCocoa objects, representing the |
@@ -392,7 +409,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
const std::map<StringAttribute, string16>& attributes = |
browserAccessibility_->string_attributes(); |
std::map<StringAttribute, string16>::const_iterator iter = |
- attributes.find(WebAccessibility::ATTR_DESCRIPTION); |
+ attributes.find(AccessibilityNodeData::ATTR_DESCRIPTION); |
if (iter != attributes.end()) |
return base::SysUTF16ToNSString(iter->second); |
@@ -407,7 +424,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
// The remaining case is an image where there's no other title. |
// Return the base part of the filename as the description. |
- iter = attributes.find(WebAccessibility::ATTR_URL); |
+ iter = attributes.find(AccessibilityNodeData::ATTR_URL); |
if (iter != attributes.end()) { |
string16 filename = iter->second; |
// Given a url like http://foo.com/bar/baz.png, just return the |
@@ -425,7 +442,8 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSNumber*)enabled { |
return [NSNumber numberWithBool: |
- !GetState(browserAccessibility_, WebAccessibility::STATE_UNAVAILABLE)]; |
+ !GetState(browserAccessibility_, |
+ AccessibilityNodeData::STATE_UNAVAILABLE)]; |
} |
- (NSNumber*)focused { |
@@ -438,7 +456,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSString*)help { |
return NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_HELP); |
+ AccessibilityNodeData::ATTR_HELP); |
} |
// Returns whether or not this node should be ignored in the |
@@ -454,21 +472,21 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSNumber*)loadingProgress { |
float floatValue = 0.0; |
browserAccessibility_->GetFloatAttribute( |
- WebAccessibility::ATTR_DOC_LOADING_PROGRESS, &floatValue); |
+ AccessibilityNodeData::ATTR_DOC_LOADING_PROGRESS, &floatValue); |
return [NSNumber numberWithFloat:floatValue]; |
} |
- (NSNumber*)maxValue { |
float floatValue = 0.0; |
browserAccessibility_->GetFloatAttribute( |
- WebAccessibility::ATTR_MAX_VALUE_FOR_RANGE, &floatValue); |
+ AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE, &floatValue); |
return [NSNumber numberWithFloat:floatValue]; |
} |
- (NSNumber*)minValue { |
float floatValue = 0.0; |
browserAccessibility_->GetFloatAttribute( |
- WebAccessibility::ATTR_MIN_VALUE_FOR_RANGE, &floatValue); |
+ AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE, &floatValue); |
return [NSNumber numberWithFloat:floatValue]; |
} |
@@ -501,16 +519,16 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSNumber*)required { |
return [NSNumber numberWithBool: |
- GetState(browserAccessibility_, WebAccessibility::STATE_REQUIRED)]; |
+ GetState(browserAccessibility_, AccessibilityNodeData::STATE_REQUIRED)]; |
} |
// Returns a string indicating the role of this object. |
- (NSString*)role { |
- WebAccessibility::Role browserAccessibilityRole = |
- static_cast<WebAccessibility::Role>( browserAccessibility_->role()); |
+ AccessibilityNodeData::Role browserAccessibilityRole = |
+ static_cast<AccessibilityNodeData::Role>( browserAccessibility_->role()); |
// Roles that we only determine at runtime. |
- return NativeRoleFromWebAccessibilityRole(browserAccessibilityRole); |
+ return NativeRoleFromAccessibilityNodeDataRole(browserAccessibilityRole); |
} |
// Returns a string indicating the role description of this object. |
@@ -539,12 +557,12 @@ NSDictionary* attributeToMethodNameMap = nil; |
[role isEqualToString:NSAccessibilityRadioButtonRole]) { |
const std::vector<std::pair<string16, string16> >& htmlAttributes = |
browserAccessibility_->html_attributes(); |
- WebAccessibility::Role browserAccessibilityRole = |
- static_cast<WebAccessibility::Role>(browserAccessibility_->role()); |
+ AccessibilityNodeData::Role browserAccessibilityRole = |
+ static_cast<AccessibilityNodeData::Role>(browserAccessibility_->role()); |
- if ((browserAccessibilityRole != WebAccessibility::ROLE_GROUP && |
- browserAccessibilityRole != WebAccessibility::ROLE_LIST_ITEM) || |
- browserAccessibilityRole == WebAccessibility::ROLE_TAB) { |
+ if ((browserAccessibilityRole != AccessibilityNodeData::ROLE_GROUP && |
+ browserAccessibilityRole != AccessibilityNodeData::ROLE_LIST_ITEM) || |
+ browserAccessibilityRole == AccessibilityNodeData::ROLE_TAB) { |
for (size_t i = 0; i < htmlAttributes.size(); ++i) { |
const std::pair<string16, string16>& htmlAttribute = htmlAttributes[i]; |
if (htmlAttribute.first == ASCIIToUTF16("role")) { |
@@ -555,8 +573,9 @@ NSDictionary* attributeToMethodNameMap = nil; |
} |
} |
- if (static_cast<WebAccessibility::Role>( browserAccessibility_->role()) == |
- WebAccessibility::ROLE_FOOTER) { |
+ AccessibilityNodeData::Role internal_role = |
+ static_cast<AccessibilityNodeData::Role>(browserAccessibility_->role()); |
+ if (internal_role == AccessibilityNodeData::ROLE_FOOTER) { |
return base::SysUTF16ToNSString(content_client->GetLocalizedString( |
IDS_AX_ROLE_FOOTER)); |
} |
@@ -582,18 +601,18 @@ NSDictionary* attributeToMethodNameMap = nil; |
// Returns a subrole based upon the role. |
- (NSString*) subrole { |
- WebAccessibility::Role browserAccessibilityRole = |
- static_cast<WebAccessibility::Role>(browserAccessibility_->role()); |
- if (browserAccessibilityRole == WebAccessibility::ROLE_TEXT_FIELD && |
- GetState(browserAccessibility_, WebAccessibility::STATE_PROTECTED)) { |
+ AccessibilityNodeData::Role browserAccessibilityRole = |
+ static_cast<AccessibilityNodeData::Role>(browserAccessibility_->role()); |
+ if (browserAccessibilityRole == AccessibilityNodeData::ROLE_TEXT_FIELD && |
+ GetState(browserAccessibility_, AccessibilityNodeData::STATE_PROTECTED)) { |
return @"AXSecureTextField"; |
} |
NSString* htmlTag = NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_HTML_TAG); |
+ AccessibilityNodeData::ATTR_HTML_TAG); |
- if (browserAccessibilityRole == WebAccessibility::ROLE_LIST) { |
+ if (browserAccessibilityRole == AccessibilityNodeData::ROLE_LIST) { |
if ([htmlTag isEqualToString:@"ul"] || |
[htmlTag isEqualToString:@"ol"]) { |
return @"AXContentList"; |
@@ -602,14 +621,14 @@ NSDictionary* attributeToMethodNameMap = nil; |
} |
} |
- return NativeSubroleFromWebAccessibilityRole(browserAccessibilityRole); |
+ return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole); |
} |
// Returns all tabs in this subtree. |
- (NSArray*)tabs { |
NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease]; |
- if (browserAccessibility_->role() == WebAccessibility::ROLE_TAB) |
+ if (browserAccessibility_->role() == AccessibilityNodeData::ROLE_TAB) |
[tabSubtree addObject:self]; |
for (uint i=0; i < [[self children] count]; ++i) { |
@@ -628,7 +647,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (id)titleUIElement { |
int titleElementId; |
if (browserAccessibility_->GetIntAttribute( |
- WebAccessibility::ATTR_TITLE_UI_ELEMENT, &titleElementId)) { |
+ AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT, &titleElementId)) { |
BrowserAccessibility* titleElement = |
browserAccessibility_->manager()->GetFromRendererID(titleElementId); |
if (titleElement) |
@@ -640,8 +659,8 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSString*)url { |
StringAttribute urlAttribute = |
[[self role] isEqualToString:@"AXWebArea"] ? |
- WebAccessibility::ATTR_DOC_URL : |
- WebAccessibility::ATTR_URL; |
+ AccessibilityNodeData::ATTR_DOC_URL : |
+ AccessibilityNodeData::ATTR_URL; |
return NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
urlAttribute); |
@@ -656,7 +675,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
NSString* headingLevel = |
NSStringForStringAttribute( |
browserAccessibility_->string_attributes(), |
- WebAccessibility::ATTR_HTML_TAG); |
+ AccessibilityNodeData::ATTR_HTML_TAG); |
if ([headingLevel length] >= 2) { |
return [NSNumber numberWithInt: |
[[headingLevel substringFromIndex:1] intValue]]; |
@@ -668,13 +687,15 @@ NSDictionary* attributeToMethodNameMap = nil; |
[role isEqualToString:NSAccessibilityRadioButtonRole]) { |
int value = 0; |
value = GetState( |
- browserAccessibility_, WebAccessibility::STATE_CHECKED) ? 1 : 0; |
+ browserAccessibility_, AccessibilityNodeData::STATE_CHECKED) ? 1 : 0; |
value = GetState( |
- browserAccessibility_, WebAccessibility::STATE_SELECTED) ? 1 : value; |
+ browserAccessibility_, AccessibilityNodeData::STATE_SELECTED) ? |
+ 1 : |
+ value; |
bool mixed = false; |
browserAccessibility_->GetBoolAttribute( |
- WebAccessibility::ATTR_BUTTON_MIXED, &mixed); |
+ AccessibilityNodeData::ATTR_BUTTON_MIXED, &mixed); |
if (mixed) |
value = 2; |
return [NSNumber numberWithInt:value]; |
@@ -683,7 +704,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
[role isEqualToString:NSAccessibilityScrollBarRole]) { |
float floatValue; |
if (browserAccessibility_->GetFloatAttribute( |
- WebAccessibility::ATTR_VALUE_FOR_RANGE, &floatValue)) { |
+ AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &floatValue)) { |
return [NSNumber numberWithFloat:floatValue]; |
} |
} |
@@ -698,7 +719,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
- (NSNumber*)visited { |
return [NSNumber numberWithBool: |
- GetState(browserAccessibility_, WebAccessibility::STATE_TRAVERSED)]; |
+ GetState(browserAccessibility_, AccessibilityNodeData::STATE_TRAVERSED)]; |
} |
- (id)window { |
@@ -716,9 +737,9 @@ NSDictionary* attributeToMethodNameMap = nil; |
// TODO(dtseng): refactor remaining attributes. |
int selStart, selEnd; |
if (browserAccessibility_->GetIntAttribute( |
- WebAccessibility::ATTR_TEXT_SEL_START, &selStart) && |
+ AccessibilityNodeData::ATTR_TEXT_SEL_START, &selStart) && |
browserAccessibility_-> |
- GetIntAttribute(WebAccessibility::ATTR_TEXT_SEL_END, &selEnd)) { |
+ GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_END, &selEnd)) { |
if (selStart > selEnd) |
std::swap(selStart, selEnd); |
int selLength = selEnd - selStart; |
@@ -919,14 +940,14 @@ NSDictionary* attributeToMethodNameMap = nil; |
// Live regions. |
string16 s; |
if (browserAccessibility_->GetStringAttribute( |
- WebAccessibility::ATTR_LIVE_STATUS, &s)) { |
+ AccessibilityNodeData::ATTR_LIVE_STATUS, &s)) { |
[ret addObjectsFromArray:[NSArray arrayWithObjects: |
@"AXARIALive", |
@"AXARIARelevant", |
nil]]; |
} |
if (browserAccessibility_->GetStringAttribute( |
- WebAccessibility::ATTR_CONTAINER_LIVE_STATUS, &s)) { |
+ AccessibilityNodeData::ATTR_CONTAINER_LIVE_STATUS, &s)) { |
[ret addObjectsFromArray:[NSArray arrayWithObjects: |
@"AXARIAAtomic", |
@"AXARIABusy", |
@@ -936,7 +957,7 @@ NSDictionary* attributeToMethodNameMap = nil; |
// Title UI Element. |
int i; |
if (browserAccessibility_->GetIntAttribute( |
- WebAccessibility::ATTR_TITLE_UI_ELEMENT, &i)) { |
+ AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT, &i)) { |
[ret addObjectsFromArray:[NSArray arrayWithObjects: |
NSAccessibilityTitleUIElementAttribute, |
nil]]; |
@@ -960,11 +981,12 @@ NSDictionary* attributeToMethodNameMap = nil; |
// accessibility API via |accessibilitySetValue:forAttribute:|. |
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute { |
if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) |
- return GetState(browserAccessibility_, WebAccessibility::STATE_FOCUSABLE); |
+ return GetState(browserAccessibility_, |
+ AccessibilityNodeData::STATE_FOCUSABLE); |
if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { |
bool canSetValue = false; |
browserAccessibility_->GetBoolAttribute( |
- WebAccessibility::ATTR_CAN_SET_VALUE, &canSetValue); |
+ AccessibilityNodeData::ATTR_CAN_SET_VALUE, &canSetValue); |
return canSetValue; |
} |
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && |