summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaaccessibility.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibility.mm7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
index 66cb979031..9733d12d26 100644
--- a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
+++ b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
@@ -149,8 +149,9 @@ static void populateRoleMap()
Returns a Mac accessibility role for the given interface, or
NSAccessibilityUnknownRole if no role mapping is found.
*/
-NSString *macRole(QAccessible::Role qtRole)
+NSString *macRole(QAccessibleInterface *interface)
{
+ QAccessible::Role qtRole = interface->role();
QMacAccessibiltyRoleMap &roleMap = *qMacAccessibiltyRoleMap();
if (roleMap.isEmpty())
@@ -160,6 +161,8 @@ NSString *macRole(QAccessible::Role qtRole)
if (roleMap.contains(qtRole)) {
// MAC_ACCESSIBILTY_DEBUG() << "return" << roleMap[qtRole];
+ if (roleMap[qtRole] == NSAccessibilityTextFieldRole && interface->state().multiLine)
+ return NSAccessibilityTextAreaRole;
return roleMap[qtRole];
}
@@ -190,7 +193,7 @@ bool shouldBeIgnrored(QAccessibleInterface *interface)
role == QAccessible::ToolBar) // Access the tool buttons directly.
return true;
- NSString *mac_role = macRole(interface->role());
+ NSString *mac_role = macRole(interface);
if (mac_role == NSAccessibilityWindowRole || // We use the system-provided window elements.
mac_role == NSAccessibilityGroupRole ||
mac_role == NSAccessibilityUnknownRole)