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

2.9 KiB

Reading settings descriptions

Build a separate test binary and run the focused checks:

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.