Bug 35654 - A writer document doesn't implement the Collection interface of AT-SPI.
Summary: A writer document doesn't implement the Collection interface of AT-SPI.
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All Linux (All)
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: accessibility
Depends on:
Blocks: a11y-Linux
  Show dependency treegraph
 
Reported: 2011-03-25 04:22 UTC by Dattatray Bhat
Modified: 2024-04-05 07:48 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
queryCollection() called on document frame raises NotImplementedError. (167.57 KB, image/png)
2011-03-25 04:22 UTC, Dattatray Bhat
Details
Get all the tables in a document via collection (1.59 KB, text/x-python)
2023-08-08 11:57 UTC, Joanmarie Diggs
Details
Sample document to use with the previous testing tool (13.93 KB, application/vnd.oasis.opendocument.text)
2023-08-08 12:02 UTC, Joanmarie Diggs
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dattatray Bhat 2011-03-25 04:22:53 UTC
Created attachment 44846 [details]
queryCollection() called on document frame raises NotImplementedError.

A writer document does not implement the Collection interface of AT-SPI. If
implemented, assistive tools like Orca screen reader can make a writer document
more accessible. For example, Orca can provide structural navigation in Libre Office writer, as it does in a webpage.

Steps to reproduce:
1. Start Libre Office. Create a word processor document. Enter some content or
leave blank. Save the document.

2. Start Accerciser accessibility explorer. Go to the accessible tree view at
top left and navigate to the Document view object with role document frame.

3. Go to python console at left bottom. The command acc.queryCollection() gives
"NotImplentedError".
Comment 1 Joanmarie Diggs 2011-08-08 16:39:06 UTC
Marking as blocked for now. Work is being done to implement AtkCollection and/or improvements in AtkDocument. Once that work is completed, this work can begin.
Comment 2 Björn Michaelsen 2011-12-23 11:47:51 UTC Comment hidden (obsolete)
Comment 3 Dattatray Bhat 2011-12-26 22:47:51 UTC
Today I rechecked my observation with Libre Office dev 3.5.0 beta2 and found
that the bug persists. I suggest that the bug be moved back to NEW status.
Comment 4 Florian Reisinger 2012-08-14 14:00:56 UTC Comment hidden (obsolete)
Comment 5 Florian Reisinger 2012-08-14 14:02:03 UTC Comment hidden (obsolete)
Comment 6 Florian Reisinger 2012-08-14 14:06:43 UTC Comment hidden (obsolete)
Comment 7 Florian Reisinger 2012-08-14 14:08:46 UTC Comment hidden (obsolete)
Comment 8 Dattatray Bhat 2012-08-16 05:54:49 UTC
The bug is real. I noticed it in version 3.3.0 and submitted it with a
supporting screenshot. I reconfirmed that the bug exists with version 3.5.0
beta2. It falls in the same category as bugs 35105, 35107, 35110, 35111, 35129
which you have reopened and changed to NEW.
Comment 9 Florian Reisinger 2012-08-16 11:40:43 UTC
Set status to NEW
Comment 10 Joanmarie Diggs 2013-02-01 02:42:07 UTC
(In reply to comment #8)
> The bug is real. I noticed it in version 3.3.0 and submitted it with a
> supporting screenshot. I reconfirmed that the bug exists with version 3.5.0
> beta2. It falls in the same category as bugs 35105, 35107, 35110, 35111,
> 35129
> which you have reopened and changed to NEW.

No it doesn't.

While we need to have an AtkCollection (see my comment 1) which would be implemented in LibreOffice; LibreOffice is not the one to implement AtspiCollection.

I made a change in AT-SPI2 to implement the AtspiCollection interface for all containers and not just those which implement the document interface.

http://git.gnome.org/browse/at-spi2-atk/commit/?id=4a95bdda0d2113767c7d4665727edef2ca45ef68
Comment 11 Christophe Strobbe 2013-08-07 12:30:32 UTC
The corresponding Apache OpenOffice bug is currently marked as "unconfirmed": https://issues.apache.org/ooo/show_bug.cgi?id=117547
Comment 12 QA Administrators 2015-04-01 14:43:00 UTC Comment hidden (obsolete)
Comment 13 Alex ARNAUD 2016-04-20 14:10:11 UTC
(In reply to Joanmarie Diggs from comment #10)
> 
> While we need to have an AtkCollection (see my comment 1) which would be
> implemented in LibreOffice; LibreOffice is not the one to implement
> AtspiCollection.
> 
> I made a change in AT-SPI2 to implement the AtspiCollection interface for
> all containers and not just those which implement the document interface.
> 
> http://git.gnome.org/browse/at-spi2-atk/commit/
> ?id=4a95bdda0d2113767c7d4665727edef2ca45ef68

If you have done the work for implementing AtSpiCollection in ATK, could we change the subject to remove "blocked" ?
Comment 14 QA Administrators 2018-06-23 02:49:22 UTC Comment hidden (obsolete)
Comment 15 Alex ARNAUD 2018-06-25 15:00:29 UTC
(In reply to Alex ARNAUD from comment #13)
> (In reply to Joanmarie Diggs from comment #10)
> > 
> > While we need to have an AtkCollection (see my comment 1) which would be
> > implemented in LibreOffice; LibreOffice is not the one to implement
> > AtspiCollection.
> > 
> > I made a change in AT-SPI2 to implement the AtspiCollection interface for
> > all containers and not just those which implement the document interface.
> > 
> > http://git.gnome.org/browse/at-spi2-atk/commit/
> > ?id=4a95bdda0d2113767c7d4665727edef2ca45ef68
> 
> If you have done the work for implementing AtSpiCollection in ATK, could we
> change the subject to remove "blocked" ?

I've never received reply from Joanie for that. I'm considering as no longer blocked.

It still happened in latest LibreOffice as no one has spent time on it.

Best regards,
Alex.
Comment 16 Michael Weghorn 2023-08-08 11:07:52 UTC
(In reply to Joanmarie Diggs from comment #10)
> While we need to have an AtkCollection (see my comment 1) which would be
> implemented in LibreOffice; LibreOffice is not the one to implement
> AtspiCollection.
> 
> I made a change in AT-SPI2 to implement the AtspiCollection interface for
> all containers and not just those which implement the document interface.
> 
> http://git.gnome.org/browse/at-spi2-atk/commit/
> ?id=4a95bdda0d2113767c7d4665727edef2ca45ef68

Without looking deeper into libatspi/ATK code, I'm wondering what would have to be done on LO side if it's not about implementing the AtspiCollection/AtkCollection interface?
Comment 17 Joanmarie Diggs 2023-08-08 11:57:47 UTC
Created attachment 188846 [details]
Get all the tables in a document via collection
Comment 18 Joanmarie Diggs 2023-08-08 12:02:11 UTC
Created attachment 188847 [details]
Sample document to use with the previous testing tool

Steps to reproduce:
1. Open the attached Writer document and make sure both pages are visible on screen.
2. Launch the previously-attached tool to find all tables via collection.
3. Click back in the Writer document.
4. Click back in the terminal if the tool didn't already exit, to exit the tool.
5. Resize the Writer window so that only the first page is visible on screen.
6. Go back to the terminal, relaunch the tool, reclick in the resized window.

Here are my results:

Step 3:
Searching in collection-test.odt - LibreOffice Writer frame
Found Table1-1 table
Found Table2-1 table
Found Table3-2 table

Step 6:
Searching in collection-test.odt - LibreOffice Writer frame
Found Table1-1 table
Found Table2-1 table

Notice that the second time, AtspiCollection is unable to find the third table. That's because AtspiCollection can only find things if they're in the accessibility tree.
Comment 19 Joanmarie Diggs 2023-08-08 12:05:00 UTC
(In reply to Michael Weghorn from comment #16)
> (In reply to Joanmarie Diggs from comment #10)
> > While we need to have an AtkCollection (see my comment 1) which would be
> > implemented in LibreOffice; LibreOffice is not the one to implement
> > AtspiCollection.
> > 
> > I made a change in AT-SPI2 to implement the AtspiCollection interface for
> > all containers and not just those which implement the document interface.
> > 
> > http://git.gnome.org/browse/at-spi2-atk/commit/
> > ?id=4a95bdda0d2113767c7d4665727edef2ca45ef68
> 
> Without looking deeper into libatspi/ATK code, I'm wondering what would have
> to be done on LO side if it's not about implementing the
> AtspiCollection/AtkCollection interface?

There is not an AtkCollection interface yet. But, at least now, all traditional ATK implementations get their AtspiCollection implementation for free. As my previous comment + tool + document show, I can use AtspiCollection to get stuff (I used it to get all the tables).

The problem that remains is that off-screen stuff isn't in the accessibility tree. So if the Orca user wants to navigate to the next table, but the next table is on page 10 and the user is on page 1, Orca will say "no more tables."
Comment 20 Michael Weghorn 2023-08-09 08:16:27 UTC
(In reply to Joanmarie Diggs from comment #19)
> The problem that remains is that off-screen stuff isn't in the accessibility
> tree. So if the Orca user wants to navigate to the next table, but the next
> table is on page 10 and the user is on page 1, Orca will say "no more
> tables."

Thanks for the update. Probably makes sense to address that together with tdf#96492 at some point.
Comment 21 Michael Weghorn 2024-04-05 07:48:01 UTC
(In reply to Michael Weghorn from comment #20)
> Thanks for the update. Probably makes sense to address that together with
> tdf#96492 at some point.

Let's keep track of that problem in tdf#96492. I'm closing this bug report here as WORKSFORME now, as it was originally about implementing the AT-SPI Collection interface, which was done on ATK level, so doesn't need action on LO side (at least for gtk3/ATK), see comment 19.

@Joanmarie: Please reopen if I'm missing something or you disagree.