Skip to content
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 review bounds configurable #9687

Closed
wants to merge 4 commits into from

Conversation

codeofdusk
Copy link
Contributor

Link to issue number:

Builds on #9614.

Summary of the issue:

In the Windows Console, only onscreen text can be read using the review cursor; if text scrolls off the screen, it is impossible to review it.

Description of how this pull request fixes the issue:

This PR allows the review bounds (i.e. which portion of the console buffer can be reviewed) to be changed on the fly using new gestures. Currently, nvda+o and nvda+shift+o cycle among the review bounds options.

Testing performed:

Attempted to review text before and after running git log using the various modes on Windows 10 1903.

Known issues with pull request:

  • I don't really like NVDA+o for this. Can you think of an easier command to type?

Change log entry:

None yet, but this should definitely get one once UIA becomes the default.

@codeofdusk
Copy link
Contributor Author

@DrSooom
Copy link

DrSooom commented Jun 9, 2019

@codeofdusk: Is it possible to implement this function into the review modes which can be switched by pressing NVDA+Num7 and NVDA+Num1?

@codeofdusk
Copy link
Contributor Author

@codeofdusk: Is it possible to implement this function into the review modes which can be switched by pressing NVDA+Num7 and NVDA+Num1?

As I see it, the advantages to this approach are:

  • Logically, these bounds settings are modes of review (i.e. they change the behavior of the review commands).
  • In the UIA console, screen review doesn't seem that useful.

However, this requires adding support for custom review modes to NVDA. To do this, I could check if the object under review implements previousReviewMode/nextReviewMode and defer to those methods when available. Then, for the console, I could implement the new review mode switching methods to change bounds.

To me, this breaks the consistency of the review mode commands (i.e. wildly different review modes become available based on the object being reviewed, which could confuse users). My vote goes to keeping the bounds switching on a dedicated script.

Copy link
Member

@michaelDCurran michaelDCurran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this kind of feature needs a bit more thought before we take this.
Some things to think about:

  • I think that there are too many possibilities for the bounds setting. A simple toggle of bounded or unbounded would be enough, and then also means we only need to use up one gesture.
  • There is already a bug present in the UIA console support where pressing shift+numpad7 (top line) or shift+numpad9 (bottm line) takes you past the visible bounds, and then you're stuck there. I think that to get around this we would really need to embed this concept of configureable review bounds into NVDA much deeper. My idea would be to have textInfos support position_firstvisible and position_lastVisible. Then the review top/bottom scripts in globalCommands would honor the review bounds setting by using position_firstVislbe instead of position_first and position_lastVisible instead of position_last, if it was set to bounded.

@codeofdusk
Copy link
Contributor Author

This PR will be rewritten in a more general form separate from the UIA console work (but definitely usable here).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants