Don't ever correct focus back to a UIA element that is not native or is from a window we have marked as bad UIA#11738
Merged
Merged
Conversation
…elation of 'focus' ensure that the UIA element we get is usable (native and not a bad window etc). If it is not, return False so that other APIs can have a go instead.
LeonarddeR
reviewed
Oct 8, 2020
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
LeonarddeR
previously approved these changes
Oct 8, 2020
This comment has been minimized.
This comment has been minimized.
7 tasks
michaelDCurran
pushed a commit
that referenced
this pull request
Apr 20, 2021
…oesn't support UIA natively (#12241) PR #11738 made it impossible to use UIA for controls which doesn't report as native UIA. This decreased accessibility of Outlook's messages list in some versions of Outlook (certainly for 2010 and possibly for 2013) which reports as non native UIA. Description of how this pull request fixes the issue: Similar to the fix in #11828 for these controls the fact that they're non native UIA is ignored.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Fixes #11202
Fixes #11536
Partial fix for #11576
Summary of the issue:
NVDA can sometimes focus content in MS Edge / Chromium using UI automation, even though we have specifically disabled using UI Automation for Chrome in favor of IAccessible2.
This can happen either:
In all cases, the user may only notice that browseMode no longer works unless they tab or move focus once, but in the worse case, due to either bugs in Edge's UIA implementation or in NVDA's UIA rich text fetching code, NVDA may completely freeze. The freeze is partly why we disabled using UIA in Chromium in the first place.
In all cases, the following steps occur:
Like with similar code that asks the OS for an object at particular hittesting coordinates, it should ensure the UIA element it gets back is usable (UIAHandler.handler.isNativeUIAElement) and if it is not, it should return False, and thus Window NVDAObject will go on and try the focus according to MSAA.
Description of how this pull request fixes the issue:
Add the needed check to NVDAObjects.UIA.UIA.kwargsFromSuper
Testing performed:
Known issues with pull request:
None.
Change log entry:
Bug fixes: