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 9edb01336f2b23b0513e8bf4e20d314dc76925e0..1cbd4f2a5d915ff1febd87106f0c53c452537883 100644 |
--- a/ui/accessibility/platform/ax_platform_node_mac.mm |
+++ b/ui/accessibility/platform/ax_platform_node_mac.mm |
@@ -230,7 +230,11 @@ void NotifyMacEvent(AXPlatformNodeCocoa* target, ui::AXEvent event_type) { |
- (NSString*)getStringAttribute:(ui::AXStringAttribute)attribute; |
@end |
-@implementation AXPlatformNodeCocoa |
+@implementation AXPlatformNodeCocoa { |
+ ui::AXPlatformNodeBase* node_; // Weak. Retains us. |
+} |
+ |
+@synthesize node = node_; |
// A mapping of AX roles to native roles. |
+ (NSString*)nativeRoleFromAXRole:(ui::AXRole)role { |
@@ -290,7 +294,8 @@ void NotifyMacEvent(AXPlatformNodeCocoa* target, ui::AXEvent event_type) { |
- (id)accessibilityHitTest:(NSPoint)point { |
for (AXPlatformNodeCocoa* child in [self AXChildren]) { |
- if (NSPointInRect(point, child.boundsInScreen)) |
+ if (![child accessibilityIsIgnored] && |
+ NSPointInRect(point, [child boundsInScreen])) |
return [child accessibilityHitTest:point]; |
} |
return NSAccessibilityUnignoredAncestor(self); |
@@ -626,6 +631,14 @@ AXPlatformNode* AXPlatformNode::Create(AXPlatformNodeDelegate* delegate) { |
return node; |
} |
+// static |
+AX_EXPORT AXPlatformNode* AXPlatformNode::FromNativeViewAccessible( |
+ gfx::NativeViewAccessible accessible) { |
+ if ([accessible isKindOfClass:[AXPlatformNodeCocoa class]]) |
+ return [accessible node]; |
+ return nullptr; |
+} |
+ |
AXPlatformNodeMac::AXPlatformNodeMac() { |
} |