frontend-patterns/research/candidates/ProgressiveEnhancement.md
tegwick d32774da51 Measure navigation history and cache corroboration cycle
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
2026-09-27 00:11:21 +02:00

2.8 KiB
Raw Blame History

title status maturity families scales admission
Progressive Enhancement draft hypothesis
quality
execution
affordance
L3
L6
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.