Enforced UIA implementation of Object Explorer window#9313
Conversation
LeonarddeR
left a comment
There was a problem hiding this comment.
- Please revert the changes to the changes file. This will be done around merge time.
- This implementation is a bit aggressive.Is there a particular window class in use for these inaccessible items? You could get the windowClass of a handle with
winUser.getClassName(hwnd)
|
Hello @LeonarddeR I made the changes you requested. Cheers, |
|
I've had another look and also tried it in practise now. Honestly, I'm not convinced that this is the right solution:
I'd rather see an implementation based on MSAA. Looking at the developer info when UIA is enforced, the MSAA proxy is used and there is no framework identifier, so pretty sure that this is native MSAA and therefore should be treated a such. |
|
Hello @LeonarddeR |
Are you sure that this can't be fixed when using MSAA? |
|
Hello @LeonarddeR,
At least I don't know how to, my knoledge is not enough, I think. Regards, |
|
Hello again @LeonarddeR I was doing some tests against visual studio's object explorer, particularli testing the IA2 implementation of the object explorer trees Here are the results:
I don't know so much about IA2, but I cannot see a way to solve it without replacing the IA2 implementation by the UIA ones. Note that this applies to Visual Studio 2019 too, same errors. Cheers, |
|
Hello @LeonarddeR I found a way to solve this without enforcing UIA implementation. The only thing is the treeview level, I don't know how to instruct NVDA to report it, but the rest works as expected. Cheers, |
|
Closing this because it is not valid anymore. |
Link to issue number:
Issue #9311
Summary of the issue:
The objects tree of the object explorer was not working correct in Visual Studio 15.3 and up.
Description of how this pull request fixes the issue:
I made some research and figured out that the three panes of the object explorer are being instantiated as IAccessible objects.
Basically, this enforces instantiation of all objects as UIA instances if it detects a version up from 15.3.
By doing this, NVDA is enforced to pick UIA versions of these objects, which work better.
Testing performed:
Unfortunately, I can't test with more systems than my one because I didn't set up VMs for other configurations.
Known issues with pull request:
The only problem is with level detection if the expanded is the last item on the tree, but this is an issue that occurs also with narrator.
I will keep doing research on this to see if it can be solved somehow.
Change log entry:
Section: Bug fixes