GNOME Bugzilla – Bug 361624
Flat review sometimes fails to move to second column of text in OOo Writer documents
Last modified: 2006-10-18 16:43:09 UTC
Please describe the problem: Given an OOo Writer document in which the text is formatted in multiple columns, you cannot always flat review to the text in the second and subsequent columns Steps to reproduce: 1. Open column-example.odt (to be attached) 2. Use flat review to navigate line by line Actual results: Orca flat reviews through the text in the left column and (for the most part) ignores the text in the right column. When you reach the bottom of the column, flat review moves to the status bar rather than wrapping. Expected results: ONE of two things: 1. Flat review would provide access to the full line, ignoring the column division 2. Flat review would provide access to the first column, then wrap to the second column, and finally move to the status bar. Does this happen every time? Not with every document, but reliably with certain documents such as the attached. Other information:
Created attachment 74540 [details] sample document referenced in bug report
Add accessibility keyword. Apologies for spam.
Created attachment 74951 [details] Simpler Column example. For me, Orca won't flat review the actual contents of the document at all in this version of the columns example. Investigating now...
Created attachment 74953 [details] Orca debug whilst trying to flat review (by line) the simpler column example.
Here's the accessible component hierarchy for OOo Writer whilst viewing the simple column example. +-name='soffice.bin' role='application' state='' relations='' +-name='simpler_column_example.odt - OpenOffice.org Writer' role='frame' state='ACTIVE ENABLED RESIZABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='simpler_column_example.odt - OpenOffice.org Writer' role='root pane' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='menu bar' state='ENABLED FOCUSABLE OPAQUE SENSITIVE SHOWING VISIBLE' relations='' +-name='File' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Edit' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='View' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Insert' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Format' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Table' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Tools' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Window' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Help' role='menu' state='ENABLED OPAQUE SELECTABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Standard' role='tool bar' state='ENABLED FOCUSABLE HORIZONTAL SENSITIVE SHOWING VISIBLE' relations='' +-name='New' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Open' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Save' role='push button' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Document as E-mail' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Edit File' role='push button' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Export Directly as PDF' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Print File Directly' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Page Preview' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Spellcheck' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='AutoSpellcheck' role='push button' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Cut' role='push button' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Copy' role='push button' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Paste' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Format Paintbrush' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Can't Undo' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Can't Restore' role='push button' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Hyperlink' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Table' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Show Draw Functions' role='toggle button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Find & Replace' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Navigator' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Gallery' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Data Sources' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Nonprinting Characters' role='push button' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Zoom' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='OpenOffice.org Help' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Formatting' role='tool bar' state='ENABLED FOCUSABLE HORIZONTAL SENSITIVE SHOWING VISIBLE' relations='' +-name='Styles and Formatting' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Apply Style' role='panel' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Apply Style' role='combo box' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='text' state='EDITABLE ENABLED FOCUSABLE SENSITIVE SHOWING SINGLE_LINE VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Font Name' role='panel' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Font Name' role='combo box' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='text' state='EDITABLE ENABLED FOCUSABLE SENSITIVE SHOWING SINGLE_LINE VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Font Size' role='panel' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Font Size' role='combo box' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='text' state='EDITABLE ENABLED FOCUSABLE SENSITIVE SHOWING SINGLE_LINE VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Bold' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Italic' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Underline' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Align Left' role='push button' state='CHECKED ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Centered' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Align Right' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Justified' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Numbering On/Off' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Bullets On/Off' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Decrease Indent' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Increase Indent' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name='Font Color' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Highlighting' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Background Color' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='separator' state='FOCUSABLE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='scroll pane' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Document view' role='unknown' state='EDITABLE ENABLED MULTISELECTABLE OPAQUE SHOWING VISIBLE' relations='' +-name=None role='filler' state='ENABLED RESIZABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='panel' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='scroll bar' state='ENABLED FOCUSABLE HORIZONTAL SENSITIVE SHOWING VISIBLE' relations='' +-name='Previous page' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Next page' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name='Navigation' role='push button' state='ENABLED FOCUSABLE SENSITIVE SHOWING VISIBLE' relations='' +-name=None role='scroll bar' state='ENABLED FOCUSABLE SENSITIVE SHOWING VERTICAL VISIBLE' relations='' +-name=None role='statusbar' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Page Number' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Page Style' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Zoom' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Insert Mode' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Selection Mode' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Hyperlinks Active' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Document Modified' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Digital Signatures' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' +-name='Size' role='label' state='ENABLED SENSITIVE SHOWING VISIBLE' relations='' I think the problem is related to: +-name='Document view' role='unknown' state='EDITABLE ENABLED MULTISELECTABLE OPAQUE SHOWING VISIBLE' relations='' which has an 'unknown' role. Still looking...
If you remove the blanks lines (e.g., <CR><CR>) from the right hand column, flat review seems to get the second column. If go back and manually add a blank line, it also works. Something seems like it might be odd with the document and we're getting something that is triggering the defensive checks or something else in flat_review.py:getZonesFromAccessible in the loop around line 1110.
I think the problem is in getShowingZones() in flat_review.py at about line 1445. There is the following code: elif child.state.count(atspi.Accessibility.STATE_SHOWING): objlist.extend(getShowingZones(child)) Inside the "Document View" in OOo, there are three children. Two have role 'paragraph' and the other has a role of 'filler'. Unfortunately, the STATE_SHOWING state for the two 'paragraph' children is 0. This looks like yet another OOo bug to me. I'll file one, and block this bug against it.
Ignore my last comment. Will and I just debugged this. The problem was with edge conditions in the visible() method in flat_review.py. All four tests involving "<" should have been "<=". Patch to follow...
Created attachment 74959 [details] [review] Patch to fix the problem.
Changes checked into CVS HEAD. Closed as FIXED.