Add support for SysListView32 controls with a native UIA implementation#15295
Conversation
|
cc @beqabeqa473 |
|
hi @LeonarddeR I've tested the solution. |
|
Thanks, I added that now. |
|
Thanks, tested it now. And the final thing, I don't know if it is a problem, just a bit verbossing, i cannot see that in standard .net framework winforms app, when navigating through list, nvda announces something like Thanks. |
See test results for failed build of commit 66674aa166 |
|
That should also be fixed now. I was mistaken in assuming that the rowNumber property was required for fake table navigation, on list views, but that doesn't seem to be the case. |
|
Thanks. It is now ok for me. |
See test results for failed build of commit f166fe843a |
seanbudd
left a comment
There was a problem hiding this comment.
looks good, just some minor changes
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
Fixes #15333 Summary of the issue: In #15295, we removed SysListView32 as a bad UIA class name as there are now decent UIA implementations that should be prefered over their MSAA counterparts. However, it turns out that Windows Management Console, despite advertising a native UIA implementation, offers something quite incomplete. Description of user facing changes Working list navigation in mmc, such as in windows Services list Description of development approach Classify SysListView32 as Bad UIA class in the mmc app module. Note. I have also tested several other applications in Windows, including regedit, and there no UIA implementation of SysListView32 is advertised. Therefore I think this might be a onetimer. Ensures that whenever UIA is used wit an incomplete implementation, no errors occur by performing the necessary checks.
|
Hi, This seems to be resulting in extremely sluggish navigation in Task Manager on my laptop. It now takes over a second to hear the name of the focused item in the list on the Details tab which is an extremely negative hit to productivity, and this is on nVDA 2023.3beta1 where this fix has been implemented. 2023.2 worked fine with the details tab. This seems to be a pattern with NVDA, whenever something moves away from IAccessible to UIA we then have performance hits. Thank you very much for your time and I look forward to any input you may have. Sincerely, Brandon Tyson |
|
Could you please open a new issue for this? This ensures we have all the details the issue template asks for, such as version of Windows used, etc.
|
Fixes #15541 Reverts #15295 Reopens #15283 See also #15503, #15333 Summary of the issue: There are several known cases where UIA is not correctly supported for SysListView32. Reliability History is the most recently raised, with task manager and management console being raised earlier. As this is close to a beta, it is safer to just declare SysListView32 as bad for UIA for all applications. Description of user facing changes Reopens issues with SysListView32 and windows forms applications Fixes issue with reading Reliability History, and potentially also resource monitor. Description of development approach declare SysListView32 as bad for UIA for all applications.
Link to issue number:
Fixes #15283
Summary of the issue:
.NET 7 Win Forms has a native implementation for SysListView32 controls. This conflicts with us listing SysListView32 as a bad UIA Class name.
Description of user facing changes
Win forms project in #15283 now works as expected for the most part.
Description of development approach
Implemented SysListView32 in a new UIA module. Note that UIA seems to expose the following tree by default:
I did the following:
Testing strategy:
Known issues with pull request:
Row navigation doesn't work in the Win Forms project, but this seems to be an issue in Win Forms not properly implementing SetFocus/InvokePattern.
Change log entries:
Bug fixes
Code Review Checklist: