Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Unified Diff: ui/accessibility/platform/ax_platform_node_mac.mm

Issue 2119413004: a11y: Exclude children of nested keyboard accessible controls from a11y tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on top of 2704263002. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {
}

Powered by Google App Engine
This is Rietveld 408576698