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

Make ScreenInfoUiaProvider::GetSelection() Return One Selection #4466

Merged
10 commits merged into from
Feb 20, 2020

Conversation

carlos-zamora
Copy link
Member

@carlos-zamora carlos-zamora commented Feb 4, 2020

Summary of the Pull Request

We used to return multiple text ranges to represent one selection. We only support one selection at a time, so we should only return one range.

Additionally, I moved all TriggerSelection() calls to the renderer from Terminal to TermControl for consistency. This ensures we only call it once when we make a change to our selection state.

References

#2447 - helps polish Signaling for Selection
#4465 - This is more apparent as the problem holding back Signaling for Selection

PR Checklist

Tested using Accessibility Insights.

@carlos-zamora carlos-zamora added Product-Conhost For issues in the Console codebase Area-Accessibility Issues related to accessibility Product-Terminal The new Windows Terminal. labels Feb 4, 2020
@carlos-zamora carlos-zamora added this to the Terminal v0.10 milestone Feb 7, 2020
@DHowett-MSFT
Copy link
Contributor

What does the renderer do if its only job, to signal, has been murdered?

@carlos-zamora
Copy link
Member Author

What does the renderer do if its only job, to signal, has been murdered?

Ah. That's not the case. Selection is the easiest to explain so I'll do that route.

When we get a change in selection and we're rendering the new selection, UiaRenderer identifies that we need to fire an event. And it does so.

In the case of selection, the UIA Client (i.e.: Narrator) then calls GetSelection(). And that's how it knows what exactly is selected at this time.

So UiaRenderer still has an important job. And what makes other UIA Events harder is that the event doesn't map directly to an API call ☹

@carlos-zamora carlos-zamora changed the title Fix ScreenInfoUiaProvider::GetSelection() Make ScreenInfoUiaProvider::GetSelection() Return One Selection Feb 11, 2020
@DHowett-MSFT DHowett-MSFT added the AutoMerge Marked for automatic merge by the bot when requirements are met label Feb 20, 2020
@ghost
Copy link

ghost commented Feb 20, 2020

Hello @DHowett-MSFT!

Because this pull request has the AutoMerge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (@msftbot) and give me an instruction to get started! Learn more here.

@ghost ghost merged commit d0c8221 into master Feb 20, 2020
@ghost ghost deleted the dev/cazamor/acc/sig/selection branch February 20, 2020 23:03
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Accessibility Issues related to accessibility AutoMerge Marked for automatic merge by the bot when requirements are met Product-Conhost For issues in the Console codebase Product-Terminal The new Windows Terminal.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ScreenInfoUiaProvider::GetSelection() returns an improper result
4 participants