UI Automation in Windows Console: use UIATextInfo in FORMATTED consoles#12669
Merged
seanbudd merged 1 commit intoJul 22, 2021
Merged
Conversation
4d62b70 to
161fa87
Compare
codeofdusk
added a commit
to codeofdusk/nvda
that referenced
this pull request
May 8, 2022
…MATTED consoles. The ability for users to explore all console text enabled by nvaccess#12669 has been well appreciated, but it poses problems in paginated output (less, more, etc.) as the review cursor jump to top/bottom commands are relative to the entire buffer, which can grow quite large. To ease review of paginated output, make these commands jump relative to visible (not full) text. Note that it is now impossible to jump quickly to the top/bottom of the entire buffer. Closes nvaccess#13157.
5 tasks
codeofdusk
added a commit
to codeofdusk/nvda
that referenced
this pull request
May 8, 2022
…MATTED consoles. The ability for users to explore all console text enabled by nvaccess#12669 has been well appreciated, but it poses problems in paginated output (less, more, etc.) as the review cursor jump to top/bottom commands are relative to the entire buffer, which can grow quite large. To ease review of paginated output, make these commands jump relative to visible (not full) text. Note that it is now impossible to jump quickly to the top/bottom of the entire buffer. Closes nvaccess#13157.
codeofdusk
added a commit
to codeofdusk/nvda
that referenced
this pull request
Jun 22, 2022
…MATTED consoles. The ability for users to explore all console text enabled by nvaccess#12669 has been well appreciated, but it poses problems in paginated output (less, more, etc.) as the review cursor jump to top/bottom commands are relative to the entire buffer, which can grow quite large. To ease review of paginated output, make these commands jump relative to visible (not full) text. Note that it is now impossible to jump quickly to the top/bottom of the entire buffer. Closes nvaccess#13157.
5 tasks
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:
Closes #12130.
Might help #11172.
Supersedes #11495 and #12425.
Summary of the issue:
Before recent upstream work, NVDA needed a custom
TextInfoimplementation including workarounds for the console. Notably, it was necessary to restrict the text range to visible content, as the console contained thousands of empty lines which both slowed down diffing and disorientated the user. This is no longer necessary as the console's UIA text range now ends at the last actual character (i.e. no more extraneous empty lines).This bounding to the visible ranges can sometimes lead to choppy speech output, as full screen refreshes (such as in pagers or full-screen editors) cause text discontinuity, resulting in the diff algorithms losing context about which parts of the text are new. It breaks precedent from the rest of NVDA: in Word or web documents, for instance, the review cursor is not bounded to the visible text and the entire document can be freely explored. Despite the documentation of the scrolling commands in the user guide, the need to scroll consoles in particular, in strict contrast to the behaviour in other applications, has caused user confusion (microsoft/terminal#6453 and private correspondance with various users) and the commands don't work consistently in any case. In microsoft/terminal#6453 (comment) it was pointed out that consoles can have text that appears below the visible content, which is currently inaccessible to NVDA due to bounding.
Description of how this pull request fixes the issue:
Switches consoles where
apiLevelisFORMATTEDto use the defaultTextInfoimplementation (i.e. no customization at the UIA text range level). Also useUIATextInfoin Windows Terminal as it never contained thousands of empty lines, making the overrides unnecessary there.Testing strategy:
With NVDA developer info (NVDA+f1), verified that:
FORMATTEDconsole:UIATextInfois used.IMPROVEDconsole:ConsoleUIATextInfois used.END_INCLUSIVEconsole:ConsoleUIATextInfoWorkaroundEndInclusiveis used.UIATextInfois used.Also manually verified that new and old UIA console work as expected.
Known issues with pull request:
None.
Change log entries:
None (will become user visible with #10964).
Code Review Checklist: