GNOME Bugzilla – Bug 132182
gnopernicus outputting previous radio-button description
Last modified: 2004-12-22 21:47:04 UTC
using gnopernicus from CVS HEAD Jan 21 2004 -launch gnopernicus -launch 'take a screenshot' -highlight the 'save screenshot to file' radiobutton -press 'down' to highlight 'save screenshot to desktop' .gnopernicus outputs the previous description, then the newly selected one. This is the same for all 3 of these radiobuttons
this seems like AP2 instead of AP3 to me. ALso sounds like a regression, isn't it? I don't know why we would speak an object when moving focus _away_ from it.
This is happening in all radiobutton lists, therefore raising as suggested to AP2. And yes, this is a regression amongst many in gnopernicus lately.
I can't reproduce this bug on my computer (suse 9.0). When I press 'down' to highlight 'save screenshot to desktop' the previous description is stopped and gnopernicus outputs the description of the new highlighted radiobutton. In this case, gnopernicus has a normal behavior. Would you confirm that this bug is still present?
Yes, this bug is still present. I am using gnopernicus from CVS HEAD 02 Feb.
Dana - can you please describe in detail what you are running? A CVS build of GNOME from what date? Which TTS engine(s)? David - can we get the stack you are using to BAUM?
I am using gnopernicus from CVS HEAD Feb 04 and gnome-2.5 from Jan 13. As a TTS engine, I am using festival. If I navigate with 'down' arrow between the radiobuttons (as David described in his scenario), gnopernicus will output the description for the current highlighted one (not the previous one).
Perhaps this is FreeTTS specific. I will install festival drivers and check the problem.
I am also seeing this problem. I will have a look and see whether the problem is on the application side.
I ran gnopernicus with GNOPERNICUS_LOG set to at-spi and the following output was emitted when the old radio button was spoken and focus moved from second to third radio button. What do you see when it speaks correctly? AT:13c250p----"window:activate" for 12f398p "Save Screenshot" role "dialog" from "GAIL" with details 0 and 0 AT:143590p----"window:deactivate" for 133c08p "Gnopernicus" role "frame" from "GAIL" with details 0 and 0 AT:143590p----"focus:" for 133c18p "Save screenshot to desktop" role "radio button" from "GAIL" with details 0 and 0 AT:ffbfd990p--key event:sym 65364 (T) mods 20 code 85 time -2046096870 keystring "Down" type 1 (press = 1, release = 2) AT:143658p----"object:state-changed:checked" for 133c18p "Save screenshot to desktop" role "radio button" from "GAIL" with details 0 and 0 AT:143450p----"object:state-changed:checked" for 12cff0p "Save screenshot to web page (save in /home/padraigo/publichtml)" role "radio button" from "GAIL" with details 1 and 0 AT:ffbfcfe0p--key event:sym 65364 (T) mods 20 code 85 time -2046096766 keystring "Down" type 2 (press = 1, release = 2) AT:143388p----"focus:" for 12d050p "Save screenshot to web page (save in /home/padraigo/publichtml)" role "radio button" from "GAIL" with details 0 and 0
In my case gnopernicus speaks correctly but the output (when I ran it with GNOPERNICUS_LOG set to at-spi) seems to be the same: AT:81287f8p----"window:create" for 80e5f30p "Save Screenshot" role "dialog" from "GAIL" with details 0 and 0 AT:8129a38p----"window:deactivate" for 8129d38p "Gnopernicus" role "frame" from "GAIL" with details 0 and 0 AT:8129a70p----"window:activate" for 80e5f30p "Save Screenshot" role "dialog" from "GAIL" with details 0 and 0 AT:812b240p----"focus:" for 812c828p "Save screenshot to desktop" role "radio button" from "GAIL" with details 0 and 0 AT:bfffe690p--key event:sym 65364 (T) mods 0 code 104 time 1217828 keystring "Down" type 1 (press = 1, release = 2) AT:bfffe690p--key event:sym 65364 (T) mods 0 code 104 time 1217828 keystring "Down" type 1 (press = 1, release = 2) AT:bfffe690p--key event:sym 65364 (T) mods 0 code 104 time 1217828 keystring "Down" type 1 (press = 1, release = 2) AT:bfffe690p--key event:sym 65364 (T) mods 0 code 104 time 1217828 keystring "Down" type 1 (press = 1, release = 2) AT:812d078p----"object:state-changed:checked" for 812c828p "Save screenshot to desktop" role "radio button" from "GAIL" with details 0 and 0 AT:812d178p----"object:state-changed:checked" for 812d748p "Save screenshot to web page (save in /home/dana/publichtml)" role "radio button" from "GAIL" with details 1 and 0 AT:812d0c8p----"focus:" for 812c7f0p "Save screenshot to web page (save in /home/dana/publichtml)" role "radio button" from "GAIL" with details 0 and 0
Is there a way I can debug output which shows me what text gnopernicus is sending to the speech engine?
Created attachment 24139 [details] [review] Apply this patch and you'll see what text gnopernicus is sending to the speech engine.
Created attachment 24144 [details] Out from test
The output seems to suggests that the problem is in gnopernicus.
This bug seems to be identical with 133386. David, please try the patch proposed for bug 133386 and check if the problem is still present.
This problem does not seem to be fixed with the patch. Output when moving down from one radio button to another is below: AT:ffbfd940p--key event:sym 65364 (T) mods 0 code 85 time -932215209 keystring "Down" type 1 (press = 1, release = 2) AT:ffbfd940p--key event:sym 65364 (T) mods 0 code 85 time -932215209 keystring "Down" type 1 (press = 1, release = 2) AT:ffbfd940p--key event:sym 65364 (T) mods 0 code 85 time -932215209 keystring "Down" type 1 (press = 1, release = 2) AT:ffbfd940p--key event:sym 65364 (T) mods 0 code 85 time -932215209 keystring "Down" type 1 (press = 1, release = 2) AT:138978p----"object:state-changed:checked" for 128c88p "Save screenshot to file:" role "radio button" from "GAIL" with details 0 and 0 AT:138ab8p----"object:state-changed:checked" for 128278p "Save screenshot to desktop" role "radio button" from "GAIL" with details 1 and 0 AT:138ab8p----"focus:" for 128228p "Save screenshot to desktop" role "radio button" from "GAIL" with details 0 and 0 AT:ffbfc810p--key event:sym 65364 (T) mods 0 code 85 time -932215137 keystring "Down" type 2 (press = 1, release = 2) AT:ffbfc738p--key event:sym 65364 (T) mods 0 code 85 time -932215137 keystring "Down" type 2 (press = 1, release = 2) AT:ffbfc810p--key event:sym 65364 (T) mods 0 code 85 time -932215137 keystring "Down" type 2 (press = 1, release = 2) AT:ffbfc878p--key event:sym 65364 (T) mods 0 code 85 time -932215137 keystring "Down" type 2 (press = 1, release = 2) <SRSOUT priority="0" preempt="true"><TEXT voice="name">Save screenshot to file:</TEXT><TEXT voice="role">Radio button</TEXT><TEXT voice="system">shortcut</TEXT><TEXT voice="shortcut">Alt f </TEXT><TEXT voice="state">unchecked</TEXT></SRSOUT> <SRSOUT priority="0" preempt="true"><TEXT voice="name">Save screenshot to desktop</TEXT><TEXT voice="role">Radio button</TEXT><TEXT voice="system">shortcut</TEXT><TEXT voice="shortcut">Alt d </TEXT><TEXT voice="state">checked</TEXT></SRSOUT>
In case of radio buttons in gtk apps, when user moves from one button to other, a "state-changed:checked" event is received for first and a "focus:" for second (because in this scenario both buttons change their states). In Java dased apps, in same scenario only a "focus:" event for second is received. To change the state of focused button, user has to press "space" key. So, in case of moving to another radio-button, in case of gtk apps 2 events will be presented to user, and, in case of Java apps only one. But, in case of gtk apps, the second output (the wanted one) should interrupt the first one, so, even if the logs show that an unwanted event occurs, the user should hear only the wanted event.
Created attachment 25040 [details] [review] patch to report to speech only the new state for state-change event
This seems like a bug in Java/Swing - a JRadioButton component in Swing should fire the state-change event if its state changes, whether or not in the same operation focus moves to another JRadioButton.
In Java this event (state-changed) is fired, but, user can focus a radio-button without changing it state.
Because of differences between toolkits (java and gtk+) the number of events generated by gnopernicus and presented to user can not be reduced. But, because an event interrupts the previous, user will hear only last output. The real problem here is solved with patch for 133386. Patch solves only a presentation issue.