summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm10
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());
}
}