After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 672784 - In Libreoffice Writer Orca always spokening tutorial message text
In Libreoffice Writer Orca always spokening tutorial message text
Status: RESOLVED DUPLICATE of bug 673713
Product: orca
Classification: Applications
Component: speech
3.3.x
Other All
: Normal normal
: ---
Assigned To: Joanmarie Diggs (IRC: joanie)
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-03-25 06:15 UTC by Hammer Attila
Modified: 2012-04-12 10:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Debug file with perhaps shows why happening this problem (465.36 KB, application/octet-stream)
2012-03-25 06:15 UTC, Hammer Attila
Details
Debug file with shows what happening with first Libreoffice Calc (247.11 KB, application/octet-stream)
2012-03-29 05:14 UTC, Hammer Attila
Details
Full two debug outputs with showing the bad and good working results between Orca restarts (26.38 KB, application/zip)
2012-04-06 09:08 UTC, Hammer Attila
Details
Debug file with shows some Libreoffice Writer start (64.09 KB, application/zip)
2012-04-11 05:19 UTC, Hammer Attila
Details

Description Hammer Attila 2012-03-25 06:15:35 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
Comment 1 Joanmarie Diggs (IRC: joanie) 2012-03-27 21:48:07 UTC
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?
Comment 2 Hammer Attila 2012-03-28 04:58:54 UTC
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
Comment 3 Joanmarie Diggs (IRC: joanie) 2012-03-28 12:57:09 UTC
Hmmmm. I already have the quickstarter disabled.
Comment 4 Hammer Attila 2012-03-28 15:16:08 UTC
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
Comment 5 Hammer Attila 2012-03-29 05:14:11 UTC
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
Comment 6 Joanmarie Diggs (IRC: joanie) 2012-04-04 21:30:11 UTC
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!
Comment 7 Hammer Attila 2012-04-05 06:32:13 UTC
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
Comment 8 Joanmarie Diggs (IRC: joanie) 2012-04-05 11:21:34 UTC
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.
Comment 9 Hammer Attila 2012-04-06 07:57:57 UTC
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
Comment 10 Hammer Attila 2012-04-06 09:08:55 UTC
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
Comment 11 Joanmarie Diggs (IRC: joanie) 2012-04-06 13:57:10 UTC
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?
Comment 12 Hammer Attila 2012-04-06 14:02:31 UTC
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
Comment 13 Joanmarie Diggs (IRC: joanie) 2012-04-06 14:18:16 UTC
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.
Comment 14 Joanmarie Diggs (IRC: joanie) 2012-04-10 16:55:14 UTC
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.
Comment 15 Hammer Attila 2012-04-11 05:19:59 UTC
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
Comment 16 Joanmarie Diggs (IRC: joanie) 2012-04-11 19:13:51 UTC
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
Comment 17 Hammer Attila 2012-04-12 06:46:44 UTC
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
Comment 18 Joanmarie Diggs (IRC: joanie) 2012-04-12 10:06:11 UTC
(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 ***