Index: ui/accessibility/platform/ax_platform_node_mac.mm |
diff --git a/ui/accessibility/platform/ax_platform_node_mac.mm b/ui/accessibility/platform/ax_platform_node_mac.mm |
index 89444bf0c6fc94c35e48945a9e872c6ee53a89c0..1f65af6547909edea6803351c6b6acea8cfa1cf3 100644 |
--- a/ui/accessibility/platform/ax_platform_node_mac.mm |
+++ b/ui/accessibility/platform/ax_platform_node_mac.mm |
@@ -244,6 +244,13 @@ RoleMap BuildSubroleMap() { |
return [NSValue valueWithSize:self.boundsInScreen.size]; |
} |
+- (NSString*)AXTitle { |
+ std::string value; |
+ if (node_->GetStringAttribute(ui::AX_ATTR_NAME, &value)) |
+ return base::SysUTF8ToNSString(value); |
+ return nil; |
+} |
+ |
// NSAccessibility informal protocol implementation. |
- (BOOL)accessibilityIsIgnored { |
@@ -263,13 +270,19 @@ RoleMap BuildSubroleMap() { |
} |
- (NSArray*)accessibilityAttributeNames { |
+ // These attributes are required on all accessibility objects. |
return @[ |
NSAccessibilityChildrenAttribute, |
NSAccessibilityParentAttribute, |
NSAccessibilityPositionAttribute, |
NSAccessibilityRoleAttribute, |
NSAccessibilitySizeAttribute, |
+ |
+ // Title is required for most elements. Cocoa asks for the value even if it |
+ // is omitted here, but won't present it to accessibility APIs without this. |
+ NSAccessibilityTitleAttribute, |
]; |
+ // TODO(tapted): Add additional attributes based on role. |
} |
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute { |