nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.11k stars 638 forks source link

NVDA does not announce individual columns of a WPF GridViewRowPresenter #10409

Open WilliamXieMSFT opened 5 years ago

WilliamXieMSFT commented 5 years ago

Zip File contains Visual Studio Solution of an example WPF app that shows the behavior: WpfApp_GridViewRowPresenter.zip

Steps to reproduce:

  1. Open the attached zip file and extract all files, this zip file contains a sample WPF app that showcases the bug behavior.
  2. Open the solution file "WpfApp_GridViewRowPresenter.sln" in Visual Studio 2019
  3. Launch the application using Ctrl+F5, it will show a WPF window with a table.
  4. Launch NVDA, and navigate each row/column/cell of the WPF app with tabs and arrow keys.

Actual behavior:

NVDA does not read the value of any cell when using tabs, arrow keys, or NVDA key with arrow keys.

Expected behavior:

NVDA should have navigation capabilities to read each cell with column header. Narrator allows navigation on a cell-basis using CapsLock + ArrowKeys.

System configuration

NVDA installed/portable/running from source:

NVDA installed.

NVDA version:

2019.2.1.18844

Windows version:

Windows version 1903 (10.0.18362 Build18362)

Name and version of other software in use when reproducing the issue:

Visual Studio 2019 (D16.4) Enterprise SKU with ".NET desktop development" workload. Other SKUs should also work.

Other information about your system:

Other questions

Does the issue still occur after restarting your PC?

Yes.

Have you tried any other versions of NVDA? If so, please report their behaviors.

2018.2 exhibits same behavior

Adriani90 commented 4 months ago

This is still reproducible with NVDA 2024.2 in Visual Studio 2022. However, using ctrl+alt+arrow keys, NVDA's table navigation, will allow moving between rows and columny. However, when reaching the top row, pressing ctrl+alt+up arrow gives following error in the log.

IO - inputCore.InputManager.executeGesture (00:44:33.100) - winInputHook (1612):
Input: kb(laptop):alt+control+leftArrow
IO - speech.speech.speak (00:44:33.114) - MainThread (18824):
Speaking ['System.Xml.XmlElement', 'Dateneintrag', 'ausgewählt']
IO - inputCore.InputManager.executeGesture (00:44:33.510) - winInputHook (1612):
Input: kb(laptop):alt+control+rightArrow
IO - speech.speech.speak (00:44:33.530) - MainThread (18824):
Speaking ['Song2']
IO - inputCore.InputManager.executeGesture (00:44:34.190) - winInputHook (1612):
Input: kb(laptop):alt+control+downArrow
IO - speech.speech.speak (00:44:34.225) - MainThread (18824):
Speaking ['Song3']
IO - inputCore.InputManager.executeGesture (00:44:34.543) - winInputHook (1612):
Input: kb(laptop):alt+control+upArrow
IO - speech.speech.speak (00:44:34.574) - MainThread (18824):
Speaking ['Song2']
IO - inputCore.InputManager.executeGesture (00:44:34.740) - winInputHook (1612):
Input: kb(laptop):alt+control+upArrow
IO - speech.speech.speak (00:44:34.769) - MainThread (18824):
Speaking ['Song1']
IO - inputCore.InputManager.executeGesture (00:44:34.930) - winInputHook (1612):
Input: kb(laptop):alt+control+upArrow
ERROR - scriptHandler.executeScript (00:44:34.941) - MainThread (18824):
error executing script: <bound method RowWithFakeNavigation.script_moveToPreviousRow of <NVDAObjects.Dynamic_RowWithFakeNavigationUIA object at 0x00C6E050>> with gesture 'Alt+Strg+Pfeiltaste nach oben'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "NVDAObjects\behaviors.pyc", line 733, in script_moveToPreviousRow
  File "NVDAObjects\behaviors.pyc", line 715, in _moveToRow
  File "NVDAObjects\UIA\__init__.pyc", line 1541, in setFocus
_ctypes.COMError: (-2146233079, None, (None, None, None, 0, None))