-
-
Notifications
You must be signed in to change notification settings - Fork 641
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
UI Automation in Windows Console: Make UIA the default for Windows 10 1803 and later #9771
Conversation
Hi, if you can, can you test this in 20H1 builds too? I myself will do some testing in 20H1 via Windows Sandbox. Thanks.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to see that this is getting in to shape.
8042351
to
322cd03
Compare
Once #9773 is merged, I think this PR is ready for master (pending code review, of course). |
It might be worth to have some discussion about when issue is considered closed. In my view one of the following should happen:
In short I am against closing issues with the previous console implementations until they are properly fixed. The same has been done when UIA for Word was introduced - no one closed any bug report for COM implementation. |
@lukaszgo1 Could you be specific about which issue you don't think should be closed to make sure we are on the same page? |
@feerrenrut well I meant all tickets listed in the PR description by @codeofdusk namely: #513, #673, #1682 and #6291. |
PR introduces Flake8 errors 😲 See test results for Failed build of commit 88a335629f |
PR introduces Flake8 errors 😲 See test results for Failed build of commit 0e77fe664a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @codeofdusk
* Fully revert #9771. * Remove import * Fix accelerator, typedCharacter in UIA console * Style. * More style, except spacing of binary operators (to preserve consistency, as fixing this seems out of scope for this PR). * Also fix palcement of binary operators. * Actually, keep winConsoleUIA module from #9771. * Remove extra and. * Add an and. * Keep auto as the config default. * Style.
…(Windows 11 Sun Valley 2) (#10964) Supersedes #9771 and #10716. Closes #1682. Closes #8653. Closes #9867. Closes #11172. Closes #11554. Summary of the issue: Microsoft has significantly improved performance and reliability of UIA console: * microsoft/terminal#4018 is an almost complete rewrite of the UIA code which makes the console's UIA implementation more closely align with the API specification. * microsoft/terminal#10886, microsoft/terminal#10925, and microsoft/terminal#11253 form a robust testing methodology for the UIA implementation, including bug fixes in response to newly added tests based on Word's UIA implementation. * microsoft/terminal#11122 removes the thousands of empty lines at the end of the console buffer, significantly improving performance and stability. Since all console text ranges are now within the text buffer's bounds, it is no longer possible for console to crash due to the manipulation by UIA clients of an out-of-bounds text range. * Countless other accessibility-related PRs too numerous to list here. We should enable UIA support on new Windows Console builds by default for performance improvement and controllable password suppression. Description of how this pull request fixes the issue: This PR: * Exposes all three options for the UIA console feature flag in the UI (replaces the UIA check box with a combo box). * Adds a runtime check to test if `apiLevel >= FORMATTED`, and use UIA in this case when the user preference is auto. This is the case on Windows 11 Sun Valley 2 (SV2) available now in beta and set for release in the second half of 2022.
Link to issue number:
Builds on #9614. Closes #673 and #6291.
Summary of the issue:
NVDA's UIA console support significantly improves performance and stability, so we should enable it by default.
Description of how this pull request fixes the issue:
While UIA in consoles was added in Windows 10 1709, the initial implementation left much to be desired, particularly concerning caret movement and expansion to character.
A new
UIAUtils.shouldUseUIAConsole
function has been added which determines whether to use UIA in consoles:True
orFalse
respectively.True
, orFalse
if not.The "use UI Automation in the Windows Console when available" GUI setting has been changed to expose all options in the config spec (i.e. to automatically detect UIA/legacy or override this autodetection).
Testing performed:
Tested the new GUI setting on Windows 10 1903.
Known issues with pull request:
None.
Change log entry:
== New Features ==