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

[Accessibility] Pressing Up/Down keyboard in drop-down list of property collapses drop-down directly #12434

Closed
Olina-Zhang opened this issue Nov 6, 2024 · 3 comments · Fixed by #12508
Assignees
Labels
🚧 work in progress Work that is current in progress tenet-accessibility MAS violation, UIA issue; problems with accessibility standards

Comments

@Olina-Zhang
Copy link
Member

Olina-Zhang commented Nov 6, 2024

.NET version

10.0.100-alpha.1.24553.6

Did it work in .NET Framework?

No

Did it work in any of the earlier releases of .NET Core or .NET 5+?

No, all versions have this issue

Issue description

Pressing Up/Down keyboard in drop-down list of property collapses dropdown directly.
Image

Expand Result: Drop-down list keeps expanding state when pressing Up/Down keyboard, then pressing Enter can collapse it

Steps to reproduce

Repro steps:

  1. Find one property with dropdown list in PropertyGrid, for example: Multiline
  2. Tab to its value part: False, then press Up keyboard to change value: True --- it is necessary step
  3. Press Alt+Down or F4 to expand this property's drop-down list
  4. Press Down keyboard to choose another value: False
@Olina-Zhang Olina-Zhang added untriaged The team needs to look at this issue in the next triage tenet-accessibility MAS violation, UIA issue; problems with accessibility standards labels Nov 6, 2024
@LeafShi1 LeafShi1 self-assigned this Nov 6, 2024
@LeafShi1 LeafShi1 removed the untriaged The team needs to look at this issue in the next triage label Nov 6, 2024
@merriemcgaw
Copy link
Member

@LeafShi1 you were working on a related issue with drop downs. Should we make sure fixing this behavior is included in your fix before we service?

@LeafShi1
Copy link
Member

LeafShi1 commented Nov 7, 2024

@LeafShi1 you were working on a related issue with drop downs. Should we make sure fixing this behavior is included in your fix before we service?

This problem occurs in the drop-down box that is expanded by the shortcut key after changing the property value, and this problem occurs in all properties. I am investigating this problem.

The call stack:

>	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.CloseDropDownInternal(bool resetFocus) Line 794	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.DropDownHolder.WndProc(ref System.Windows.Forms.Message m) Line 670	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message m) Line 66	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) Line 115	C#
 	System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.Callback(Windows.Win32.Foundation.HWND hWnd, uint msg, Windows.Win32.Foundation.WPARAM wparam, Windows.Win32.Foundation.LPARAM lparam) Line 351	C#
 	[Native to Managed Transition]	
 	[Managed to Native Transition]	
 	System.Windows.Forms.dll!System.Windows.Forms.Application.LightThreadContext.FPushMessageLoop(Microsoft.Office.msoloop uReason) Line 83	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.LightThreadContext.RunMessageLoop(Microsoft.Office.msoloop reason, bool fullModal) Line 26	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Microsoft.Office.msoloop reason, System.Windows.Forms.ApplicationContext context) Line 808	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Microsoft.Office.msoloop reason, System.Windows.Forms.ApplicationContext context) Line 695	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.DoEventsModal() Line 909	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.DropDownHolder.DoModalLoop() Line 166	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.DropDownControl(System.Windows.Forms.Control control) Line 1464	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.PopupEditor(int row) Line 3735	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.F4Selection(bool popupModalDialog) Line 1212	C#
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyGridInternal.PropertyGridView.GridViewTextBox.ProcessDialogKey(System.Windows.Forms.Keys keyData) Line 260	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Control.PreProcessMessage(ref System.Windows.Forms.Message msg) Line 8545	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Control.PreProcessControlMessageInternal(System.Windows.Forms.Control target, ref System.Windows.Forms.Message message) Line 8620	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(ref Windows.Win32.UI.WindowsAndMessaging.MSG msg) Line 962	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.LightThreadContext.FPushMessageLoop(Microsoft.Office.msoloop uReason) Line 106	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.LightThreadContext.RunMessageLoop(Microsoft.Office.msoloop reason, bool fullModal) Line 26	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Microsoft.Office.msoloop reason, System.Windows.Forms.ApplicationContext context) Line 808	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Microsoft.Office.msoloop reason, System.Windows.Forms.ApplicationContext context) Line 695	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form form) Line 1324	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window owner) Line 5674	C#
 	System.Windows.Forms.dll!System.Windows.Forms.Form.ShowDialog() Line 5559	C#

We can backport to 9.0 together after this problem is fixed

@Liv-Goh
Copy link
Contributor

Liv-Goh commented Dec 12, 2024

Verified this issue in the latest .NET 10.0 SDK build: 10.0.100-alpha.1.24611.5 + binaries built from the main branch of Winforms repo, the issue has been fixed: When Pressing Up/Down keyboard in drop-down list of property does not collapses the drop-down list.

Issue12434-Fixed.mp4

Tanya-Solyanik pushed a commit that referenced this issue Jan 9, 2025
…r experience in dropdown type editors in property grid (#12605)

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.

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

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

[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

[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.
@github-actions github-actions bot locked and limited conversation to collaborators Jan 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🚧 work in progress Work that is current in progress tenet-accessibility MAS violation, UIA issue; problems with accessibility standards
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants