Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
3.7 KiB
| title | status | maturity | families | scales | admission | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Progressive Enhancement | draft | hypothesis |
|
|
research-candidate-only |
Progressive Enhancement
Context: essential reading/navigation or submission should work before optional scripts arrive. Problem: delayed or failed client execution can block a usable server-delivered interface. Resilience competes with interaction richness and the cost of maintaining equivalent behavior across paths.
Proposed solution: give the essential task a usable HTML/link/form contract first; add client behavior that preserves its meaning and authoritative validation. Define which controls are essential and what enhanced behavior adds. Test absent, late and partially failing scripts separately. Server-rendered text alone does not establish a functional no-script task.
For enhanced navigation, preserve route, history, loading/error feedback and focus semantics. For writes, avoid duplicate submission when falling back after an uncertain response: reconcile the original operation before resubmitting it. Keyboard operation, labels, status announcements and recovery focus need explicit verification in both paths. Native elements help but are not an accessibility proof.
Consequences: initial tasks depend on fewer client capabilities, while parity and failure recovery add design work. No-script support is not offline support. A client-only rich editor may deliberately require scripts; name that requirement instead of promising a fallback that cannot perform the task.
Evidence: navigation review N03–N05 locates htmx and SvelteKit mechanisms with specific link/form/action prerequisites. These are two documentation families, not two verified deployments of this complete contract. Full-pattern recurrence and decision benefit remain unknown. This develops an existing seed; hypothesis only, no canonical identity or admitted relations.
Proposed connections: URL-addressable State supports shared view selection; Mutation Outcome Tracking matters when an enhanced write becomes uncertain. Neither is a universal dependency. VC-03 explores a read-only core.
Prospective runtime corroboration — 2026-09-27
Native links and GET filtering remain usable with JavaScript disabled or htmx loading failed. An enhanced 503 keeps the old URL/view, and an explicitly provided native recovery link navigates successfully. This does not establish automatic fallback, late-script safety, accessible focus/announcements or offline availability. See NH01–NH06. One authored application with a real package, not independent deployed recurrence. Hypothesis retained.
Keyboard continuation and feedback — 2026-09-27
Navigation focus experiment NF01–NF06 distinguishes successful route continuation, failed navigation, history restoration and background updates. In the raw fixture, a replacement link retains focus but fragment navigation leaves the old title and failures produce no visible status. The authored policy updates title/status, selects a heading for direct continuation and preserves a surviving control when the user has moved focus during the request.
Choose a continuation policy for the task; do not universally focus a heading or return to the invoker. Check ownership when the response is applied, not only when it is requested. Failure feedback need not move focus. Same-ID restoration is not proof of semantic continuity. DOM/ARIA checks here do not establish spoken feedback; AT, delayed history and overlapping-request behavior remain unverified.