Progressive enhancement

Progressive enhancement is a development strategy. It starts with baseline functionality and increases the richness of the user experience with styling and interactive layers. It means the core purpose of a document can be met with the minimum dependencies needed. Developing documents progressively results in the best experience for the most users.


Recommendations

Implement the core purpose of every HTML document without requiring CSS or JavaScript to function.


Why it matters

Providing a baseline core experience, that depends on the minimum technology required, allows users to choose the software and devices that work best for them in a broad range of circumstances.

Equally, a robust site or application minimises dependencies. The minimum dependency for a web site should be an internet connection and the ability to parse HTML.

For this reason, ±«Óãtv HTML documents aim to achieve their core purpose without reliance on CSS or JavaScript.

If the primary content of a page is dynamic with additional dependencies, such as a video or game, then the core purpose could be to provide a context from which to launch that content. The core content in this scenario would be those elements that fulfil the core purpose of the document. This might include information on the technology dependency required and links to alternative content.

Whenever possible, use HTML to implement rudimentary features. CSS and JavaScript can, and should, then be used to enhance the user experience beyond the basic level. For example, a ‘LIVE’ page has a core purpose to provide the newest information about an event to the users. The core content includes the newest information at the time of a page request. The experience is enhanced when JavaScript automatically updates this content without a user having to take action.

Testing

If viewing a page with CSS and/or JavaScript disabled, aim for all content needed to fulfil the core purpose to be available and functional.