uttrflow / uttrflow/uttrflow-swift

The Style page's tick control has no accessibility label, unlike the same control in Settings

Open Beginner friendly
#514 0 comments 0 reactions 0 assignees View on GitHub
accessibility area:dictation bug good first issue P2
Dominant language
Swift
Stars
4
Forks
17
Avg merge
3h 32m
Merged PRs (30d)
277

Description

## What happens

Settings and the Style page both draw the `.tick` control as a plain `Button` whose label is only an SF Symbol:

- Settings: `Sources/Uttrflow/Settings/SettingsControlView.swift:67-76`. `SettingsControlView.body` applies `.accessibilityLabel(label)` to every control (line 23), with the row's own wording.
- Style: `Sources/Uttrflow/Main/StylePageView.swift:102-111`. `StyleControlView` has no `label` and applies no `.accessibilityLabel`, so the button's only name is the symbol (`checkmark.circle.fill` or `circle`). The row around it is an `.accessibilityElement(children: .contain)` with a label (line 81-82), which names the group, not the button inside it.

## Why it matters

A VoiceOver user moving to the button hears a symbol description rather than what the switch does.

## How to check

With `make app`, open the main window's Style page, turn on VoiceOver (or use Accessibility Inspector from Xcode's Open Developer Tool menu), and move to a tick control. Compare with a tick control in Settings.

## Acceptance criteria

- `StyleControlView` takes the row's label (as `SettingsControlView` does with `label`) and applies it with `.accessibilityLabel` to the controls it draws.
- The tick keeps its selected trait.
- The pull request says how it was checked with VoiceOver or Accessibility Inspector.

## Where to start

- `Sources/Uttrflow/Main/StylePageView.swift:60-111`
- `Sources/Uttrflow/Settings/SettingsControlView.swift:6-24` for the pattern
- Tests to extend: none expected for a SwiftUI view; `make verify` must stay green.
- Before pushing, run `make verify` (export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer first). It is the same command CI runs, and it enforces the 95% coverage floor per module.
- Read [CONTRIBUTING.md](https://github.com/uttrflow/uttrflow-swift/blob/main/CONTRIBUTING.md) first, and say on this issue that you are taking it.

**Size:** S, about 1-2 hours.

Contributor guide

Open the contributing guide

Research direction

Read CONTRIBUTING.md, then compare StyleControlView in Sources/Uttrflow/Main/StylePageView.swift:60-111 with SettingsControlView in Sources/Uttrflow/Settings/SettingsControlView.swift:6-24. Update the Style tick controls to use the row label while preserving the selected trait, then check the result with VoiceOver or Accessibility Inspector and run make verify.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, swift
Domain
accessibility, desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
92/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.