Glossary · Beginner

Progressive enhancement model

Progressive enhancement starts with a useful resilient baseline, then adds presentation and behavior without making access depend on every enhancement.

Published
Last checked

Definition

Progressive enhancement is an implementation strategy: deliver the core content and task through broadly supported foundations, then layer CSS, JavaScript, and newer capabilities where they improve the experience. Failure of one layer should not turn a truthful page into an empty or misleading one.

Baseline

The baseline depends on the task. A content page may need readable HTML and crawlable links. A form may need a real action, server validation, and an honest response. An advanced editor may require scripting, but its landing page and failure state can still explain that requirement rather than rendering blank.

Enhancement

Enhancements can add inline validation, disclosure, filtering, clipboard access, or asynchronous updates. They should preserve native semantics and the authoritative server boundary. Feature detection is stronger than assumptions based on browser names, and error handling must restore a usable state.

Review question

What remains when scripts are blocked, delayed, or fail after partial startup? Disable resources, throttle the network, deny permissions, and force the API to reject the request. Confirm content, navigation, form facts, and recovery stay available. The goal is not identical presentation without JavaScript; it is a coherent baseline and honest failure instead of silent disappearance.

Document which capability each enhancement requires and how failure is shown. This keeps the baseline deliberate as features grow. It also makes testing specific: block one dependency, complete the remaining task, and verify the interface never claims an operation succeeded when it did not.