Summary
Request to integrate the accessibility layer in a maintainer-friendly way (minimal core changes, modular design), and keep BW selector behavior deterministic.
Why
Audio cues significantly improve usability for blind and low-vision users:
- menu/submenu navigation by pitch
- explicit enter/back/confirm feedback
- ON/OFF two-tone patterns for toggles
Required behavior (BW selector: Filter / iMS / EQ)
Expected UX:
- Changes apply immediately while navigating selector (instant preview).
- Values are persisted only after selecting
OK.
- Leaving selector via
MENU/BACK restores previous values (no save).
Minimal implementation approach
Keep accessibility mostly isolated in src/accessibility.* and add only small hooks in existing code paths:
ButtonPress(), ModeButtonPress(), BWButtonPress()
- rotary up/down menu paths
- touch selector path in
src/touch.cpp
- selector rendering reads temporary state only while selector is open
For BW selector state handling:
- snapshot on entry:
BWsetRecall, iMSsetRecall, EQsetRecall
- temporary state while open:
BWtemp, BWsettemp, iMSsettemp, EQsettemp
- commit EEPROM only on
OK
- no EEPROM commit during preview mode
Acceptance tests
- No duplicate/overlapping menu cues.
- BW selector preview/save/cancel behavior exactly as described above.
- Stereo/mono ON/OFF cue pattern remains consistent.
- No regression in band switching stability.
- Firmware size remains within current flash constraints.
Notes
A ready implementation guide and issue draft were prepared on fork branch final/a11y-review-pack:
docs/ACCESSIBILITY_UPSTREAM_INTEGRATION_GUIDE.md
docs/ISSUE_DRAFT_ACCESSIBILITY_PLAN.md
Prepared with AI assistance and manually validated in firmware tests.
Summary
Request to integrate the accessibility layer in a maintainer-friendly way (minimal core changes, modular design), and keep BW selector behavior deterministic.
Why
Audio cues significantly improve usability for blind and low-vision users:
Required behavior (BW selector: Filter / iMS / EQ)
Expected UX:
OK.MENU/BACKrestores previous values (no save).Minimal implementation approach
Keep accessibility mostly isolated in
src/accessibility.*and add only small hooks in existing code paths:ButtonPress(),ModeButtonPress(),BWButtonPress()src/touch.cppFor BW selector state handling:
BWsetRecall,iMSsetRecall,EQsetRecallBWtemp,BWsettemp,iMSsettemp,EQsettempOKAcceptance tests
Notes
A ready implementation guide and issue draft were prepared on fork branch
final/a11y-review-pack:docs/ACCESSIBILITY_UPSTREAM_INTEGRATION_GUIDE.mddocs/ISSUE_DRAFT_ACCESSIBILITY_PLAN.mdPrepared with AI assistance and manually validated in firmware tests.