GNOME Bugzilla – Bug 701874
Orca sometimes announce "missspelled" with every keystroke.
Last modified: 2013-11-13 13:17:00 UTC
(From a downstream bug: https://bugzilla.redhat.com/show_bug.cgi?id=970745) Description of problem: I use the gnome-shell with the screenreder orca. for my work i need libreoffice. If i write an document, orca doesnt speak the first wordi write on an empty document. Version-Release number of selected component (if applicable): Orca 3.8.1. LibreOffice 4.0.0.beta1.fc19 How reproducible: Run Orca-> enable "echo per word" in preferences -> open writer and type. Steps to Reproduce: 1. run orca with alt+f2 -> type "orca" -> hit enter OR enable screenreader over the gnome accessibility menue 2.go into orca preferences wit CAPSLOCK + Space (on laptop) or INSERT + SPACE on PC 3.Goto Page "Keyboard echo"(Tastaturecho in german) -> Enable Echo per Word (i dont know if it matters, but i do so) 4. Press OK 5 Start LibreOffice Writer 6 Type Correct and Incorrect words mixed and navigate arround Actual results: Sometimes Orca Say: "missspell" with every keystroke (doesnt matter if the current word is correct or not) after press return a view times it goes back to normal processing Expected results: Orca should always only say "misspelled" on incorrect words. Additional info: I use an german Setup with espeak as speechsyntezier.
Hi Chris. As you may have seen, we moved this bug upstream. (Unlike Ubuntu, a bug you see when using Fedora is typically upstream rather than downstream.) I fixed the bug where Orca is not echoing the first word, but I cannot reproduce your bug. So it would be super helpful if you could take a screenshot of what is displayed when Orca is saying misspelled when it should not be. Please attach it, along with a full debug.out, to this bug. How to get a full debug.out is described here: https://live.gnome.org/Orca/Debugging And you should be able to capture a screenshot of all that is showing on your screen by pressing the Print Screen key. It will put a copy in your pictures directory. When I have both I will try to reproduce your exact circumstances, text and all. Sorry and thanks!
Created attachment 246412 [details] Screenshot of the Libreoffice window.
Created attachment 246413 [details] Debug Log I open orca with alt + f2 -> orca --debug press super for enter the shell type libre open libre office and type: Test test deasdf dwerdadsf asdf ddddrehallothiswordsayswitheverykeystrokemissspelled in the second line i wait until the first word is underlined. then the problem happens at the second word sorry the file was in plain text to big.
I hope this helps
I reconized that the problem appears if i wait until the misspelled word is underlined (with an red line). for this point it always announce misspelled. reproduce: 1 open libreoffice with enabled spellcheck. 2. type "asdfd " (with space) 3. wait until "asdfd" is underlined with an red line (marked as misspelled) 4. try to type any new word (doesnt matther correct or incorrect) orca announce "misspelled" with every keystroke. it seems to me that something is not resettet with the new word.
Created attachment 256431 [details] New Debugfile
i think the part with SPEECH OUTPUT: 'falsch geschrieben' voice=system is the interesting one. falsch geschrieben= misspelled (in german)
Thanks for the logs. I will need to be able to reproduce it myself as this is likely not an Orca bug. Orca looks at the text attributes reported by LibreOffice for the offset reported by the caret-moved event. If LibreOffice tells us your caret moved to offset x and LibreOffice tells us that the text attributes at offset x include the misspelled word indicator, then Orca will say misspelled.
Hi Joanmarie, I see this problem also appers in Thunderbird (in my case version 17.x.x). So its maybe an orca bug? if i type an message in thunderbird and the last word i typed is misspelled and i wait until its underlined, orca alos announces misspeelld with every keystroke.
Created attachment 256644 [details] debug output from orca in Thunderbird i open orca --debug go to thunderbird open a new message go to the content text area and typed: helo test after "helo" i wait a second until "missspelled" is announced.
Ok, I'll keep trying to reproduce it. Thanks!
Sorry again, I see this also happens if i disable the function(for saying missspelled) in the attributes tab of the orca settings.
it seems the only way to prevent orca to say misspelled is to change the color of the "misspelled" marker line.
Created attachment 258034 [details] Macro for Goto next missspelling word in libreoffice/openoffice
Ignore my last comment... Changing the color only helps until next reboot ^^. But this makes wordprocessing nearby impossible to me or my girlfrind (and she need it to make her homework at the moment). if someone have the same problem -> disable this function 1. locate the orca installation and open the folder <orca>/scripts/apps/soffice 2. open the file with the function definition sudo vim script_utilities.py 3. Search the function isWordMisspelled /isWordMisspelled 4. search the return value of this function: return error == "misspelled" 5. change it to return everytime false return False #error == "misspelled" i cant see whats going wrong. maybe i will take a look later in evening I wrote (and attach) an libreoffice macro for goto next misspelled word. maybe this helps someone. you can give it an shortcut.
I'm curious.... If you do the following: 1. In a terminal do export ATSPI_NO_CACHE=1 2. In that same terminal launch Orca Does the problem still occur?
Yes, this also happens with disabled cache. can you also reproduce it? this happens in fedora 19 on all our installations ( 2 laptops and 2 desktops).
Hi joanie, Sorry that I m so annoying here, but can you take a look on this please :/. i know you are very busy, but this makes me crazy. And i realy need it to do my seminar paper. This makes finding missspelled words realy hard. i worked arround a little but this slows the process realy down :/. It would realy helpfull. Thanks for you hard work on orca.
Will you send me a tarball with your $HOME/.local/share/orca? The only thing I can think of is that you have changed some setting somewhere. Because I cannot reproduce this problem. And if you are telling me it also happens in Thunderbird too, this suggests to me that something may have been changed in your preferences.
(In reply to comment #10) > Created an attachment (id=256644) [details] > debug output from orca in Thunderbird > > i open orca --debug > go to thunderbird > open a new message > go to the content text area and typed: > helo test > > after "helo" i wait a second until "missspelled" is announced. By the way, in your example above, "helo" is misspelled. If you have the announcement of misspelled words enabled in Orca, announcing "misspelled" after a misspelled word is written is the expected behavior. That it takes a second to announce it is not good, but hopefully the work I am doing to improve Orca's performance will cause it to present the announcement in a more timely fashion.
(In reply to comment #20) > (In reply to comment #10) > > Created an attachment (id=256644) [details] [details] > > debug output from orca in Thunderbird > > > > i open orca --debug > > go to thunderbird > > open a new message > > go to the content text area and typed: > > helo test > > > > after "helo" i wait a second until "missspelled" is announced. > > By the way, in your example above, "helo" is misspelled. If you have the > announcement of misspelled words enabled in Orca, announcing "misspelled" after > a misspelled word is written is the expected behavior. That it takes a second Yes, i know. my problem is that orcan doesnt "stop" with announcing it. after i type "helo" and wait until misspelled is announced -> from now orca say misspelled with every keystroke in the case above it happens the following: helo (orca say missspelled" -> this is correct)t(orca say missspelled")e(orca say missspelled")s(orca say missspelled")t(orca say missspelled") > to announce it is not good, but hopefully the work I am doing to improve Orca's > performance will cause it to present the announcement in a more timely fashion. Yea thats realy cool :) i already test it out yesterday :),Its an real performance bost. damn cool stuff ;)
ii remove my settings so that orca use the default one -> the problem still happens
What locale? German??
Created attachment 259704 [details] My Settings Here Are my settings. But if i delete the orca folder in ~/.local/share the problem is still present. so i dont tink that my settings are the problem. i also can reproduce it with an fresh fedora 19 installation.
(In reply to comment #23) > What locale? German?? Yes.
Just to prove I'm not seeing the problem, I deleted all my settings, and then your Thunderbird test, once in an English session and once in a German session. Below is the speech output and key presentation from each. In other words, if Orca said it you'll see it below. $ grep -rE "SPEECH OUTPUT|KeyboardEvent.present" eng.out SPEECH OUTPUT: 'Screen reader on.' voice=hyperlink SPEECH OUTPUT: 'jd@blockhead:~/checkout/orca frame' voice=hyperlink KeyboardEvent.present: Alt_L SPEECH OUTPUT: 'left alt ' SPEECH OUTPUT: 'window' voice=hyperlink SPEECH OUTPUT: 'panel' voice=hyperlink SPEECH OUTPUT: 'Thunderbird push button' voice=hyperlink SPEECH OUTPUT: 'window' voice=hyperlink SPEECH OUTPUT: 'Thunderbird application gnome - jdiggs@igalia.com - Mozilla Thunderbird frame' KeyboardEvent.present: Control_L SPEECH OUTPUT: 'left control ' KeyboardEvent.present: N SPEECH OUTPUT: 'Write: (no subject) frame' SPEECH OUTPUT: 'To: entry' KeyboardEvent.present: Tab SPEECH OUTPUT: 'tab ' SPEECH OUTPUT: 'Subject: entry' KeyboardEvent.present: Tab SPEECH OUTPUT: 'tab ' SPEECH OUTPUT: 'blank' KeyboardEvent.present: h KeyboardEvent.present: e KeyboardEvent.present: l KeyboardEvent.present: o KeyboardEvent.present: space SPEECH OUTPUT: 'misspelled' voice=hyperlink KeyboardEvent.present: t KeyboardEvent.present: e KeyboardEvent.present: s KeyboardEvent.present: t KeyboardEvent.present: space SPEECH OUTPUT: 'jd@blockhead:~/checkout/orca' voice=hyperlink SPEECH OUTPUT: 'Screen reader off.' $ grep -rE "SPEECH OUTPUT|KeyboardEvent.present" de.out SPEECH OUTPUT: 'Bildschirmleser an.' SPEECH OUTPUT: 'jd@blockhead:~ Rahmen' voice=hyperlink KeyboardEvent.present: Alt_L SPEECH OUTPUT: 'Alt links ' SPEECH OUTPUT: 'Fenster' voice=hyperlink SPEECH OUTPUT: 'Panel' voice=hyperlink SPEECH OUTPUT: 'Thunderbird Druckknopf' voice=hyperlink SPEECH OUTPUT: 'Fenster' voice=hyperlink SPEECH OUTPUT: 'Thunderbird Anwendung gnome - jdiggs@igalia.com - Mozilla Thunderbird Rahmen' KeyboardEvent.present: Control_L SPEECH OUTPUT: 'Steuerung links ' KeyboardEvent.present: N SPEECH OUTPUT: 'Verfassen: (kein Betreff) Rahmen' SPEECH OUTPUT: 'An: Eingabefeld' KeyboardEvent.present: Tab SPEECH OUTPUT: 'Tab ' SPEECH OUTPUT: 'Betreff: Eingabefeld' KeyboardEvent.present: Tab SPEECH OUTPUT: 'Tab ' SPEECH OUTPUT: 'leer' KeyboardEvent.present: h KeyboardEvent.present: e KeyboardEvent.present: l KeyboardEvent.present: o KeyboardEvent.present: space SPEECH OUTPUT: 'falsch geschrieben' KeyboardEvent.present: t KeyboardEvent.present: e KeyboardEvent.present: s KeyboardEvent.present: t KeyboardEvent.present: space SPEECH OUTPUT: 'Verfassen: (kein Betreff) Rahmen' SPEECH OUTPUT: 'helo test ' SPEECH OUTPUT: 'jd@blockhead:~' voice=hyperlink SPEECH OUTPUT: 'Bildschirmleser aus.'
You are right, in thunderbird i cant reproduce it anymore. can you try it in libreoffice again? here does the problem already exist for me.
(In reply to comment #27) > You are right, in thunderbird i cant reproduce it anymore. That's progress. > can you try it in libreoffice again? here does the problem already exist for > me. And this is the part that puzzles me. Because there is an old bug in OpenOffice (and now LibreOffice) in which we don't get the event we need when the little squiggly line appears under a misspelled word, so Orca is not prompted to see if the word you just completed writing is misspelled. In other words, I've never had Orca say "misspelled" in LibreOffice as I type. It only presents it when you go back and arrow through the text. But since you asked... Yes, I repeated the test in LibreOffice Writer in both an English session and in a German session. In the German session, "test" got marked as misspelled in LibreOffice and I wanted a test case where we had an initial misspelled word followed by correctly-spelled words because that is the bug you are reporting. Since I don't know German, I started typing the names of the menus on the menu bar. <grins> At no time did Orca say "misspelled" or the German equivalent as I typed. Here is the output from both to prove it: $ grep -rE "SPEECH OUTPUT|KeyboardEvent.present" en-lo.out SPEECH OUTPUT: 'Screen reader on.' SPEECH OUTPUT: 'jd@blockhead:~ frame' voice=hyperlink KeyboardEvent.present: Alt_L SPEECH OUTPUT: 'left alt ' SPEECH OUTPUT: 'window' voice=hyperlink SPEECH OUTPUT: 'panel' voice=hyperlink SPEECH OUTPUT: 'LibreOffice Writer push button' voice=hyperlink SPEECH OUTPUT: 'window' voice=hyperlink KeyboardEvent.present: h KeyboardEvent.present: e KeyboardEvent.present: l KeyboardEvent.present: o KeyboardEvent.present: space KeyboardEvent.present: t KeyboardEvent.present: e KeyboardEvent.present: s KeyboardEvent.present: t KeyboardEvent.present: space SPEECH OUTPUT: 'jd@blockhead:~ frame' voice=hyperlink SPEECH OUTPUT: 'jd@blockhead:~' voice=hyperlink SPEECH OUTPUT: 'Screen reader off.' $ grep -rE "SPEECH OUTPUT|KeyboardEvent.present" de-lo.out SPEECH OUTPUT: 'Bildschirmleser an.' voice=system SPEECH OUTPUT: 'jd@blockhead:~ Rahmen' voice=hyperlink KeyboardEvent.present: Alt_L SPEECH OUTPUT: 'Alt links ' SPEECH OUTPUT: 'Fenster' voice=hyperlink SPEECH OUTPUT: 'Panel' voice=hyperlink SPEECH OUTPUT: 'LibreOffice Writer Druckknopf' voice=hyperlink SPEECH OUTPUT: 'Fenster' voice=hyperlink KeyboardEvent.present: h KeyboardEvent.present: e KeyboardEvent.present: l KeyboardEvent.present: o KeyboardEvent.present: space KeyboardEvent.present: Shift_R SPEECH OUTPUT: 'Umschalt rechts ' KeyboardEvent.present: F KeyboardEvent.present: e KeyboardEvent.present: n KeyboardEvent.present: s KeyboardEvent.present: t KeyboardEvent.present: e KeyboardEvent.present: r KeyboardEvent.present: space KeyboardEvent.present: Shift_R SPEECH OUTPUT: 'Umschalt rechts ' KeyboardEvent.present: F KeyboardEvent.present: o KeyboardEvent.present: r KeyboardEvent.present: m KeyboardEvent.present: a KeyboardEvent.present: t KeyboardEvent.present: space SPEECH OUTPUT: 'jd@blockhead:~ Rahmen' voice=hyperlink SPEECH OUTPUT: 'jd@blockhead:~' voice=hyperlink SPEECH OUTPUT: 'Bildschirmleser aus.' voice=system
Aha. Silly me, I was testing with Orca master. I was able to reproduce this finally and pretty reliably, with Orca stable. I've since been trying some more and cannot reproduce it in that same environment using Orca master. (As a related aside, I have pretty much re-written the LibreOffice script in Orca.) Since you indicated you were able to try Orca master, could you please let me know if you are still seeing the bug there? Thanks!
In the meantime, guess it's time to start filing those LibreOffice bugs..... Accessible text-attributes-changed signals should only be emitted when the text attributes have changed https://bugs.freedesktop.org/show_bug.cgi?id=71556
Accessible text-attributes-changed signals are not emitted when a word becomes marked as misspelled https://bugs.freedesktop.org/show_bug.cgi?id=71558
And just to be darned sure the beast is 100% slaughtered, I just committed a change to Orca master so that we ignore the offending event for LibreOffice. https://git.gnome.org/browse/orca/commit/?id=e62b45bb90544fa3aa5cb3b5935af0e3005a10fc Closing this as NOTGNOME. I'll remove the above hack when the LibreOffice bugs are fixed.
Realy thanks for this Joanie, But its funny thats the same problem exists in Thunderbird for a short wile :D(at the same time). The Debug.out is the evidence. But you are right. In thunderbird it work now as exept.