Progressive Enhancement
A web development strategy that starts with a baseline of functional HTML content accessible to all browsers and devices, then layers on enhanced styling and interactivity for browsers that support them.
Progressive enhancement ensures that core content and functionality remain available even when CSS fails to load, JavaScript is disabled, or the user is on an older browser. The approach works in layers: semantic HTML provides the foundation, CSS adds presentation, and JavaScript adds interactivity. Each layer enhances the previous one but is not required for basic functionality.
This contrasts with 'graceful degradation,' which builds for modern browsers first and then attempts to provide fallbacks for older ones. Progressive enhancement tends to produce more robust and accessible websites.
Why It Matters for QA Teams
Not every visitor has a modern browser with fast JavaScript execution. Progressive enhancement guarantees that core content and navigation work for all users, and QA teams should test the baseline experience alongside the enhanced one.
Example
A contact form uses JavaScript to validate fields inline and submit via AJAX. With progressive enhancement, the form's HTML action attribute still points to a server-side handler, and native HTML5 validation attributes (required, type="email") provide fallback validation. QA tests the form with JavaScript disabled to verify it still submits correctly.