uttrflow / uttrflow/uttrflow-swift
The Style page's tick control has no accessibility label, unlike the same control in Settings
- 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
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