Skip to content

NVDA fails to announce checked state of ToolStripMenuItem in Windows Forms (.NET Framework 4.8) #19335

@zjn046

Description

@zjn046

Steps to reproduce:

  1. Create a Windows Forms application (.NET Framework 4.8) with ToolStripMenuItem controls that have CheckOnClick = true
  2. Launch the application with NVDA running (Version: 2025.3.2)
  3. Navigate to the menu and use arrow keys to move between menu items that have different checked states

Example code:

_miFollowCursor = new ToolStripMenuItem("Follow Cursor", null, delegate
{
    OnToggleFollowCursor();
})
{
    CheckOnClick = true
};

_miSeqPlay = new ToolStripMenuItem("Sequential Play", null, delegate
{
    OnSetPlaybackOrder("Sequential Play");
})
{
    CheckOnClick = true
};

_miListLoop = new ToolStripMenuItem("List Loop", null, delegate
{
    OnSetPlaybackOrder("List Loop");
})
{
    CheckOnClick = true
};

Actual behavior:

NVDA only announces the menu item text (e.g., "Sequential Play", "List Loop") without mentioning whether the item is checked or unchecked.

Expected behavior:

NVDA should announce both the menu item text AND its checked state, similar to how Windows Narrator and ZDSR (Chinese screen reader) behave. For example: "Sequential Play, checked" or "List Loop, unchecked".

Comparison with other screen readers:

  • Windows Narrator: Correctly announces menu item checked states
  • ZDSR: Correctly announces menu item checked states
  • NVDA: Does NOT announce checked states

System configuration:

NVDA installed/portable/running from source:
Installed

NVDA version:
2025.3.2 (2025.3.2.53588)

Windows version:
Windows 11 Pro for Workstations, Version 25H2 (OS Build 26200.7309)

Name and version of other software in use when reproducing the issue:

  • .NET Framework 4.8
  • Windows Forms (WinForms) application
  • ToolStripMenuItem with CheckOnClick = true

Other information about your system:

The accessibility properties are properly configured (AccessibleName, AccessibleDescription, AccessibleRole). The menu items function correctly and toggle their checked state when activated, but NVDA does not announce this state change to the user.

Other questions:

This issue was originally reported as part of #19281 but was identified as a separate issue from the ComboBox navigation problem (which is tracked in #17454).

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-technical-investigationA technical investigation is required to progress the issue.p2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions