From 1269f9cd16485d0081f5027ffec914bcb696f658 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Wed, 24 Apr 2019 17:44:22 +0200 Subject: Linux Accessibility: Add missing roles: Terminal and Desktop There is an effort to make KDE software accessible, which exposed the missing roles. Check that they are complete with an assert. Change-Id: Ibaff0a90e1cee316983569ecee7759a13212e3c3 Reviewed-by: Mitch Curtis --- src/platformsupport/linuxaccessibility/bridge.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/platformsupport') diff --git a/src/platformsupport/linuxaccessibility/bridge.cpp b/src/platformsupport/linuxaccessibility/bridge.cpp index 9b02d44aa5..a96fe258df 100644 --- a/src/platformsupport/linuxaccessibility/bridge.cpp +++ b/src/platformsupport/linuxaccessibility/bridge.cpp @@ -261,6 +261,10 @@ static RoleMapping map[] = { //: Role of an accessible object { QAccessible::ComplementaryContent, ATSPI_ROLE_SECTION, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "complementary content") }, //: Role of an accessible object + { QAccessible::Terminal, ATSPI_ROLE_TERMINAL, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "terminal") }, + //: Role of an accessible object + { QAccessible::Desktop, ATSPI_ROLE_DESKTOP_FRAME, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "desktop") }, + //: Role of an accessible object { QAccessible::UserRole, ATSPI_ROLE_UNKNOWN, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "unknown") } }; @@ -268,6 +272,12 @@ void QSpiAccessibleBridge::initializeConstantMappings() { for (uint i = 0; i < sizeof(map) / sizeof(RoleMapping); ++i) qSpiRoleMapping.insert(map[i].role, RoleNames(map[i].spiRole, QLatin1String(map[i].name), tr(map[i].name))); + + // -1 because we have button duplicated, as PushButton and Button. + Q_ASSERT_X(qSpiRoleMapping.size() == + QAccessible::staticMetaObject.enumerator( + QAccessible::staticMetaObject.indexOfEnumerator("Role")).keyCount() - 1, + "", "Handle all QAccessible::Role members in qSpiRoleMapping"); } QT_END_NAMESPACE -- cgit v1.2.3