Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVDA2022.1 fails to report list items in some ListViews #13735

Closed
cary-rowen opened this issue May 25, 2022 · 5 comments · Fixed by #13761
Closed

NVDA2022.1 fails to report list items in some ListViews #13735

cary-rowen opened this issue May 25, 2022 · 5 comments · Fixed by #13761
Assignees
Labels
bug/regression p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@cary-rowen
Copy link
Contributor

cary-rowen commented May 25, 2022

Steps to reproduce:

  1. Download the provided application and perform the installation;
  2. Run the installed application, which will contain a list control.
  3. Use the up and down arrows to navigate the list control;

Actual behavior:

  • NVDA reports 'selected';
  • obj.name: "exception: 'NoneType' object is not subscriptable" in the log
  • Full log(nvda.log), add-ons disabled.
  • log snippet:
IO - speech.speech.speak (11:03:58.903) - MainThread (12612):
Speaking ['已选择']
IO - inputCore.InputManager.executeGesture (11:03:59.439) - winInputHook (13168):
Input: kb(laptop):downArrow
WARNING - eventHandler._EventExecuter.next (11:03:59.463) - MainThread (12612):
Could not execute function event_gainFocus defined in NVDAObjects module; kwargs: {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 107, in next
  File "NVDAObjects\__init__.pyc", line 1152, in event_gainFocus
  File "NVDAObjects\behaviors.pyc", line 637, in reportFocus
  File "NVDAObjects\__init__.pyc", line 1052, in reportFocus
  File "speech\speech.pyc", line 558, in speakObject
  File "speech\speech.pyc", line 601, in getObjectSpeech
  File "speech\speech.pyc", line 453, in getObjectPropertiesSpeech
  File "baseObject.pyc", line 42, in __get__
  File "baseObject.pyc", line 146, in _getPropertyViaCache
  File "NVDAObjects\IAccessible\sysListView32.pyc", line 581, in _get_name
  File "NVDAObjects\IAccessible\sysListView32.pyc", line 447, in _getColumnLocation
TypeError: 'NoneType' object is not subscriptable
DEBUGWARNING - RPC process 11804 (zdcloud.exe) (11:03:59.468) - Dummy-5 (5688):
Thread 10352, build\x86\remote\sysListView32.cpp, nvdaInProcUtils_sysListView32_getColumnOrderArray, 172:
LVM_GETCOLUMNORDERARRAY failed

ERROR - eventHandler.executeEvent (11:03:59.464) - MainThread (12612):
error executing event: gainFocus on <NVDAObjects.IAccessible.sysListView32.ListItem object at 0x043775B0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 107, in next
  File "NVDAObjects\__init__.pyc", line 1152, in event_gainFocus
  File "NVDAObjects\behaviors.pyc", line 637, in reportFocus
  File "NVDAObjects\__init__.pyc", line 1052, in reportFocus
  File "speech\speech.pyc", line 558, in speakObject
  File "speech\speech.pyc", line 601, in getObjectSpeech
  File "speech\speech.pyc", line 453, in getObjectPropertiesSpeech
  File "baseObject.pyc", line 42, in __get__
  File "baseObject.pyc", line 146, in _getPropertyViaCache
  File "NVDAObjects\IAccessible\sysListView32.pyc", line 581, in _get_name
  File "NVDAObjects\IAccessible\sysListView32.pyc", line 447, in _getColumnLocation
TypeError: 'NoneType' object is not subscriptable

Expected behavior:

NVDA can report list items.

System configuration

NVDA installed/portable/running from source:

installed

NVDA version:

2022.1

Windows version:

Windows 10 21H2 (x64) build 19044.1706

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

download from NVDACN
download from googleDrive

Other information about your system:

None

Other questions

Does the issue still occur after restarting your computer?

Yes

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

2021.3.5 works as expected.

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

@cary-rowen cary-rowen changed the title NVDA fails to report list items in some ListViews NVDA2022.1 fails to report list items in some ListViews May 25, 2022
@cary-rowen
Copy link
Contributor Author

@seanbudd

Please keep an eye out for this issue, I suspect it may be related to #13657

@seanbudd seanbudd added bug/regression p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. labels May 26, 2022
@seanbudd seanbudd self-assigned this May 26, 2022
@seanbudd
Copy link
Member

Your file is blocked by google drive. Can you upload a log of the behaviour with alpha?

@cary-rowen
Copy link
Contributor Author

cary-rowen commented May 27, 2022

Hi, @seanbudd
Log-alpha-25478.log
I have re-uploaded the sample application, you can download it from here

@seanbudd
Copy link
Member

seanbudd commented Jun 1, 2022

Hi @cary-rowen - that is intended behaviour.
From what I understand, there is an implementation issue with that application, like there is with StartIsBack/StartAllBack.
Without the application providing the column order array, we can only guess what the list items refer to.

@seanbudd seanbudd closed this as completed Jun 1, 2022
@cary-rowen
Copy link
Contributor Author

Hi, @seanbudd
However 2021.3.5 works as expected, shouldn't this be a regression?
btw, Narrator, Jaws also work as expected in this case.

@seanbudd seanbudd reopened this Jun 1, 2022
seanbudd added a commit that referenced this issue Jun 9, 2022
…t required (#13761)

Fixes #13659, #13735

Summary of the issue:
Certain applications don't provide a column order array. For the case of single column list views, a column order array is unnecessary, as a default mapping can be assumed.

Description of how this pull request fixes the issue:
For single column list views, map the first column in the UX, to the first column index: i.e. [0] is the column order array. When fetching from a multi column list view, log an error if the column order array is unknown.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/regression p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants