- What is it?
- Why we use it
- Common concerns
- Find out more:
What is it?
There is a subtle but important difference in this approach vs the outdated approach of "graceful degradation" (or fault-tolerance) which it can often be confused with. Graceful degradation suggests a feature-complete "full-fat" application is designed and built, and is expected to be delivered wholesale to each client. Developers then attempt to build into the system fail safes so that when a client is unable to use the whole application, it can still get some value out of it.
Why we use it
Progressive Enhancement fits perfectly with the Rule of Least Power.
In the web front-end stack — HTML, CSS, JS, and ARIA — if you can solve a problem with a simpler solution lower in the stack, you should. It’s less fragile, more foolproof, and just works.
By keeping the Rule of Least Power in mind you can create software that's fault tolerant by design - a key consideration for writing software for the web which will be downloaded and interpreted/executed in an incomprehensibly diverse plethora of devices and environments.
Unlike graceful degradation, this fault tolerance is built in from the start and so is much less likely to be skipped out in the interests of hitting a deadline (or because it's less spangly than the next feature X).
Developing software using progressive enhancement also encourages Lean thinking, by aligning development priorities with end-user priorities (people are likely here for your content, not for how pretty your buttons look). This is both very useful for prioritisation of features (and refinement of the fabled MVP) but also biases you towards delivery of software that can be tested early; so you can see if your core content and functionality is working before spending too much time on making it "cutting-edge".
Finally by starting with just the most basic layer of content and moving on from there, progressive enhancement encourages a lighter, more performant delivery of software. For someone on a slow network, or with a device which can't support the layers of sophistication you've built into your site, they'll appreciate being able to access the content and basic functionality you've provided even while the bells and whistles are downloaded/parsed/executed (or none of the above).
We enable progressive enhancement at every level of our products.
On the broadest level our browser support approach lets us offer Core versions of our products that work for all users, in all situations, and which are then enhanced when the browser is deemed advanced enough.
Why do we care about those crusty old browsers? I'm building a
✨Web App ✨, not a web page!
Find out more
- A List Apart: Understanding Progressive Enhancement October 07, 2008
- Progressive enhancement is a team sport
- Progressive enhancement is still important July 03, 2013
- Robustness and least power September 10th, 2018