AprilNEA / AprilNEA/OpenLogi

Windows accessibility: NVDA encounters unnamed or silent controls

Open
#1,226 1 comment 0 reactions 0 assignees View on GitHub
needs: triage type: bug
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
2d 5h
Merged PRs (30d)
172

Description

### Pre-flight checklist

- [x] I searched [existing issues](https://github.com/AprilNEA/OpenLogi/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I am on the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest) or a recent `master` build.
- [x] I quit **Logi Options+** before running OpenLogi (the two apps fight over HID++ access and only one can own a receiver at a time).

### Which part of OpenLogi?

GUI (desktop app)

### OpenLogi version

0.8.3

### Operating system

windows

### OS version & architecture

Windows 11 PRO 25H2 AMD 64

### Device model

MX Mechanical

### How is the device connected?

Logi Bolt receiver

### Affected area(s)

- [ ] Device discovery / detection
- [ ] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [ ] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [ ] Other

### What happened?

## Description

On Windows, many OpenLogi controls do not expose accessible names or proper
keyboard semantics. When navigating device settings with NVDA, Tab and
Shift+Tab can produce complete silence. NVDA object navigation often announces
only generic roles such as "button", "switch", or "slider" without explaining
what the control does.

### Steps to reproduce

1. Start NVDA on Windows.
2. Open OpenLogi.
3. Open the application settings or the settings for a connected keyboard.
4. Navigate through the interface using Tab and Shift+Tab.
5. Inspect the same controls using NVDA object navigation.
## Actual behavior

Some controls are silent. Others expose only a generic control role without an
accessible name. Several pointer-operated controls cannot be understood or
operated reliably from the keyboard.

## Expected behavior

Every interactive control should:

- be reachable using the keyboard;
- expose a meaningful accessible name and role;
- expose its current state or value where applicable;
- support the expected keyboard actions;
- preserve the application's existing visual design.

### Diagnostics report

```markdown

```

### `openlogi list` output

```text

```

### Logs

```shell

```

### macOS permissions (if applicable)

Not applicable — this report concerns Windows.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the issue in OpenLogi on Windows with NVDA, using Tab, Shift+Tab, and object navigation through application and connected-keyboard settings. The issue names no source files or tests; done means interactive controls are keyboard reachable, expose meaningful names, roles, states or values, and support expected keyboard actions without changing the visual design.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
accessibility, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.