GNOME Bugzilla – Bug 672784
In Libreoffice Writer Orca always spokening tutorial message text
Last modified: 2012-04-12 10:06:11 UTC
Created attachment 210546 [details] Debug file with perhaps shows why happening this problem Dear Developers, If I launch Libreoffice Writer and type text, every ENTER key press Orca spokening text role related tutorial message if the speak tutorial message check box is checked. Happening similar issue if I move the caret with Up or Down arrow keys, this situation Orca double spokening the actual line. Reproducation steps: 1. Enable spokening tutorial messages in Orca preferences dialog/speech page. 2. Launch Libreoffice Writer, type few lines, separate with ENTER keys. Every ENTER key press you will be hear tutorial message the text role related. 3. After you type some lines, press CTRL+HOME key combination, and move the caret with Up or Down arrow keys. Every new selected lines you will be hear double, and Orca always will be spokening "type text" tutorial message. The interesting think this problem is not always reproducable, but when I launched first with Libreoffice Writer, I experienced this issue. I have lucky, because generated a debug.out file when I experienced this issue, sending with attachment. What showing the debug.out file? I experienced this issue under Ubuntu 12.04, Orca latest master version and Libreoffice Writer 3.5 version. Attila
I cannot reproduce this so far. Though I see that your debug.out input confirms the problem. I suspect it is a timing issue. Before I just hack around it I would like to be able to reproduce it first so that I can test my fix. Do you have any reliable steps to force the issue to occur?
Hy Joanie, I begin think this is a timing issue. I not reproducable this issue if I enable in Libreoffice.org preferences the quick start possibility. This situation Libreoffice.org starting about 2 second my machine, and this issue are not happening. Same test results producing Libreoffice.org if already once started Libreoffice Writer the active session. Try reproducing following way this error: 1. Ensure not enabled Libreoffice quick start in Libreoffice Writer preferences. 2. Restart your system, and log in. 3. Start libreoffice Writer, and try doing the wrote test cases. First Libreoffice Writer start this situation happening my machine more than 10 second. Attila
Hmmmm. I already have the quickstarter disabled.
Joanie, I very fraid have timing issues in Libreoffice Calc too with first start. When I first starting Libreoffice Calc, my braille display I see more cells (a1 cell, b1 cell, c1 cell, etc), but arrow key presses Orca not follow up cell movements. Not happening cell coordinates spokening and cell change follow up with the braille display, braille cursor not changing. Can you reproduce this? I doing you a video to easyest determine what happening visualy if I experiencing this issue? Keep this problem too this report, or attach a new debug.out with a new report? Attila
Created attachment 210843 [details] Debug file with shows what happening with first Libreoffice Calc Look what happening when I first start Libreoffice Calc. If need, I archived this debug.out file and attach a new report if this issue is a separated issue. Attila
So I think the Calc issues are fixed. And if they are not, they should not be here, but in their own bug reports. For this bug, which is the presenting of tutorial messages for the paragraphs in Writer which get focus.... I still cannot reproduce this bug to save my life. Also, I've been making some changes in master which will address LibreOffice bogusity. So all I can say is keep testing and trying to find a reproducible test case I can work with. Sorry and thanks!
Hy Joanie, If quick start is not enabled, first Libreoffice Writer Orca spokening me following tutorial message with every up or down arrow, or enter key presses: #. Translators: This is the tutorial string for when landing #. on text fields. #: ../src/orca/tutorialgenerator.py:414 msgid "Type in text." msgstr "Gépelje be a kért információt, vagy módosítsa a meglévőt." In src/orca/tutorialgenerator.py file have following code: def _getTutorialForText(self, obj, alreadyFocused, forceTutorial): """Get the tutorial string for a text object. Arguments: - obj: the text component - alreadyFocused: False if object just received focus - forceTutorial: used for when whereAmI really needs the tutorial string Returns a list of tutorial utterances to be spoken for the object. """ utterances = [] # Translators: This is the tutorial string for when landing # on text fields. msg = _("Type in text.") if (not alreadyFocused or forceTutorial) and \ not self._script.utilities.isReadOnlyTextArea(obj): utterances.append(msg) self._debugGenerator("_getTutorialForText", obj, alreadyFocused, utterances) return utterances Attila
I know the tutorial generator code. What I do not understand is why it is getting called just for you. That is what I need to find out. And as I have said, I don't have quick start enabled either.
Hy Joanie, I tryed first Libreoffice Writer start again. When the tutorial message related problem happened my system, I run simple orca --replace command, and the problem resolved without need closing and restarting Libreoffice Writer again. Very interesting this problem. I associated a hotkey with this command to easyest restarting with Orca without need changing an another window. The experienced mistifical test result is similar with I experienced with Libreoffice Calc an another bug, another bug the Orca restart resolves the Calc related input fields related issues. Where we go forward? I making two full debug.out file to possible easyest detecting the differences with Libreoffice Writer Events? Attila
Created attachment 211454 [details] Full two debug outputs with showing the bad and good working results between Orca restarts Hy Joanie, I maked two full debugs with showing hopefuly the differences between bad working result and good working result with Libreoffice Writer start. Look this two debug parts: Bad result when I start first time with Orca the full debug support and started Libreoffice Writer, excuse me the long comment: ^^^^^ PROCESS OBJECT EVENT object:text-caret-moved ^^^^^ ----------> QUEUEING OBJECT:STATE-CHANGED:FOCUSED DEQUEUED OBJECT:STATE-CHANGED:FOCUSED <---------- vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(0,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable multi line multiselectable showing visible' relations='flows from' Script for event: default (module=orca.scripts.default) TOTAL PROCESSING TIME: 0.0029 ^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^ ----------> QUEUEING OBJECT:STATE-CHANGED:FOCUSED DEQUEUED OBJECT:STATE-CHANGED:FOCUSED <---------- vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(1,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' Script for event: default (module=orca.scripts.default) LOCUS OF FOCUS: app='soffice' name='' role='paragraph' event='object:state-changed:focused' PREPARATION TIME: 0.0013 generate braille for focused app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' (args={'formatType': 'focused', 'role': <enum ATSPI_ROLE_PARAGRAPH of type Role>, 'mode': 'braille', 'recursing': True}) using '(includeContext and (ancestors + (rowHeader and [Region(" " + asString(rowHeader))]) + (columnHeader and [Region(" " + asString(columnHeader))]) + (radioButtonGroup and [Region(" " + asString(radioButtonGroup))]) + [Region(" ")]) or []) + [Text(obj, asString(label + placeholderText), asString(eol))] + (required and [Region(" " + asString(required))]) + (readOnly and [Region(" " + asString(readOnly))]) + (nodeLevel and [Region(" " + asString(nodeLevel))])' GENERATION TIME: 0.0025 ----> includeContext=False GENERATION TIME: 0.0014 ----> label=[] GENERATION TIME: 0.0010 ----> placeholderText=[] GENERATION TIME: 0.0004 ----> eol=[u' '] GENERATION TIME: 0.0050 ----> required=[] isReadOnlyTextArea=False for app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' GENERATION TIME: 0.0072 ----> readOnly=[] GENERATION TIME: 0.0055 ----> nodeLevel=[] COMPLETION TIME: 0.0291 generate braille results: Text: 'kqrte ', 0 BRAILLE LINE: 'kqrte ' VISIBLE: 'kqrte ', cursor=1 PREPARATION TIME: 0.0013 generate speech for unfocused app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' (args={'recursing': True, 'priorObj': <Accessible object at 0x9cabf04 (AtspiAccessible at 0x9d1f350)>, 'role': <enum ATSPI_ROLE_PARAGRAPH of type Role>, 'mode': 'speech', 'formatType': 'unfocused'}) using 'newAncestors + newRowHeader + newColumnHeader + newRadioButtonGroup + labelOrName + readOnly + textRole + currentLineText + allTextSelection + (mnemonic and (pause + mnemonic + lineBreak) or []) + newNodeLevel + unselectedCell + (tutorial and (pause + tutorial) or [])' script_utilities.commonAncestor... ...script_utilities.commonAncestor GENERATION TIME: 0.0021 ----> newAncestors=[] GENERATION TIME: 0.0003 ----> newRowHeader=[] GENERATION TIME: 0.0003 ----> newColumnHeader=[] GENERATION TIME: 0.0002 ----> newRadioButtonGroup=[] GENERATION TIME: 0.0002 ----> labelOrName=[] isReadOnlyTextArea=False for app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' GENERATION TIME: 0.0016 ----> readOnly=[] GENERATION TIME: 0.0003 ----> textRole=[] GENERATION TIME: 0.0054 ----> currentLineText=['k\xc3\xb6rte', {u'average-pitch': 3.0, u'rate': 90.0, u'family': {u'locale': u'hu', u'name': u'magyar'}}] GENERATION TIME: 0.0009 ----> allTextSelection=[] GENERATION TIME: 0.0004 ----> mnemonic=[] GENERATION TIME: 0.0009 ----> newNodeLevel=[] GENERATION TIME: 0.0004 ----> unselectedCell=[] isReadOnlyTextArea=False for app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' GENERATOR: _getTutorialForText obj = role = paragraph alreadyFocused = False utterances: (Gépelje be a kért információt, vagy módosítsa a meglévőt.) GENERATOR: getTutorial obj = role = paragraph alreadyFocused = False utterances: (Gépelje be a kért információt, vagy módosítsa a meglévőt.) GENERATION TIME: 0.0027 ----> tutorial=['G\xc3\xa9pelje be a k\xc3\xa9rt inform\xc3\xa1ci\xc3\xb3t, vagy m\xc3\xb3dos\xc3\xadtsa a megl\xc3\xa9v\xc5\x91t.', {}] GENERATION TIME: 0.0003 ----> pause=[<orca.speech_generator.Pause instance at 0x99046ec>] COMPLETION TIME: 0.0182 generate speech results: körte {u'average-pitch': 3.0, u'rate': 90.0, u'family': {u'locale': u'hu', u'name': u'magyar'}} <orca.speech_generator.Pause instance at 0x99046ec> Gépelje be a kért információt, vagy módosítsa a meglévőt. {} SPEECH OUTPUT: 'körte.' SPEECH OUTPUT: 'Gépelje be a kért információt, vagy módosítsa a meglévőt.' Good result after I restarted Orca with full debug mode with an another debug.out file, Libreoffice Writer doesn't closed: ----------> QUEUEING FOCUS: DEQUEUED FOCUS: <---------- vvvvv PROCESS OBJECT EVENT focus: vvvvv OBJECT EVENT: focus: detail=(0,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) TOTAL PROCESSING TIME: 0.0050 ^^^^^ PROCESS OBJECT EVENT focus: ^^^^^ KEYBOARDEVENT: type=1 id=65362 hw_code=111 modifiers=0 event_string=(Up) keyval_name=(Up) is_text=True timestamp=777492 time=1333701285.306203 keyType=navigation shouldEcho=False KEYBOARDEVENT: type=0 id=65364 hw_code=116 modifiers=0 event_string=(Down) keyval_name=(Down) is_text=True timestamp=778055 time=1333701285.816094 keyType=navigation shouldEcho=False ----------> QUEUEING OBJECT:TEXT-CARET-MOVED DEQUEUED OBJECT:TEXT-CARET-MOVED <---------- vvvvv PROCESS OBJECT EVENT object:text-caret-moved vvvvv OBJECT EVENT: object:text-caret-moved detail=(-1,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) TOTAL PROCESSING TIME: 0.0040 ^^^^^ PROCESS OBJECT EVENT object:text-caret-moved ^^^^^ ----------> QUEUEING OBJECT:STATE-CHANGED:FOCUSED DEQUEUED OBJECT:STATE-CHANGED:FOCUSED <---------- vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(0,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable multi line multiselectable showing visible' relations='flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) TOTAL PROCESSING TIME: 0.0036 ^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^ ----------> QUEUEING OBJECT:STATE-CHANGED:FOCUSED DEQUEUED OBJECT:STATE-CHANGED:FOCUSED <---------- vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(1,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) LOCUS OF FOCUS: app='soffice' name='' role='paragraph' event='object:state-changed:focused' PREPARATION TIME: 0.0021 generate braille for focused app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' (args={'useDefaultFormatting': False, 'formatType': 'focused', 'role': <enum ATSPI_ROLE_PARAGRAPH of type Role>, 'mode': 'braille', 'recursing': True}) using '(includeContext and (ancestors + (rowHeader and [Region(" " + asString(rowHeader))]) + (columnHeader and [Region(" " + asString(columnHeader))]) + (radioButtonGroup and [Region(" " + asString(radioButtonGroup))]) + [Region(" ")]) or []) + [Text(obj, asString(label + placeholderText), asString(eol))] + (required and [Region(" " + asString(required))]) + (readOnly and [Region(" " + asString(readOnly))]) + (nodeLevel and [Region(" " + asString(nodeLevel))])' GENERATION TIME: 0.0034 ----> includeContext=False GENERATION TIME: 0.0020 ----> label=[] GENERATION TIME: 0.0014 ----> placeholderText=[] GENERATION TIME: 0.0008 ----> eol=[u' '] GENERATION TIME: 0.0063 ----> required=[] GENERATION TIME: 0.0064 ----> readOnly=[] GENERATION TIME: 0.0073 ----> nodeLevel=[] COMPLETION TIME: 0.0370 generate braille results: Text: 'kqrte ', 0 BRAILLE LINE: 'kqrte ' VISIBLE: 'kqrte ', cursor=1 TOTAL PROCESSING TIME: 0.0456 ^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^ ----------> QUEUEING OBJECT:TEXT-CARET-MOVED DEQUEUED OBJECT:TEXT-CARET-MOVED <---------- vvvvv PROCESS OBJECT EVENT object:text-caret-moved vvvvv OBJECT EVENT: object:text-caret-moved detail=(0,0,0) app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) BRAILLE LINE: 'kqrte ' VISIBLE: 'kqrte ', cursor=1 sayLine: line=<körte>, len=6, start=0, caret=0, speakBlankLines=True SPEECH OUTPUT: 'körte' TOTAL PROCESSING TIME: 0.0285 So, if I see right, first debug.out file the default script processing input events, second debug.out file right the soffice script doing this task. Showing this two line the result: 1. Bad part: app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' Script for event: default (module=orca.scripts.default) 2. Good part: app.name='soffice' name='None' role='paragraph' state='editable enabled focusable focused multi line multiselectable showing visible' relations='flows from flows to' Script for event: soffice (module=orca.scripts.apps.soffice.script) Why not loaded Orca first time with Soffice script? Attila
The difference is that in the first case the accessibles coming from LibreOffice are dead or otherwise causing spit-ups. For instance: Here's the offending window-activate event in which we attempt to use AT-SPI2 to get the relation set (and get an exception) and the object toolkit (and get an exception). OBJECT EVENT: window:activate detail=(0,0,Névtelen 1 - LibreOffice Writer) app.name='soffice' (exception getting relation set)name='Névtelen 1 - LibreOffice Writer' role='frame' state='active enabled resizable sensitive showing visible' relations='' _toolkitForObject: [frame | Névtelen 1 - LibreOffice Writer] no longer exists Script for event: default (module=orca.scripts.default) What surprises me a bit is that my change to master didn't kick in and decide not to process this event. Or is this from the 3.4 branch?
Yes, unfortunately this is the master branch. I don't understand this. I already full uninstalled entire with Orca before I doed a full recompilation yesterday when we see together mistifical issues. Not matter if Orca installed under default /usr/local prefix? Attila
Thinking about and looking at this more, I bet what is happening is that we are getting a timeout/hang error from AT-SPI2 rather than a dead accessible. I wonder if AT-SPI2's timeout could be a bit longer in the case of the launching of an application? That's a question for Mike, so CCing him to the bug.
Attila, Mike just checked in a change to AT-SPI2's gnome-3-4 branch. Could you please test it? It should give apps more time to start up before being declared as apparently hung/timed-out. Important: It needs to be the branch; the similar changes he made in master require that I also change something in Orca and I have not done so. Branch should just do it for you automatically.
Created attachment 211806 [details] Debug file with shows some Libreoffice Writer start Joanie, unfortunately I doesn't see any change after I doed following changes my system and restarted my system: 1. Pull at-spi2-core source with git clone git://git.gnome.org/at-spi2-core 2. Navigate the source directory. 3. Run git checkout gnome-3-4 command. 4. Run ./autogen.sh --prefix=/usr command. 5. Run make and make install commands, and restarted the system. When I logged in after restart, I doed four or five Libreoffice Writer start. Only the last start not happened this mistifical tutorial messages related problem, I don't understand why. Attila
Mike attached an AT-SPI2 patch to the timeout bug which increases the timeout considerably. Please test it. Thanks. https://bugzilla.gnome.org/show_bug.cgi?id=673713#c6
My machine doesn't happened this mistifical issue after I applied Mike patch and maked a local deb package the modified at-spi2-core package. Attila
(In reply to comment #17) > My machine doesn't happened this mistifical issue after I applied Mike patch > and maked a local deb package the modified at-spi2-core package. Yay! :) Thanks for testing. *** This bug has been marked as a duplicate of bug 673713 ***