Repository navigation
feat: announce the logical focus and states to Narrator - #149
Merged
Merged
Conversation
- AppController.DescribeFocus/TakeAnnouncement build what a screen reader should say: the context when it changes (home, folder, archive, search, recycle bin, menu, dialog, on-screen keyboard, path bar, tabs) and then only the focused item, with type, size, position and states in words (marked, cut, blocked, password, unavailable with the reason). - MainWindow raises a UI Automation notification for each new announcement, mirrors it in the root's name and makes the status line a polite live region. - Row type and size texts come from one Application helper shared with the announcements. - Journey test for the announcements; manual Narrator checks in TESTING.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nextestudios
force-pushed
the
feature/40-narrator
branch
from
September 27, 2026 05:14
e5b73b5 to
59527e1
Compare
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.
Summary
AppController, so Narrator used to hear nothing when the controller moved the focus. Now:AppController.DescribeFocus()(Application, testable) says where the focus is and what is focused. The context covers home, folder, archive, search results, recycle bin, menus, dialogs (title, lines, message), the on-screen keyboard, the controller wizard, the path bar and tabs. The item gets name, type, size, "N de M" and states in words: marcado, recortado, bloqueado: motivo, com senha, oculto, and indisponível: motivo for menu items and keys.TakeAnnouncement()returns the full context only when it changes and just the item while moving inside it. Nothing is repeated.MainWindowraises a UI Automation notification (ImportantMostRecent) for each announcement, mirrors it in the root's automation name (so Caps+Tab repeats it) and makes the status line a polite live region. Bottom-bar messages are read without moving the focus.EntryText) shared by rows and announcements.Tests
ScreenReaderJourneyTestswalks home → folder → mark → cut → menu with a disabled item → back → exit dialog and asserts exactly what would be announced, including that an unchanged state announces nothing.Closes #40
🤖 Generated with Claude Code