Lesson · Beginner
Progressive enhancement
Start with a working HTML experience, then add CSS and JavaScript enhancements without making basic access depend on them.
- Author
- Editorial team
- Reviewer
- Publication review pending
- Review tier
- 180-day
Start from the outcome
A link should navigate before JavaScript adds transitions. A form should describe a real submission before JavaScript adds inline feedback. Native elements should provide their built-in behavior whenever it fits.
<details>
<summary>What does the workshop cost?</summary>
<p>The introductory workshop is free.</p>
</details>
This disclosure works without a script. JavaScript is justified when the required interaction is not already available or when it improves feedback without removing the baseline.
Failure is a design state
Test with scripts blocked, slow, and throwing an error. Critical text and navigation should remain available. Label features that genuinely require JavaScript and provide a useful fallback.
Exercise
Choose a scripted component on a page. Write down the user’s goal, disable the script, and decide whether native HTML can preserve more of that goal.