Sync with testing.
This commit is contained in:
commit
f2a35a9305
14 files changed
+502
-6
No files matched your search
@@ -55,6 +55,52 @@ go test ./internal/atspi ./internal/presentation ./internal/app -count=1
|
||||
CTHULHU_NATIVE_BROWSER_TESTS=menu /usr/bin/python3 tests/native_browser.py
|
||||
```
|
||||
|
||||
## Editable combos with read-only editors
|
||||
|
||||
Some Qt applications make a combo editable, then make its internal line edit
|
||||
read-only. Qt can expose that child with both EDITABLE and READ_ONLY states.
|
||||
Closed Up/Down navigation sends child caret events followed by a name/value
|
||||
event from the combo. A caret event can arrive without a new focus event.
|
||||
|
||||
On Slint with Qt/PySide6 6.9.3 and AT-SPI 2.58.1, querying the word at that
|
||||
child's caret reproduced an 800 ms timeout, followed by stale list-item
|
||||
queries and loss of further accessibility events. Cthulhu identifies these
|
||||
children using READ_ONLY plus a direct combo parent, copies that parent's
|
||||
identity into each caret snapshot, and omits the unused word query. It keeps
|
||||
native focus on the combo and lets its name/value event present the selection.
|
||||
This does not depend on the last caret/focus event or on a coalescing delay.
|
||||
Writable combo editors and standalone read-only text fields retain word capture.
|
||||
|
||||
The app event loop suppresses a child caret only when its copied combo identity
|
||||
matches the owned focus. Normal foreground checks still apply. Popup selection
|
||||
followed by focus is presented once, and deselection of the previous managed
|
||||
item does not replace the current item. Deselection of the current focused
|
||||
item remains audible.
|
||||
|
||||
Run the isolated regression with:
|
||||
|
||||
```sh
|
||||
python3 tests/native_toby_combo.py
|
||||
```
|
||||
|
||||
This requires PySide6, Xvfb, xdotool and the native Go build dependencies. It
|
||||
explicitly uses a 24-bit screen; Slint's 8-bit Xvfb default can crash Qt's text
|
||||
cursor painter before accessibility checks complete. Fixture diagnostics are
|
||||
saved in the printed `/tmp/cthulhu-combo-qt-*.log` path. The test
|
||||
checks consecutive closed arrows, Home/End, popup Return and Escape,
|
||||
Tab/Shift+Tab after each close, and word capture in writable fields, standalone
|
||||
read-only fields and writable combo editors. It waits for each provider event
|
||||
instead of filling the adapter queue with an unobserved key sequence. Snapshot
|
||||
timings are reported for diagnosis, without a machine-speed pass threshold.
|
||||
|
||||
For live acceptance, repeat those keys in Toby Doom Launcher for both IWAD and
|
||||
game choices. Confirm each new value is spoken once, navigation continues after
|
||||
several changes, and Tab/Shift+Tab still reaches narration and buttons. In an
|
||||
ordinary text field and writable combo, check typing and Ctrl+Left/Right word
|
||||
reading. Switch away with a popup open and confirm background events do not
|
||||
interrupt the new foreground application. Check a physical Braille display when
|
||||
available; private event tests do not establish audible or physical output.
|
||||
|
||||
## Providers which omit checkability
|
||||
|
||||
The tested Mumble 1.5.939 / Qt 5 installation exports Mute Self and Deafen Self
|
||||
|
||||
Reference in new issue
Block a user