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

Suspicious behavior when using up/down keys to navigate ImeMode and AutoValidate in PropertyGrid #12480

Open
Syareel-Sukeri opened this issue Nov 14, 2024 · 3 comments
Assignees

Comments

@Syareel-Sukeri
Copy link
Contributor

.NET version

.NET 10.0.100 - alpha.1.24562.4

Did it work in .NET Framework?

No

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

No, the issue is reproduced in previous releases of .NET

Issue description

ImeMode

  1. Pressing the 'down' key again after the bottom value is selected resets the selection to the first value, instead of stopping at the bottom.
ImeModeSpamDown.mp4
  1. When navigating through the ImeMode property, the Inherit value cannot be selected. However, pressing the "up" arrow key to reach Inherit causes the selected value in the edit box to become NoControl. Continuing to press the "down" key leads to an incorrect value being selected.
ImeModeWrongValue.mp4

AutoValidate

  1. In the AutoValidate property, pressing the "up" arrow key selects the Inherit value. When pressing the "down" key to navigate to the next value, the EnableAllowFocusChange value remains displayed in the edit box, even though the selected value has changed.
AutoValidateSameValue.mp4

Steps to reproduce

ImeMode issue1

  1. Create .NET WinForms project.
  2. Select "Form1" and open the ImeMode property in the PropertyGrid.
  3. Press the "down" arrow key until the bottom value is selected.
  4. Press the "down" key again.
  5. Observe the selected value in the edit box.

ImeMode issue2

  1. Create .NET WinForms project.
  2. Select "Form1" and open the ImeMode property in the PropertyGrid.
  3. In the ImeMode property, press the "up" arrow key until you reach the Inherit value at the top.
  4. Observe the value in the edit box changes to NoControl instead of Inherit.
  5. Continue pressing the "down" key.
  6. Observe the selected value in the edit box.

AutoValidate issue1

  1. Create .NET WinForms project.
  2. Select "Form1" and open the AutoValidate property in the PropertyGrid.
  3. Press the "up" arrow key until the Inherit value is selected.
  4. Press the "down" arrow key to move to the next value.
  5. Observe the selected value in the edit box.
@Syareel-Sukeri Syareel-Sukeri added the untriaged The team needs to look at this issue in the next triage label Nov 14, 2024
@merriemcgaw
Copy link
Member

Please add Narrator buddy and/or NVDA's logger to the videos so we can also see what is being narrated to the user.

@merriemcgaw merriemcgaw added the 📭 waiting-author-feedback The team requires more information from the author label Nov 19, 2024
@LeafShi1 LeafShi1 self-assigned this Nov 20, 2024
@LeafShi1 LeafShi1 removed the untriaged The team needs to look at this issue in the next triage label Nov 20, 2024
@Syareel-Sukeri
Copy link
Contributor Author

Syareel-Sukeri commented Nov 20, 2024

@merriemcgaw I verified the issue using Narrator and NVDA, and the results are as follows:

ImeMode issue1
NVDA stops announcing the selected value after the bottom value is reached, even though the value in the edit box continues to change. Narrator exhibits the same behavior.

NVDAIssue1.mp4

ImeMode issue2
NVDA announces the correct value, which differs from the value displayed in the edit box. Narrator exhibits the same behavior.

NVDAIssue2.mp4

AutoValidate issue1
NVDA announces the correct value, which differs from the value displayed in the edit box. Narrator exhibits the same behavior.

NVDAIssue3.mp4

@dotnet-policy-service dotnet-policy-service bot added untriaged The team needs to look at this issue in the next triage and removed 📭 waiting-author-feedback The team requires more information from the author labels Nov 20, 2024
@Syareel-Sukeri Syareel-Sukeri removed the untriaged The team needs to look at this issue in the next triage label Nov 20, 2024
@LeafShi1
Copy link
Member

LeafShi1 commented Nov 20, 2024

@merriemcgaw @Tanya-Solyanik When OnHalf (the last option in the drop-down list) is selected, the ImeMode property automatically changes its value to On (the third option in the drop-down list). This setting is made for system compatibility.

if (imeMode == ImeMode.OnHalf) // This is for compatibility. See QFE#4448.
{
imeMode = ImeMode.On;
}

Then pressing down key, the options will be selected from the third option On.

If we want to solve this issue, we cannot submit the value when selecting in the drop-down list using the up and down keys, but only submit the selected value in the list and display it in the EditTextBox after pressing the Enter key.
Like the following.
Image

Do you think this is OK?

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

No branches or pull requests

3 participants