Chromium Code Reviews| 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 5bfa69c675fa5c1124ea5fcf8954307ef461170f..a7d41b4f98e78822d73637ac9df905fa1b4ac747 100644 |
| --- a/ui/accessibility/platform/ax_platform_node_mac.mm |
| +++ b/ui/accessibility/platform/ax_platform_node_mac.mm |
| @@ -11,6 +11,7 @@ |
| #include "base/strings/sys_string_conversions.h" |
| #include "ui/accessibility/ax_action_data.h" |
| #include "ui/accessibility/ax_node_data.h" |
| +#include "ui/accessibility/ax_utils.h" |
| #include "ui/accessibility/platform/ax_platform_node_delegate.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #import "ui/gfx/mac/coordinate_conversion.h" |
| @@ -304,7 +305,25 @@ void NotifyMacEvent(AXPlatformNodeCocoa* target, ui::AXEvent event_type) { |
| } |
| - (NSArray*)accessibilityActionNames { |
| - return nil; |
| + base::scoped_nsobject<NSMutableArray> axActions( |
| + [[NSMutableArray alloc] init]); |
| + |
| + // VoiceOver expects the "press" action to be first. |
| + if (ui::IsRoleClickable(node_->GetData().role)) |
| + [axActions addObject:NSAccessibilityPressAction]; |
|
tapted
2017/02/09 02:45:18
Do we expect much more to appear in future? E.g. w
Patti Lor
2017/02/09 23:11:23
I think so, yes - "ConfirmAction" simulates pressi
tapted
2017/02/09 23:25:05
Ack.
|
| + |
| + return axActions.autorelease(); |
| +} |
| + |
| +- (void)accessibilityPerformAction:(NSString*)action { |
| + DCHECK([[self accessibilityActionNames] containsObject:action]); |
| + ui::AXActionData data; |
| + if ([action isEqualToString:NSAccessibilityPressAction]) { |
|
tapted
2017/02/09 02:45:18
nit: curlies not required
Patti Lor
2017/02/09 23:11:23
Done.
|
| + data.action = ui::AX_ACTION_DO_DEFAULT; |
| + } |
| + |
| + if (data.action != ui::AX_ACTION_NONE) |
| + node_->GetDelegate()->AccessibilityPerformAction(data); |
| } |
| - (NSArray*)accessibilityAttributeNames { |