From 2b1c9a41097e72fc4db90eee32bc5c48b58c970c Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 27 Sep 2026 00:16:36 +0200 Subject: [PATCH] Preregister keyboard and navigation feedback investigation Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9 --- .../cycles/2026-09-27-navigation-focus.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 research/evolution/cycles/2026-09-27-navigation-focus.md diff --git a/research/evolution/cycles/2026-09-27-navigation-focus.md b/research/evolution/cycles/2026-09-27-navigation-focus.md new file mode 100644 index 0000000..6b43cb2 --- /dev/null +++ b/research/evolution/cycles/2026-09-27-navigation-focus.md @@ -0,0 +1,60 @@ +# LEARN-0012 — Keyboard continuation and navigation feedback + +Status: preregistered before implementation/execution. Codex author-model review. +2026-09-27 Europe/Berlin. Stream F; new comparison group F-navigation-focus-v1. +Affected CAND-0010 Progressive Enhancement and boundary of CAND-0016 Focus Return. +This differs from B-navigation-mechanism-v1; do not pool their learning rates. + +## Question, belief and disconfirmation + +Does a region-replacing enhanced route need an explicit continuation/feedback policy +beyond working native controls, especially if focus moves while a response is pending? +Prior: keyboard activation can work while replacement loses meaningful focus and +errors remain silent. Expected policy: direct navigation may focus a new heading; +failed requests retain current work and expose a status/recovery action. A delayed +response must not steal focus after the user moves to another surviving control. +Modal return-to-invoker is not automatically the right navigation policy. + +Compare raw pinned htmx 2.0.11 against an authored optional policy with identical +HTML/transport. Raw outcomes are observations, not assumed failures. Disconfirm the +proposed policy if it loses native operation, steals focus from a newer task, fails +to report failure, or breaks history. Check real DOM activeElement, title, URL, +visible feedback and live-region markup; no screen-reader announcement or WCAG +conformance claim from DOM evidence. Standards inform interpretation, not scoring +an entire application. No new pattern or promotion merely from passing checks. + +## Registered cases + +Chromium and Firefox; isolated contexts; one execution per condition. Preserve all +outcomes and any harness correction. No arbitrary sleeps or readiness-dependent fix. +Use Tab/Enter for navigation actions, not programmatic focus or mouse clicks. + +| ID | Condition | Obligation/observation | +| --- | --- | --- | +| K01 | JavaScript disabled; native keyboard link | Tab reaches link, Enter loads selected full document; inspect title | +| K02 | Raw versus managed enhanced keyboard link | URL/content agree; observe active element/title/status; managed policy focuses new heading and labels completion | +| K03 | Raw versus managed enhanced 503 | Old view/URL and invoker focus retained; managed status explains failure; keyboard native recovery works | +| K04 | Raw versus managed request held at server; user Tabs to persistent search | Release response only after focus moved; no focus theft; managed status reflects completion | +| K05 | Raw versus managed browser history return | Restore selection; managed policy supplies route title/heading continuation; no full reload required | +| K06 | Raw versus managed background region update while search has focus | Background update does not move focus or announce a route transition | + +K01 two browser cases, K02–K06 two variants × two browsers: 22 cases total. Raw rows +record which managed obligations they meet rather than treating a predicted weakness +as an assertion failure. Managed obligations must pass or be reported as unresolved. +No accessible-name/focus-ring audit, AT speech test, user study, native history focus +universality, overlapping navigation-request ordering, production recurrence or +network interruption claim. Single delayed response only. A held response is not a +model of every asynchronous failure. Live inference, if later required, uses llm-connect. + +## Effort and review boundary + +45 active agent-research minutes plus 10 execution minutes before scope review. +Monotonic session clock began after local orientation; subtract measured blocking +experiment/check subprocess time. Include design/implementation/analysis/recording; +no overlapping work. Checkpoint inspection during execution belongs to execution. +Final receipt refresh/commit/snapshot/sync overhead after analysis cutoff is excluded. +Tokens/cost unknown. Retain clock receipt, inputs, package/browser hashes and request +traces. Commit registration before implementation/execution. Write outcome separately, +append ledger entry with this protocol_ref, update affected profiles/report and take +an immutable snapshot after committing candidate changes. WP-0003 T01/T02 and WP-0006 +T03 retain residuals. One cycle in this new group cannot establish diminishing returns.