Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
6.4.0 Beta1
-
None
-
Debian testing with qtbase self-compiled from the dev branch as of commit 8bf9769d545234b1c654f82a77761c2e5f780f33 and LibreOffice built from its master branch as of commit e4066a41406b1ddd454901b4fa718cf9be2746c4
-
-
5145d3899d (qt/qtbase/dev) 5145d3899d (qt/tqtc-qtbase/dev)
Description
Currently, Qt does not support the AT-SPI TableCell interface for objects implementing QAccessibleTableCellInterface, even if QAccessibleTableCellInterface already has everything it would need to support the methods of the AT-SPI interface. I ran into this while improving support for the Qt 6 based LibreOffice UI, so the following demo uses that.
Steps to reproduce:
1) start LibreOffice Calc (current master as of commit e4066a41406b1ddd454901b4fa718cf9be2746c4, compiled with the `--enable-qt6` switch) with so-called the "qt6" VCL plugin (i.e. Qt 6 integration) on Linux
SAL_USE_VCLPLUGIN=qt6 ./instdir/program/soffice.bin --calc
2) start "Accerciser" (tool for analysis of accessibility objects)
3) navigate to a Calc cell in Accerciser's a11y tree, e.g. D1
4) use Accerciser's IPython console to list the currently implemented AT-SPI interfaces and try to retrieve the table cell interface, which currently fails (commands and output at the bottom)
Actual result:
The list of interfaces does not contain the AT-SPI TableCell interface, even though this is a table cell and LibreOffice implements the `QAccessibleTableCellInterface` for the underlying a11y object.
Expected result:
The list of interfaces should contain the AT-SPI TableCell interface, and it should be possible to call methods on that interface.
In [3]: acc.get_interfaces()
Out[4]: ['Accessible', 'Action', 'Component', 'Text', 'Value']
In [4]: acc.queryTableCell()
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
/usr/lib/python3/dist-packages/pyatspi/_init_.py in <module>
----> 1 acc.queryTableCell()/usr/lib/python3/dist-packages/pyatspi/Accessibility.py in <lambda>
{{ 151 Atspi.Accessible.querySelection = lambda x: Selection(getInterface(Atspi.Accessible.get_selection_iface, x))}}
{{ 152 Atspi.Accessible.queryTable = lambda x: Table(getInterface(Atspi.Accessible.get_table_iface, x))}}
--> 153 Atspi.Accessible.queryTableCell = lambda x: TableCell(getInterface(Atspi.Accessible.get_table_cell, x))
{{ 154 Atspi.Accessible.queryText = lambda x: Text(getInterface(Atspi.Accessible.get_text_iface, x))}}
{{ 155 Atspi.Accessible.queryValue = lambda x: Value(getInterface(Atspi.Accessible.get_value_iface, x))}}/usr/lib/python3/dist-packages/pyatspi/Accessibility.py in getInterface(func, obj)
{{ 66 if ret:}}
{{ 67 return ret}}
---> 68 raise NotImplementedError
{{ 69 }}
{{ 70 def getEventType(event):}}{{NotImplementedError: }}
In [5]:
Attachments
For Gerrit Dashboard: QTBUG-104793 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
420500,6 | a11y atspi: Support AT-SPI table cell interface | dev | qt/qtbase | Status: MERGED | +2 | 0 |