https://bugs.documentfoundation.org/show_bug.cgi?id=150683

            Bug ID: 150683
           Summary: Calc: With >16k column support, screen readers don't
                    announce all cells
           Product: LibreOffice
           Version: 7.5.0.0 alpha0+ Master
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Keywords: accessibility
          Severity: normal
          Priority: medium
         Component: Calc
          Assignee: [email protected]
          Reporter: [email protected]
            Blocks: 101912

Created attachment 182091
  --> https://bugs.documentfoundation.org/attachment.cgi?id=182091&action=edit
Screencast with Orca/gtk3

With the support for > 16000 columns enabled by default (in commit
4c5f8ccf0a2320432b8fe91add1dcadf54d9fd58, "change default Calc number of
columns to 16384 (tdf#50916)"), screen readers have issues announcing some
cells properly, e.g. in the last row.

# Sample steps to reproduce with either NVDA on Windows or Orca on Linux:

0) start the screen reader
1) start Calc, open a new spreadsheet
2) move focus from cell A1 to A2 by using the arrow key, then to A3
3) select a few cells by using Shift+arrow key
4) move focus to the last row (Ctrl+Down)
5) move focus from the current cell to another one in the last row by using the
arrow key
6) select a few cells in the last row by using Shift+arrow key

# Actual behavior:

* up to step 3: focused and selected cells are announced just fine with both,
Orca and NVDA
* with Orca: selection in step 6) is not announced, stderr shows below output
for a debug build
* with NVDA: focus in step 5) is not announced properly:
    * when using NVDA 2022.2.2, the *previously* selected cell is announced
    * when using a development version of NVDA (I tried master as of commit
8c982cd16c6461c34abd56f1777a56ae704997ea), NVDA "beeps" to indicate that there
was an error and shows the below backtrace

Screencasts will be attached (slightly different cells selected there than in
the "Steps to reproduce", but same pattern).

# Expected behavior:

Focused/Selected cells should properly be announced by screen readers in all
steps.


Version: 7.5.0.0.alpha0+ / LibreOffice Community
Build ID: 5bf4f36b509ae2bdc507074d53af007b4852013d
CPU threads: 12; OS: Linux 5.18; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded

Version: 7.5.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 79ccc9172c9f7c16d636b21a85f548ed4db6e864
CPU threads: 4; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: threaded

(The Windows build is essentially also master as of
5bf4f36b509ae2bdc507074d53af007b4852013d with just some local unrelated patches
on top.)


## Additional information

LO output with gtk3 VCL plugin:

> ** (soffice:37345): WARNING **: 08:53:05.840: Exception in getAccessibleRow()
> 
> ** (soffice:37345): WARNING **: 08:53:05.840: Exception in 
> getAccessibleColumn()


NVDA backtrace:

ERROR - eventHandler.executeEvent (08:55:03.927) - MainThread (8360):
error executing event: gainFocus on
<NVDAObjects.Dynamic_SymphonyIATableCellEditableTextWithAutoSelectDetectionIAccessible
object at 0x07C03930> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.py", line 301, in executeEvent
    _EventExecuter(eventName,obj,kwargs)
  File "eventHandler.py", line 102, in __init__
    self.next()
  File "eventHandler.py", line 111, in next
    return func(*args, **self.kwargs)
  File "NVDAObjects\behaviors.py", line 242, in event_gainFocus
    super().event_gainFocus()
  File "NVDAObjects\__init__.py", line 1197, in event_gainFocus
    self.reportFocus()
  File "NVDAObjects\__init__.py", line 1094, in reportFocus
    speech.speakObject(self, reason=controlTypes.OutputReason.FOCUS)
  File "speech\speech.py", line 608, in speakObject
    _prefixSpeechCommand,
  File "speech\speech.py", line 653, in getObjectSpeech
    **allowProperties
  File "speech\speech.py", line 500, in getObjectPropertiesSpeech
    newPropertyValues[name]=getattr(obj,tryName)
  File "baseObject.py", line 42, in __get__
    return instance._getPropertyViaCache(self.fget)
  File "baseObject.py", line 146, in _getPropertyViaCache
    val=getterMethod(self)
  File "NVDAObjects\IAccessible\__init__.py", line 1171, 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))


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=101912
[Bug 101912] [META] Accessibility (a11y) bugs and enhancements
-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to