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

[release/9.0][Accessibility] Fix keyboard navigation and screen reader experience in dropdown type editors in property grid #12605

Conversation

LeafShi1
Copy link
Member

@LeafShi1 LeafShi1 commented Dec 9, 2024

Backport of #12508, #12431, #12356 and #12479 to release/9.0
Fixes #12607
NET10 Bugs: #12434, #12421, #12440, #12031

Bug Description

There are four issues that occur when using the up/down keys to switch property values ​​in the property page.

  1. When navigating to "Auto Size" dropdown using the up/down arrow keys, it is getting auto selected without hitting ENTER

  2. After using Tab to switch property values, then using the up/down keys to switch items in the drop-down box expanded by F4 will cause the drop-down box to collapse directly

  3. [Accessibility] When using up/down to toggle property value on edit text box, The Accessibility ​​rectangle focuses on the entire property row instead of the original edit text box

  4. [Accessibility] Narrator cannot announce items correctly when switching the items by using up/down keyboard arrow that without expand the dropdown list panel

Customer Impact

PropertyGrid drop down type editor does not support conventional keyboard navigation. Usually, selection is committed when the ENTER key is pressed. However, in this case value is committed on the Down arrow press. Then the drop down list is expanded, the screen reader user might want to navigate through all values in the drop down using the arrows, on each arrow key press the new item should be presented (and announced) in the selection text box, however, the drop down is closed on the first arrow key. According to the accessibility SMEs, this is a major problem - the keyboard users are losing their work by committing a wrong value. Screen reader user don't get correct feedback when navigating through the drop down list.

Regression?

No, Keyboard navigation had been designed incorrectly from the .NET Framework.
Yes for issue #12421

Testing done

  • manual, using Accessibility insights, Narrator, NVDA.
  • test team ran migrated automation cases

Risk

low.

Microsoft Reviewers: Open in CodeFlow

…xBase.cs (dotnet#12479)

* Add UIA_AutomationFocusChangedEventId in SelectInternal function of  PropertyGridView.GridViewTextBox

* Add a check that when the selected text is (0, 0), let the AI ​​rectangle refocus the current text box

* Rename the variables of function SelectInternal
…UpAndDown (dotnet#12508)

* Unhook the mouse down hook at the end of PropertyGridView.ProcessEnumUpAndDown

* Removing ? from code line "EditTextBox?.SelectAll();"
…switch property values ​​on edit textBox (dotnet#12431)

* Fix editor text box focus issue when switching value property grid view

* Override function SelectInternal in file PropertyGridView.GridViewTextBox.cs

* Removing fullRefresh condition from function Refresh
@LeafShi1 LeafShi1 requested a review from a team as a code owner December 9, 2024 10:40
Copy link

codecov bot commented Dec 9, 2024

Codecov Report

Attention: Patch coverage is 87.50000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 74.82951%. Comparing base (7a4fa49) to head (63ded57).
Report is 12 commits behind head on release/9.0.

Additional details and impacted files
@@                  Coverage Diff                  @@
##           release/9.0      #12605         +/-   ##
=====================================================
- Coverage     74.83047%   74.82951%   -0.00097%     
=====================================================
  Files             3022        3022                 
  Lines           630258      630258                 
  Branches         46794       46794                 
=====================================================
- Hits            471625      471619          -6     
+ Misses          155253      155249          -4     
- Partials          3380        3390         +10     
Flag Coverage Δ
Debug 74.82951% <87.50000%> (-0.00097%) ⬇️
integration 18.02416% <81.25000%> (-0.00635%) ⬇️
production 47.85813% <87.50000%> (-0.00211%) ⬇️
test 97.00830% <ø> (ø)
unit 44.88803% <75.00000%> (-0.00458%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

@Tanya-Solyanik Tanya-Solyanik changed the title Backport pr 12356 12431 12508 and 12479 [release/9.0][Accessibility] Fix keyboard navigation in dropdown type editors in property grid Dec 9, 2024
@Tanya-Solyanik Tanya-Solyanik changed the title [release/9.0][Accessibility] Fix keyboard navigation in dropdown type editors in property grid [release/9.0][Accessibility] Fix keyboard navigation and screen reader experience in dropdown type editors in property grid Dec 9, 2024
@Tanya-Solyanik Tanya-Solyanik added the 📬 waiting-for-testing The PR is awaiting manual testing by the primary team; no action is yet required from the author(s) label Dec 9, 2024
@lonitra lonitra added the 🚫 * NO-MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Dec 9, 2024
@lonitra
Copy link
Member

lonitra commented Dec 9, 2024

This will need to wait until February servicing is open for merge.

@LeafShi1
Copy link
Member Author

This has been tested by testing team, it works well with all main accessibility tools.

@LeafShi1 LeafShi1 removed the 📬 waiting-for-testing The PR is awaiting manual testing by the primary team; no action is yet required from the author(s) label Dec 18, 2024
@LeafShi1 LeafShi1 requested a review from lonitra December 25, 2024 00:49
@LeafShi1 LeafShi1 added the waiting-review This item is waiting on review by one or more members of team label Dec 30, 2024
@Tanya-Solyanik Tanya-Solyanik added Servicing-consider .NET Shiproom label indicating a PR seeks to enter into a branch under Tell-Mode criteria Servicing-approved .NET Shiproom approved the PR for merge and removed waiting-review This item is waiting on review by one or more members of team 🚫 * NO-MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) Servicing-consider .NET Shiproom label indicating a PR seeks to enter into a branch under Tell-Mode criteria labels Jan 7, 2025
@Tanya-Solyanik Tanya-Solyanik merged commit ecc65f0 into dotnet:release/9.0 Jan 9, 2025
8 checks passed
@Tanya-Solyanik Tanya-Solyanik added this to the 9.0.2 milestone Jan 9, 2025
@LeafShi1 LeafShi1 deleted the Backport_pr_12356_12431_12508_and_12479 branch January 15, 2025 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Servicing-approved .NET Shiproom approved the PR for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants