-
-
Notifications
You must be signed in to change notification settings - Fork 678
UI Automation in Windows Console and Windows Terminal: block SV2M2 notification events for now and preserve accessibility after UIA class name change #13261
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
Conversation
Hi, for reference (for others): SV2 = Sun Valley 2 a.k.a. Windows 11 Version 22H2. I assume this was tested in build 22500 series, specifically 22533 and later? Thanks.
|
Not yet, staying ahead of upcoming changes, though this PR doesn't break existing functionality and should be merged to ensure stability when the changes land. CC @carlos-zamora, @DHowett. |
CC @seanbudd. |
Is there a way to confirm that the console/terminal changes are guaranteed to be implemented? |
"guarantee" is hard, but
I don't yet have access to a build with notifications available, but I've tested this event handler in other contexts that emit UIA notifications (Word with UIA) and it works as intended. Merging this PR is strictly better than the current behaviour and results in no change in situations where UIA notifications are not emitted. |
I think it might be worth holding off on merging this until a Windows Insider build comes that it can be tested with. |
I'll work on obtaining a Windows Terminal build with which I can test this. Thanks for adding to the 2022.1 release. |
Hi, also, ping me when that build is available so I can test it on my VM (at least build 22543)). Thanks.
From: Bill Dengler ***@***.***>
Sent: Thursday, January 27, 2022 4:14 PM
To: nvaccess/nvda ***@***.***>
Cc: Joseph Lee ***@***.***>; Comment ***@***.***>
Subject: Re: [nvaccess/nvda] UI Automation in Windows Console and Windows Terminal: block SV2M2 notification events for now (PR #13261)
I'll work on obtaining a Windows Terminal build with which I can test this. Thanks for adding to the 2022.1 release.
—
Reply to this email directly, view it on GitHub <#13261 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AB4AXEA3ZKXWAEQ4BPKIKCTUYHNSXANCNFSM5MLNDXKQ> .
You are receiving this because you commented.Message ID: ***@***.***>
|
Hi! I'm over from the Console Engineering team at Microsoft. I just wanted to follow up on some things from this thread.
Yes! We're looking to do this this year! Here's our blog post announcement: https://devblogs.microsoft.com/commandline/windows-terminal-as-your-default-command-line-experience/
We're making progress. I'll be working on creating a prototype this month and sharing that with Bill, NVDA, and JAWS (I'll be meeting with them next week to provide support). We're hoping that this'll be the fastest way to get Narrator on board since this change will have a pretty severe impact on Narrator users. Like Bill, I hope to take a look at what other text providers (like Word) are doing. So if this works with Word already, that's very promising. CC @DHowett |
5aa6dbf
to
9af5078
Compare
I can confirm that, with the build in microsoft/terminal#12358, duplicate (buggy) output is present without this PR and absent (correct behaviour) with this PR. |
8812a1d
to
08ffe3f
Compare
fb54b67
to
c3d95f2
Compare
Now that this is known to work with an actual implementation, can this PR please be merged? |
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. It's great that we can prepare for this change early, so that users won't have to update NVDA from 2022.1 to fix this.
Do we have an estimate at what time or which Windows releases this will be incorporated into?
I think it would be helpful to add a changelog item, as users on older versions of NVDA will want to search for which NVDA version fixes this bug.
It will arrive in the Sun Valley 2 console and a Windows Store update. Can't speak to anything beyond that sadly. (there is precedent for making fixes to prepare for unreleased software without changelog items, see #7497). |
@codeofdusk Thanks, perhaps for users "Windows 11" is specific enough. It is helpful to add bug fixes to the changelog where possible.
|
I'd remove "11" as I think they'll backport the terminal code to vibranium at least. So just "Windows Console and Terminal". |
Hi, for reference, Vibranium = Windows 10, so a compromise could be to say “recent Windows 10 and 11” (I understand that the what’s new entry was committed, but hope this could be handy in the future). Thanks.
|
I think the problem here is that "recent" is relative and won't be helpful in the future. With the uncertainty surrounding which versions this will be included in, as @codeofdusk suggested potentially earlier builds to Vibranium, I opted to just go with "Windows". |
Hi, makes sense, thanks.
|
Please note that, due to pushback from JAWS, the |
Link to issue number:
Related to microsoft/terminal#12358 among others (to be released).
Summary of the issue:
In upcoming Windows Terminal and Windows Console, UIA notification events will be sent when new text is inserted (i.e. for text output) to improve Narrator support. This will result in double-reporting of all terminal output: once from
LiveText
and once from UIA notifications (but without appropriate filtering for typed characters/passwords etc).As part of the implementation of notifications, I asked Microsoft to change the UIA class name to allow new terminal support (including notifications) in a follow-up NVDA PR, since notifications will require a departure from the terminal strategy used by NVDA in the past. Changing the class name will break NVDA's current ability to identify the terminal and implement accessibility.
Description of how this pull request fixes the issue:
Ideally, NVDA would use these events in place of
LiveText
. If we could get away without registering forTextChange
at all, this could be an extreme stability improvement in the terminal as #11002 would be completely circumvented. Also, having new text pushed to us (instead of having to diff) should improve performance considerably in high-volume scenarios.Testing strategy:
Tested that support works as expected with the new terminal.
Known issues with pull request:
It is imperative that this PR be included in 2022.1, as upcoming builds of Windows Terminal will have severely degraded accessibility without it.
Change log entries:
None (workaround for bug in unreleased code)
Code Review Checklist: