summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qwidget
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2022-10-11 15:23:54 +0200
committerMichael Weghorn <m.weghorn@posteo.de>2022-11-11 17:48:51 +0100
commit9d16d5e2245c26e5746fd7609300b84a2a983457 (patch)
tree73b0b28cc453c3dc62ed34343f5abf2a95e98640 /tests/auto/widgets/kernel/qwidget
parenta45a1b8674d0982828d75440041a67fdb3da74f9 (diff)
a11y: Add new QAccessibleSelectionInterface
This adds a new QAccessibleSelectionInterface that implements support for handling selections, both retrieving information about the current selection as well as modifying the selection, thus providing the necessary foundation for exposing selections to assistive technology. This is similar to AT-SPI's Selection interface [1], but uses QAccessibleInterface pointers instead of child indices as parameters for methods. Bridging this newly introduced interface to AT-SPI will be done in a follow-up change. The concept for selection handling in Microsoft's UI Automation looks similar, so bridging this to the corresponding UIA interfaces ISelectionProvider [2], ISelectionItemProvider [3] and ISelectionProvider2 [4] should also be reasonably straightforward. At this point, this is only meant to be used for handling selection of direct children as is the concept in AT-SPI's Selection and presumably in UIA as well. (The ISelectionItemProvider and ISelectionProvider doc speaks of "child controls of containers" etc., but doesn't explicitly mention that this is only for direct children or whether grand children are also allowed.) (The proposed API itself could also be used to support selection of objects that are no direct children, but the practical use of that is unclear and it would make mapping/ bridging to platform a11y layers tricky.) [5] demonstrates a sample implementation of the QAccessibleSelectionInterface for the Qt-based UI variants of LibreOffice (screencast that shows the use of the interface attached to QTBUG-105909). This interface is marked \preliminary until: 1. There is a working a11y bridge for macOS/VoiceOver 2. There is a working a11y bridge for Windows/UI Automation 3. There is a working a11y bridge for linux/AT-SPI 4. There is at least one implementation (e.g. QAccessibleTable) that implements it successfully (second candidate: Qt Quick TableView [6]) [1] https://lazka.github.io/pgi-docs/Atspi-2.0/classes/Selection.html [2] https://docs.microsoft.com/en-us/windows/win32/api/uiautomationcore/nn-uiautomationcore-iselectionprovider [3] https://docs.microsoft.com/en-us/windows/win32/api/uiautomationcore/nn-uiautomationcore-iselectionitemprovider [4] https://docs.microsoft.com/en-us/windows/win32/api/uiautomationcore/nn-uiautomationcore-iselectionprovider2 [5] https://gerrit.libreoffice.org/c/core/+/138750 [6] https://doc-snapshots.qt.io/qt6-dev/qml-qtquick-tableview.html [ChangeLog][QtGui][QAccessibleSelectionInterface] Added new preliminary QAccessibleSelectionInterface that can be used to expose selections to assistive technology. Task-number: QTBUG-105909 Change-Id: If77beacd94fa3eb663f0fbb2373f12382bab2ee3 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget')
0 files changed, 0 insertions, 0 deletions