Merge remote-tracking branch 'origin/testing' into testing
This commit is contained in:
commit
a29910d002
7 files changed
+304
-2
No files matched your search
@@ -0,0 +1,55 @@
|
||||
# Clickable disclosures
|
||||
|
||||
A successful accessible action can reveal options without a usable
|
||||
children-changed event. The Actions list must invalidate the same document
|
||||
ancestry as Enter activation. Both paths also invalidate the target snapshot:
|
||||
caret navigation deliberately tolerates stale child order on ticking pages,
|
||||
so child-order invalidation alone can leave the newly opened options skipped.
|
||||
The next move uses the existing bounded recapture, retaining live object
|
||||
identities and the saved browse position. Action ownership checks remain strict.
|
||||
|
||||
Text caret placement also reveals its native range. Explicitly scrolling the
|
||||
whole accessible object first can scroll the outer document while reading an
|
||||
inner popup and cause the page to dismiss that popup. Text targets now rely on
|
||||
native caret placement, as Python does; non-text stops retain component scrolling.
|
||||
|
||||
## Automated checks
|
||||
|
||||
```sh
|
||||
CTHULHU_BROWSER=/usr/bin/chromium CTHULHU_NATIVE_BROWSER_TESTS=actions,disclosure,reveal,positions,ticking,document python3 tests/native_browser.py
|
||||
```
|
||||
|
||||
The disclosure proof opens a generic scrollable popup through the label's
|
||||
ancestor action and through Enter. It reads characters and both options in
|
||||
both directions before closing it. The popup dismisses on blur or outer-document
|
||||
scrolling. Selection-change markers wait for two browser animation frames so
|
||||
queued scrolling and dismissal run before checking that the option remains
|
||||
available. Restoring unconditional component scrolling fails this check.
|
||||
|
||||
The completion marker is separate from the reader's focus anchor so it cannot
|
||||
accidentally force recapture and hide the earlier activation regression.
|
||||
Viewport intersection acknowledgements also verify that distant text and
|
||||
non-text images are revealed. The other proofs cover iframe actions, revealed
|
||||
headings, list-position metadata, continuously replaced text, and browser
|
||||
document commands. All use private Xorg and D-Bus.
|
||||
|
||||
The original public page was also checked in a private Chromium profile, with
|
||||
browser animation-frame acknowledgements between moves. Before the scroll fix,
|
||||
the next character after the first tag returned to the closed filter label.
|
||||
With the fix, character reading and moving to the next tag preserved the popup
|
||||
and its focused scroll container.
|
||||
|
||||
The separate `link-sounds` proof failed its initial native Tab-position check
|
||||
with pans `[0 0 0]` both with the original unconditional scrolling and with the
|
||||
fix. That baseline failure remains unresolved; it is not a passing check here.
|
||||
|
||||
## Live acceptance
|
||||
|
||||
With a rebuilt reader on the originally reported page, open each filter using
|
||||
Enter and the Actions list. Read its options with Down and Up, select an option,
|
||||
then reopen it and verify that it remains usable. Also check ordinary links,
|
||||
buttons, Tab/Shift+Tab, and reading through a continuously updating page.
|
||||
|
||||
The user's installed Brave session, physical input, audible speech, and physical
|
||||
Braille remain live acceptance checks. Human diff review and live testing
|
||||
precede submission.
|
||||
Reference in new issue
Block a user