45 lines
2.6 KiB
Markdown
45 lines
2.6 KiB
Markdown
# Current-line command
|
|
|
|
Cthulhu+Shift+Up reads the entire current line. Two presses within 500 ms spell
|
|
it; three use phonetics. Both desktop and laptop layouts use the same binding.
|
|
It follows NVDA's `script_reportCurrentLine` in `source/globalCommands.py`:
|
|
native caret outside browse mode, browse cursor inside it. It does not replay
|
|
the previous utterance or use the flat-review position.
|
|
|
|
Automated checks:
|
|
|
|
```sh
|
|
go test ./internal/input ./internal/review ./internal/app -run 'Test(CurrentLine|CommandRuntimeRoutesFocusPresentationRequests|ReviewMultiPressSequences)' -count=1
|
|
python3 tests/native_test_session.py env CTHULHU_NATIVE_CURRENT_LINE=1 go test ./internal/atspi -run '^TestNativeCurrentLine$' -count=1 -v
|
|
```
|
|
|
|
The private GTK fixture checks Unicode, a caret in the middle of a line, the
|
|
end of text, empty controls, blank lines, a trailing newline, password exclusion,
|
|
non-text control labels and rejection of stale focus. It verifies native caret
|
|
offsets after reading. Worker tests check whole browse lines and multiple inline
|
|
fragments, preserving the browse position. Existing flat-review and Say All tests
|
|
cover the shared line-reading and multi-press helpers.
|
|
|
|
Live acceptance after a normal rebuild and reload:
|
|
|
|
1. In a native multiline editor, enter `First line`, `Second café`, an empty line
|
|
and `Last line`. Put the caret in the middle of the second line. Press
|
|
Cthulhu+Shift+Up: expect the whole second line. Press Left afterward to verify
|
|
that the caret did not move. Check the blank line and the end of the last line.
|
|
2. Double and triple press to check spelling and phonetics. Pause longer than
|
|
500 ms and verify the next press reads normally. Check both keyboard layouts.
|
|
3. Move flat review to a different line. The new command should still read the
|
|
application caret line; Numpad 8 or Cthulhu+I should retain the review position.
|
|
4. In a browser, move into the middle of a line using browse arrows. Check the
|
|
whole line, including inline text fragments, and verify the next arrow
|
|
continues from the previous position. In a focused editable field, check the
|
|
native caret instead. Try another tab or window while a report is pending.
|
|
5. Check a FastSMRW table cell and a button. Check that password contents remain
|
|
silent and unavailable text gives explicit failure feedback. Cthulhu+Up must
|
|
still increase the selected speech setting. Check Say All and Numpad 8's
|
|
spelling behavior for regressions.
|
|
|
|
These automated checks do not establish audible output, physical key routing or
|
|
Braille behavior. The native implementation uses AT-SPI; Wine Access does not
|
|
currently expose this focused-line operation.
|