Report selection changes for .NET Framework WinForms combo boxes using UIA#20481
Open
cary-rowen wants to merge 2 commits into
Open
Report selection changes for .NET Framework WinForms combo boxes using UIA#20481cary-rowen wants to merge 2 commits into
cary-rowen wants to merge 2 commits into
Conversation
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:
Fixes #17454
Summary of the issue:
Classic .NET Framework Windows Forms combo boxes exposed through the native UIA provider update their value when the selection changes, but do not fire a UIA value change event. Therefore, NVDA does not report arrow-key selection changes while the combo box is collapsed.
Description of user facing changes:
NVDA now reports the selected item when using the arrow keys in affected collapsed combo boxes.
Description of developer facing changes:
No public API changes.
Description of development approach:
Add a private, targeted UIA overlay for affected combo boxes. It requests
UIA_elementSelectedevents from same-processComboLBoxwindows. Since this event request is scoped by process and window class,GetComboBoxInfoverifies that the event's list window belongs to the focused combo box before NVDA forwards it as a value change. The required User32 declarations are added towinBindings.user32.Testing strategy:
DropDownandDropDownList.Known issues with pull request:
None known.
Code Review Checklist: