Repository navigation
feat(ui): have VoiceOver announce changes made away from the focus - #30
Merged
Merged
Conversation
VoiceOver reads a control's new label or state only when the user moves to it, so three things RABBIT changes on its own went unheard on macOS: - ticking a package can show or hide the REAPER-language and Spanish variant dropdowns below the list, off to the side of the row the user is on; - the progress page's status line moves from package to package while focus sits on the log; - a failed version check rewrites the status line while focus stays on the gauge. Each is now announced through the voiceover module added for Space toggles, which gains a priority: the answer to a key press interrupts, news the user didn't ask for waits for current speech. Only the start of each install and configuration step is spoken, not download lines, which change several times a second. A Space toggle folds its dropdown news into the same announcement, since a second one would cut the first off; a click or VO+Space, which VoiceOver already reads back, gets the dropdown news on its own, politely. The packages toggle now returns the dropdown lines instead of a bool; elsewhere than macOS `announce` does nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main now has the UI crate split (Timtam#27) and Timtam#29 as merged there, so this branch's own changes to wx_app.rs are carried into the modules the code moved to: - The announce helper and its priority go into wx_app/globals.rs, made crate-visible because the progress page, the version check and the Mac package list all call it. - The announcements land in wx_app/progress_ui.rs, wx_app/version_check.rs and wx_app/packages_page/dataview.rs; the toggle's new return type drops the per-item cfg, as the whole module is macOS-only. - choice_shown_note moves next to its only caller in dataview.rs: in widgets.rs it was dead code on Windows, and it had been placed between set_optional_choice_shown and that function's doc comment. A three-way comparison of every item (base, this branch, main, merged) found nothing lost. dataview.rs was also type-checked on Windows by pointing the package page at it: no errors, no warnings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Timtam
added a commit
to math65/rabbit
that referenced
this pull request
Oct 6, 2026
…age Enter fix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
VoiceOver reads a control's new label or state only when the user moves to it, so three things RABBIT changes on its own went unheard on macOS. Each is now announced:
The announcement helper gains a priority: the answer to a key press interrupts, news the user didn't ask for waits. A Space toggle folds its dropdown news into its own "Checked" announcement, because a second announcement would cut the first off. A click or VO+Space, which VoiceOver already reads back, gets the dropdown news on its own, after it.
New locale keys in all five languages. On anything other than macOS,
announcedoes nothing.Testing
Validated on macOS with VoiceOver (fr-FR): dropdowns appearing and disappearing through Space and VO+Space, and a full install run. The version-check failure path compiles, but I couldn't trigger it by hand.
Whether announcements are too chatty is a taste call, so it's easy to drop any one of the three.
🤖 Generated with Claude Code