Bug#1113904: trixie-pu: package brltty/6.7-3.1+deb13u1
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: brltty@packages.debian.org
Control: affects -1 + src:brltty
User: release.debian.org@packages.debian.org
Usertags: pu
Hello,
I have uploaded brltty_6.7-3.1+deb13u1 for inclusion in Trixie.
[ Reason ]
When, on the gui desktop, focus is brought to a widget that doesn't
expose a text interface to the at-spi2 accessibility framework, brltty
still tries to get text, and this produces a warning in the application.
[ Impact ]
When users are trying to debug an issue with screen reading for
accessibility, they see this warning and believe there is something to
fix, while this is actually benign. Debugging accessibility issues is
already difficult, this makes it even more difficult by diverging people
from the warnings they should really look at.
[ Tests ]
Manual test
[ Risks ]
The code is quite trivial and was tested upstream since june.
[ Checklist ]
[X] *all* changes are documented in the d/changelog
[X] I reviewed all changes and I approve them
[X] attach debdiff against the package in (old)stable
[X] the issue is verified as fixed in unstable
[ Changes ]
It makes brltty not restart looking at text content when the
widget does not actually expose a text interface.
The selection handler also needed to be modified because there may now
be no widget being looked at by brltty.
diff -Nru brltty-6.7/debian/changelog brltty-6.7/debian/changelog
--- brltty-6.7/debian/changelog 2025-05-02 17:30:21.000000000 +0200
+++ brltty-6.7/debian/changelog 2025-09-03 23:42:53.000000000 +0200
@@ -1,3 +1,10 @@
+brltty (6.7-3.1+deb13u1) trixie; urgency=medium
+
+ * patches/git-notext-noread: AtSpi2: not manage widgets without text
+ interface.
+
+ -- Samuel Thibault <sthibault@debian.org> Wed, 03 Sep 2025 23:42:53 +0200
+
brltty (6.7-3.1) unstable; urgency=medium
[ Lucas Nussbaum ]
diff -Nru brltty-6.7/debian/patches/git-notext-noread brltty-6.7/debian/patches/git-notext-noread
--- brltty-6.7/debian/patches/git-notext-noread 1970-01-01 01:00:00.000000000 +0100
+++ brltty-6.7/debian/patches/git-notext-noread 2025-09-03 23:42:49.000000000 +0200
@@ -0,0 +1,43 @@
+commit e541b4ca52b6ae220813a80b218a41c2ff4d4818
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Wed Jun 4 14:58:30 2025 +0200
+
+ AtSpi2: do not manage widgets without text interface
+
+ We will not get any content anyway, and trying to call GetText on the
+ will make them emit warnings:
+
+ CRITICAL **: 14:14:10.233: impl_GetText: assertion 'ATK_IS_TEXT (user_data)' failed
+
+diff --git a/Drivers/Screen/AtSpi2/a2_screen.c b/Drivers/Screen/AtSpi2/a2_screen.c
+index c8df1f24e..bb20b9c04 100644
+--- a/Drivers/Screen/AtSpi2/a2_screen.c
++++ b/Drivers/Screen/AtSpi2/a2_screen.c
+@@ -730,7 +730,6 @@ static void restartTerm(const char *sender, const char *path) {
+ /* Switched to a new object, check whether we want to read it, and if so, restart with it */
+ static void tryRestartTerm(const char *sender, const char *path) {
+ if (curPath) finiTerm();
+- restartTerm(sender, path);
+
+ curRole = getRole(sender, path);
+ logMessage(LOG_CATEGORY(SCREEN_DRIVER),
+@@ -750,6 +749,9 @@ static void tryRestartTerm(const char *sender, const char *path) {
+ }
+
+ if (requested) curQuality = SCQ_GOOD;
++
++ if (curQuality != SCQ_NONE)
++ restartTerm(sender, path);
+ }
+
+ /* Get the state of an object */
+@@ -1882,6 +1884,9 @@ setSelection_AtSpi2Screen (int beginOffset, int endOffset) {
+ dbus_int32_t begin = beginOffset;
+ dbus_int32_t end = endOffset;
+
++ if (!curSender)
++ return 0;
++
+ msg = new_method_call(curSender, curPath, SPI2_DBUS_INTERFACE_TEXT, "SetSelection");
+ if (!msg)
+ return 0;
diff -Nru brltty-6.7/debian/patches/series brltty-6.7/debian/patches/series
--- brltty-6.7/debian/patches/series 2025-05-02 17:28:21.000000000 +0200
+++ brltty-6.7/debian/patches/series 2025-09-03 23:42:53.000000000 +0200
@@ -4,3 +4,4 @@
disable-synth-callback.patch
git-make-shuffle
fix_german_translation_for_brltty_6.7
+git-notext-noread
Reply to: