diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm index d32170ab01..8b52c5eeff 100644 --- a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm +++ b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm @@ -268,7 +268,10 @@ - (BOOL)accessibilityIsAttributeSettable:(NSString *)attribute { if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { - return NO; // YES to handle keyboard input + QAccessibleInterface *iface = QAccessible::accessibleInterface(axid); + if (!iface) + return nil; + return iface->state().focusable ? YES : NO; } else { return NO; } @@ -277,7 +280,10 @@ - (void)accessibilitySetValue:(id)value forAttribute:(NSString *)attribute { Q_UNUSED(value); if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { - + QAccessibleInterface *iface = QAccessible::accessibleInterface(axid); + if (!iface || !iface->actionInterface()) + return; + iface->actionInterface()->doAction(QAccessibleActionInterface::setFocusAction()); } } |