dotnet / dotnet/winforms

CheckBoxs do not read their state to screen readers properly on change

Open
#14,669 4 comments 0 reactions 1 assignee Claimed by @LeafShi1 View on GitHub
tenet-accessibility
Dominant language
C#
Stars
4.9k
Forks
1.1k
Avg merge
20h 23m
Merged PRs (30d)
103

Description

### .NET version

10.0.202

### Did it work in .NET Framework?

Not tested/verified

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

_No response_

### Issue description

This super simple test app:
```cs
using System.Windows.Forms;

ApplicationConfiguration.Initialize();
Form form = new() { Text = "Tiny App", Width = 200, Height = 100 };
CheckBox checkBox = new() { Text = "Check me!", Top = 20, Left = 20, AutoSize = true };
form.Controls.Add(checkBox);
Application.Run(form);
```
shows a problem with how Windows Forms handles its accessibility implementation for checkboxes.
1. With NVDA, both 64-bit 2026.1 and 32-bit 2025.x, pressing space to toggle the state of this checkbox is utterly silent, instead of saying "checked" or "unchecked".
2. With Narrator, it does read, but it rereads the entire label of the checkbox and then the state, which isn't normal. Went into an app using standard win32 controls and narrator announced "space, \" when I toggle checkboxes. In this app, it doesn't even say "space", just the label and the full state every time it's toggled.

Both of these are abnormal behaviors for screen readers, which points to it being something inside Winforms.

### Steps to reproduce

1. Run my provided test app with a screen reader active.
2. Attempt to toggle the checkbox with the space bar.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.