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.