[Epic] Shared UI Automation Improvements #9726

Open
opened 2026-01-31 02:02:18 +00:00 by claunia · 9 comments
Owner

Originally created by @DHowett on GitHub (Jul 22, 2020).

Originally assigned to: @carlos-zamora on GitHub.

created and maintained by @carlos-zamora

A number of screen readers still don't use the UIA framework we've exposed in ConHost and Windows Terminal. After speaking with @codeofdusk, there's a number of suggested improvements we can do to convince screen reader manufacturers to switch over from the legacy framework.

  • #5406: Standard and alt buffer distinction
  • #2161: Expose text attributes
  • #6986: Better "end of buffer" handling (trim whitespace)
  • #7960: Word navigation bug

With this changes, we can...

  • build a case for NVDA to use UIA by default (see https://github.com/nvaccess/nvda/pull/10964)
  • help NVDA remove reduce their use of all of their workarounds from pre-#4018
  • improve performance, stability, and accessibility for ConHost and Windows Terminal when using screen readers (i.e. password detection)

see also:

Originally created by @DHowett on GitHub (Jul 22, 2020). Originally assigned to: @carlos-zamora on GitHub. _created and maintained by @carlos-zamora_ A number of screen readers still don't use the UIA framework we've exposed in ConHost and Windows Terminal. After speaking with @codeofdusk, there's a number of suggested improvements we can do to convince screen reader manufacturers to switch over from the legacy framework. - #5406: Standard and alt buffer distinction - #2161: Expose text attributes - #6986: Better "end of buffer" handling (trim whitespace) - #7960: Word navigation bug With this changes, we can... - build a case for NVDA to use UIA by default (see https://github.com/nvaccess/nvda/pull/10964) - help NVDA ~remove~ reduce their use of all of their workarounds from pre-#4018 - improve performance, stability, and accessibility for ConHost and Windows Terminal when using screen readers (i.e. password detection) see also: - #11253
claunia added the Product-TerminalPriority-1Area-AccessibilityIssue-Scenario labels 2026-01-31 02:02:18 +00:00
Author
Owner

@carlos-zamora commented on GitHub (Feb 26, 2021):

FYI @DHowett

@codeofdusk If there are any more asks, comment them in this thread and we'll evaluate adding them in.

@carlos-zamora commented on GitHub (Feb 26, 2021): FYI @DHowett @codeofdusk If there are any more asks, comment them in this thread and we'll evaluate adding them in.
Author
Owner

@codeofdusk commented on GitHub (Feb 26, 2021):

Note: these are all conhost (not Windows Terminal) related issues. Could this be re-targeted for a Windows (such as 21H2) milestone rather than Windows Terminal please?

@codeofdusk commented on GitHub (Feb 26, 2021): Note: these are *all* conhost (not Windows Terminal) related issues. Could this be re-targeted for a Windows (such as 21H2) milestone rather than Windows Terminal please?
Author
Owner

@codeofdusk commented on GitHub (Feb 26, 2021):

Cc @feerrenrut, @MichaelDCurran.

@codeofdusk commented on GitHub (Feb 26, 2021): Cc @feerrenrut, @MichaelDCurran.
Author
Owner

@carlos-zamora commented on GitHub (Feb 26, 2021):

Note: these are all conhost (not Windows Terminal) related issues. Could this be re-targeted for a Windows (such as 21H2) milestone rather than Windows Terminal please?

Yes and no. UIA is a shared component between Windows Terminal and ConHost. This is just in the Terminal milestone because it's easier for us to track it.

@carlos-zamora commented on GitHub (Feb 26, 2021): > Note: these are _all_ conhost (not Windows Terminal) related issues. Could this be re-targeted for a Windows (such as 21H2) milestone rather than Windows Terminal please? Yes and no. UIA is a shared component between Windows Terminal and ConHost. This is just in the Terminal milestone because it's easier for us to track it.
Author
Owner

@carlos-zamora commented on GitHub (Mar 29, 2021):

#5243 and #6986 are both very closely related. PR #5405 is an implementation to fix these issues, but was held back because we had to update our tests (and thus, it was a bit too risky to release just before v1.0).

For now, I'm closing #5405 but keeping the branch dev/cazamor/acc/ch/word-nav/perf alive. When we allocate time to work on this epic, we'll revive the PR and update the tests altogether.

I'm closing the PR to clean up our backlog a bit. To be clear, we still fully intend to work on this.

@carlos-zamora commented on GitHub (Mar 29, 2021): #5243 and #6986 are both very closely related. PR #5405 is an implementation to fix these issues, but was held back because we had to update our tests (and thus, it was a bit too risky to release just before v1.0). For now, I'm closing #5405 but keeping the branch dev/cazamor/acc/ch/word-nav/perf alive. When we allocate time to work on this epic, we'll revive the PR and update the tests altogether. I'm closing the PR to clean up our backlog a bit. To be clear, we still fully intend to work on this.
Author
Owner

@carlos-zamora commented on GitHub (Aug 11, 2021):

Note about NVDA:

@carlos-zamora commented on GitHub (Aug 11, 2021): Note about NVDA: - there's 3 API levels used (see https://github.com/nvaccess/nvda/pull/10964, specifically https://github.com/codeofdusk/nvda/blob/24fb249fa85cbbd6896d361edd1bd97869c1d7c4/source/_UIAConstants.py#L65-L84)... 1. before #4018 2. before #2161 (aka before #7000) 3. after #2161 (aka after #7000) - This is how NVDA detects which version of UIA is running (based on what features are available). And (subsequently) if UIA is good enough to be enabled by default.
Author
Owner

@carlos-zamora commented on GitHub (Aug 27, 2021):

Since I'll be adding a lot of testing for #6986 (via #10925), I should keep an eye on #10819 (that might be fixed as a part of this).

Also, add these to the epic:

  • #10822: [Conhost] causes NVDA to hang from too many events
  • #10820: [Conhost] too many events (again). This may block NVDA from switching to UIA by default
@carlos-zamora commented on GitHub (Aug 27, 2021): Since I'll be adding a lot of testing for #6986 (via #10925), I should keep an eye on #10819 (that might be fixed as a part of this). Also, add these to the epic: - #10822: [Conhost] causes NVDA to hang from too many events - #10820: [Conhost] too many events (again). This may block NVDA from switching to UIA by default
Author
Owner

@codeofdusk commented on GitHub (Oct 4, 2022):

NVDA 2022.3 has been released, and now uses UIA by default in the version of ConHost included with Windows SV2+! Thanks everyone for your excellent work and collaboration!

@codeofdusk commented on GitHub (Oct 4, 2022): [NVDA 2022.3 has been released](https://www.nvaccess.org/post/nvda-2022-3/), and now uses UIA by default in the version of ConHost included with Windows SV2+! Thanks everyone for your excellent work and collaboration!
Author
Owner

@DHowett commented on GitHub (Oct 4, 2022):

Thanks @codeofdusk! This is great news!

@DHowett commented on GitHub (Oct 4, 2022): Thanks @codeofdusk! This is great news!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#9726