Files
cthulhu/docs/testing/reading-settings.md

52 lines
2.9 KiB
Markdown

# Reading settings descriptions
Build a separate test binary and run the focused checks:
```sh
go build -o /tmp/cthulhu-reading-descriptions ./cmd/cthulhu
go test ./internal/preferences ./internal/presentation -count=1
go test ./internal/app -run 'GUITable|GUIListTable|Context|PauseChunks' -count=1
CTHULHU_BINARY=/tmp/cthulhu-reading-descriptions CTHULHU_PREFS_READING_ONLY=1 /usr/bin/python3 tests/native_preferences.py
```
The native check uses private Xvfb, D-Bus and AT-SPI services. It checks all
three column headers, a description for every setting, checkbox states,
Left/Right and Up/Down navigation, Space from the description column,
Tab/Shift+Tab, Apply/reload and Cancel. The reader tests check full-row speech
including a third cell, individual-cell speech and interruption.
Before submission, review the diff and check the rebuilt reader in a live
session:
1. Open Preferences, select Speech and enter Reading settings. With Speak full
row in GUI tables enabled, use Up and Down and confirm the state, setting
name and explanation are spoken in that order.
2. Press another navigation key before an explanation finishes. Confirm the
earlier speech stops and the new row is announced promptly.
3. Use Left and Right to reach all three cells. Confirm the description is
read in full, without repeating the setting title or checkbox state.
4. Press Space from each column and confirm it toggles only the selected
setting. Apply, close and reopen preferences to check saved state. Change a
checkbox again and Cancel to confirm the change is discarded.
5. Check Tab and Shift+Tab into and out of the table. Disable full-row reading
and confirm arrows read individual cells. Restore the preferred setting.
6. Check the modifier-key table and an application table to confirm their
existing row and cell reading still works. Check the new descriptions on a
physical Braille display when available.
7. In FastSMRW, move through the timeline and switch workspaces to a terminal.
Confirm no enter/leave container announcements occur. Also Tab into and out
of Preferences tables and a native application's list: names, rows and cells
should still be spoken, without a separate container exit announcement.
8. In browser browse mode, navigate into and out of a list and data table.
Confirm enabled context announcements still work, including during Say All.
Switch to focus mode, browser chrome or another workspace and confirm there
is no container exit announcement. Return to browse mode and check context
is announced again when entering a container.
9. Focus a button with a mnemonic, such as Preferences' Apply button. With
pause breaks enabled, confirm the mnemonic follows as a separate chunk.
Disable pause breaks and confirm the announcement is combined. Restore the
preferred setting.
Automated checks do not establish audible speech, physical keyboard or Braille
acceptance, or behavior of the installed reader.