Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:brltty
User: [email protected]
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 <[email protected]>  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 <[email protected]>
+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 via email to