[PATCH] controls/PageRow: don't announce StackView over screen readers
authorChristoph Wolk <cwo.kde@posteo.net>
Mon, 19 May 2025 06:05:07 +0000 (08:05 +0200)
committerAurélien COUDERC <coucouf@debian.org>
Tue, 20 May 2025 06:38:42 +0000 (08:38 +0200)
PageRow has an internal StackView; it defaults to the Accessible.role
LayeredPane, which is by default announced by screen readers (or at
least by orca). This may be correct in some circumstances, but not here:
it's a purely internal object that has no user relevance; hearing
LAYERED PANE ZERO ITEMS every time a page in a PageRow is entered is
confusing to screen reader users, they have typically no idea what it
means, and if they do there is little they can do with this
information. (I guess it indicates whether a modal layer is open, but in
practice I couldn't seem to actually get this to work, and it seems
better to indicate when a modal layer is open, not every single time
when there isn't one - and that is a separate issue.)

Instead we can set its role explicitly to Pane, that marks it as a
filler in Accerciser and orca does not read it out every time.

Gbp-Pq: Name upstream_481ee938_controls-PageRow-don-t-announce-StackView-over-screen-readers.patch

src/controls/PageRow.qml

index 6f83779cb9291f16265679c153113da7ad5efc2a..d2903ef173ecb94cca1c1ba9e141587a232e0dc6 100644 (file)
@@ -785,6 +785,7 @@ QT.Control {
     QQC2.StackView {
         id: layersStack
         z: 99
+        Accessible.role: Accessible.Pane
         anchors {
             left: parent.left
             top: layerToolbarStack.bottom