Bug 99609 - Expert Configuration dialog does not correctly expose column names or row attributes (Windows, NVDA)
Summary: Expert Configuration dialog does not correctly expose column names or row att...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
5.2.0.0.alpha0+
Hardware: All Windows (All)
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard: target:24.2.0
Keywords: accessibility, implementationError
Depends on:
Blocks: a11y, Accessibility Options-Dialog-Expert
  Show dependency treegraph
 
Reported: 2016-05-01 16:26 UTC by V Stuart Foote
Modified: 2023-08-28 13:04 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description V Stuart Foote 2016-05-01 16:26:40 UTC
The Tree list for the Expert Configuration dialog does not expose for assistive technology columns other than the Preference Name.

Also, and more troublesome, when using the search and results are returned just the top level Preference Name is exposed--but the actual rows holding each property are not accessible.

Preference name, Property, Type and Value foreach stanza are not exposed to assistive technology tools.

While understandably costly to provide for the whole tree, believe we should expose the column names and cell values when a valid search result is returned -- as is there is no accessibile event emitted and the attributes can not be reviewed or edited using AT.

STR

Oepn a screen reader (NVDA on Windows)
Launch LibreOffice -> Tools -> Options -> Advanced: Expert Configuration
enter "org.openoffice.Office.Common/history" and search
cursor movment up and down in the result

Result
only the first row of search results expose a preference name to AT
org.openoffice.Setup

All other rows of search result render only their row number and an empty value for the preference name field

Expected
that each table row, would sound a column name [Preference Name|Property|Type|Value] and the value for each when occupied
Comment 1 Buovjaga 2016-05-09 10:24:10 UTC
Repro with NVDA.

Win 7 Pro 64-bit Version: 5.2.0.0.alpha1+
Build ID: 3d27afd26f7b85c46a7c7d08498000b9dbcea1c8
CPU Threads: 4; OS Version: Windows 6.1; UI Render: default; 
TinderBox: Win-x86@42, Branch:master, Time: 2016-05-09_02:42:15
Locale: fi-FI (fi_FI)
Comment 2 Quentin Christensen 2017-10-23 05:00:43 UTC
Not strictly a fix for having the information automatically read, and this only works for NVDA, but you can read the other columns by using NVDA's "Move to next object" command.  Press NVDA+numpad6 in desktop keyboard layout or NVDA+shift+right arrow in laptop layout.  See https://www.nvaccess.org/files/nvda/documentation/userGuide.html#toc29 for information on using Object navigation.

As noted that only works with NVDA.  I'm not sure if Orca or other screen readers have similar commands.
Comment 3 Michael Weghorn 2023-07-06 07:28:17 UTC
In a quick test with current master and Orca (43.1-1) on Linux (gtk3 VCL plugin), values in all columns were read out now for all rows.

Is that fine now or is anything else missing?

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: e501e4549b3343f69b7ce19957e7bbc17d007d65
CPU threads: 12; OS: Linux 6.1; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded
Comment 4 Buovjaga 2023-07-06 10:14:25 UTC
Still repro with NVDA

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: e4e5fb4b2935e395c7e4b3a794d544a6f44709ce
CPU threads: 2; OS: Windows 10.0 Build 22621; UI render: Skia/Raster; VCL: win
Locale: en-US (en_FI); UI: en-US
Calc: threaded
Comment 5 Michael Weghorn 2023-07-06 12:34:16 UTC
(In reply to Buovjaga from comment #4)
> Still repro with NVDA

Indeed, and this error shows up in NVDA log, which may be related:

error executing event: gainFocus on <appModules.soffice.SymphonyIATableCell object at 0x11ACD8B0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.py", line 325, in executeEvent
    _EventExecuter(eventName, obj, kwargs)
  File "eventHandler.py", line 115, in __init__
    self.next()
  File "eventHandler.py", line 124, in next
    return func(*args, **self.kwargs)
  File "NVDAObjects\__init__.py", line 1281, in event_gainFocus
    self.reportFocus()
  File "NVDAObjects\__init__.py", line 1132, in reportFocus
    speech.speakObject(self, reason=controlTypes.OutputReason.FOCUS)
  File "speech\speech.py", line 629, in speakObject
    _prefixSpeechCommand,
  File "speech\speech.py", line 669, in getObjectSpeech
    **allowProperties
  File "speech\speech.py", line 521, in getObjectPropertiesSpeech
    newPropertyValues[name]=getattr(obj,tryName)
  File "baseObject.py", line 62, in __get__
    return instance._getPropertyViaCache(self.fget)
  File "baseObject.py", line 168, in _getPropertyViaCache
    val=getterMethod(self)
  File "NVDAObjects\IAccessible\__init__.py", line 1184, in _get_rowNumber
    return tableCell.rowIndex+1
  File "monkeyPatches\comtypesMonkeyPatches.py", line 32, in __call__
    return super().__call__(*args,**kwargs)
_ctypes.COMError: (-2147467259, 'Unspecified error', (None, None, None, 0, None))
ERROR - eventHandler.executeEvent (14:32:31.597) - MainThread (7184):
Comment 6 Michael Weghorn 2023-07-07 15:02:34 UTC
I'm working on this. There are multiple underlying issues. One is a wrong parent, one is that winaccessibility uses outdated values. With a local WIP fix (that needs more work)  for both of these, NVDA announces at least announces the newly focused item at first, but then still the wrong row... (always the first one instead of the one where the focus actually is)

gtk3 works because it it using native widgets.
Comment 7 Michael Weghorn 2023-07-07 15:04:31 UTC
(In reply to Michael Weghorn from comment #6)
> gtk3 works because it it using native widgets.

But I still ran into a gtk bug while analyzing this:
https://gitlab.gnome.org/GNOME/gtk/-/issues/5161
Suggested fix:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6173
Comment 8 Commit Notification 2023-07-21 13:02:45 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/29ab560c21b80e9e5886a8f507300d61047d0ee7

tdf#99609 a11y: Set proper parent for cells in tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 9 Commit Notification 2023-07-21 13:03:48 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/1c0f0ab9b5bf23997640f44b7edd45c693c3f74d

tdf#99609 a11y: Handle focused state for cells in tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 10 Commit Notification 2023-07-21 13:03:50 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/452c17e08fd8f18d032788170d873b019c8e9716

tdf#99609 a11y: Announce the correct entry in tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 11 Commit Notification 2023-07-21 13:03:53 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/44de8e68c40be6c4bddeadd627d58251639487e2

tdf#99609 a11y: Fix reporting selection in tab list table

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 12 Commit Notification 2023-07-21 13:03:55 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/10129ea98f808c19990abe08aba2e62ed10ebf81

tdf#99609 a11y: Fix bound rect reporting for tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 13 Commit Notification 2023-07-21 13:03:57 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/ab72f6a4a4ceee41842c8a87b23086bce692b1e3

tdf#99609 a11y: Use GetEntryOnPos in more places in tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 14 Commit Notification 2023-07-21 13:04:00 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/5f7ae99211594919408dd20cd1215393b3c4b76b

tdf#99609 a11y: Implement retrieving selected rows in tab list box

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 15 Commit Notification 2023-07-21 13:04:02 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/645197d81fec7328b1ddef9d2996a2b068451b61

tdf#99609 a11y: Fix reporting selection in tab list table more

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 16 Commit Notification 2023-07-21 14:54:15 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/bcd3ae98a1292a02b8a2c56e114c6016a9a7df51

tdf#99609 a11y Set old/new value correctly in a11y event again

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 17 Michael Weghorn 2023-07-21 15:04:46 UTC
Fixed in master now. Works both with NVDA on Windows and qt6/Orca on Linux in my tests now.

(In reply to V Stuart Foote from comment #0)
> Expected
> that each table row, would sound a column name [Preference
> Name|Property|Type|Value] and the value for each when occupied
What NVDA actually announces is a little different ("<first cell> through <last cell>" for the selection), but FWICT, that's how it's implemented in NVDA at the moment, so nothing to do on LO side here. LO should now be exposing all of the relevant information correctly via IAccessible2.
Comment 18 Commit Notification 2023-08-23 20:22:42 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/bf15445b7102a4e2bea2f96891093bc4bf07c4c6

tdf#99609 tdf#156473 a11y: Check whether row header exists

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.