a11y atspi: Map QAccessible::Border to AT-SPI2 panel role

Instead of mapping QAccessible::Border to ATSPI_ROLE_FRAME
("A top level window with a title bar, border, menubar, etc." [1]),
map it to ATSPI_ROLE_PANEL ("A generic container that is often used to
group objects."), as widgets using that role (in particular QFrame)
are not top-level windows, but rather containers for other widgets.

[1] https://docs.gtk.org/atspi2/enum.Role.html#frame

Fixes: QTBUG-127552
Pick-to: 6.7 6.5
Change-Id: I565793b6e02903402cfc764e2e38d391a2960af1
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit a19d66385fc9fa13ce5ee811386ad104c0718941)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Michael Weghorn 2024-07-26 11:19:59 +02:00 committed by Qt Cherry-pick Bot
parent 699f722789
commit 32b0ff2124

View File

@ -131,7 +131,7 @@ static RoleMapping map[] = {
//: Role of an accessible object
{ QAccessible::Dialog, ATSPI_ROLE_DIALOG, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "dialog") },
//: Role of an accessible object
{ QAccessible::Border, ATSPI_ROLE_FRAME, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "frame") },
{ QAccessible::Border, ATSPI_ROLE_PANEL, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "panel") },
//: Role of an accessible object
{ QAccessible::Grouping, ATSPI_ROLE_PANEL, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "panel") },
//: Role of an accessible object