Messages read as you tab through discord again.

This commit is contained in:
lilmike committed 2026-11-01 14:52:44 -08:00
1 parent 6ed0e36960
commit 9374b5a2e5
10 files changed
+162 -3

No files matched your search

+33
View File
@@ -128,3 +128,36 @@ The implementation work does not replace the running reader.
once and the normal focus display returns afterward.
Actual Pidgin listening, physical shortcuts, and Braille acceptance remain pending.
## Discord message focus
Named article ancestors are announced when focus enters their controls, matching
Python's article ancestor presentation. Discord supplies the message author,
contents, and timestamp in the article's accessible name. The message is spoken
once on entry, followed by the focused button. Moving between controls within
the same article does not repeat it. Leaving does not repeat the old message.
This also works in focus mode and while browser context discovery is pending.
Unnamed articles do not add announcements; other container preferences retain
their existing browse-mode policy. Native traversal retains its depth and time
limits and does not scan message descendants.
Automated checks:
```sh
go test ./internal/app -run '^TestMessageArticleAnnouncedOnceWhenTabbingIntoControls$' -count=1
CTHULHU_NATIVE_BROWSER_TESTS=article python3 tests/native_browser.py
```
Both tests fail without the corresponding fix. The private Chromium fixture
checks native capture of a message article labelled by author, body, and time.
The speech replay checks entry, movement within a message, movement to another
message, exit, and re-entry. Neither establishes audible Discord acceptance.
Before submission, review the diff and test a rebuilt reader in Discord with
Tab and Shift+Tab: enter a message's controls, move through Reply/Forward and
reactions, then enter another message. Confirm each message is read on entry,
control labels remain correct, and message contents do not repeat at each Tab
stop. Repeat in browse and focus modes; check the message composer, ordinary
browser buttons, and list/panel context announcements for regressions. Verify
physical Braille focus and routing separately. Installed-binary, physical-input,
audible-speech, and Braille-display acceptance remain pending.