Progressive enhancement
Progressive enhancement is a principle within Web development that ensures that Web sites and Web applications that use modern technologies will still work in browsers that do not support these features.
In progressive enhancement, a basic version of a Web site or Web application is first developed that fully works for visitors with outdated browsers, feature limitations, who browse while having certain techniques such as JavaScript disabled, different devices and screen resolutions, or with a slow connection. Additional functionality that enriches the user experience and operation of the user interface is added as a layer on top of the basic version.
Information and basic functionality should be available in all browsers, and the amount of source code is kept limited and semantic. Enhancement and enrichment of layout and operation is done with external style sheets and JavaScripts, in such a way that it cannot interfere with the proper functioning of the basic product.
Developing a basic version without bells and whistles, which is optionally enhanced, benefits the accessibility and usability of a website. Because this basic version is based on "plain" HTML, websites based on progressive enhancement also tend to be better optimized for search engines.
Difference with graceful degradation
With the principle of progressive enhancement, progressive enhancement differs from the concept of graceful degradation. With graceful degradation, the capabilities of the most recent browser versions prevail, resulting in websites and applications in older browsers working degraded and/or looking less presentable.
Graceful degradation assumes that for a properly functioning Web site, users should just update their software. Something that is not always possible. With progressive enhancement, a complete product for all users is precisely the starting point.
The emergence of progressive enhancement as a strategy began around 2003.
Example: the mobile web
Users with mobile devices such as smartphones may encounter limitations when using "regular" websites. These include smaller screens, slower Internet connections and the lack of a mouse pointer. Not so long ago, mobile visitors and users on the Web invariably had to settle for a greatly diminished user experience unless a separate mobile version of a visited Web site was offered.
Applying progressive enhancement to the design and writing of source and markup code when developing a Web site can create a single product that provides an equivalent experience for all visitors. Partly by applying the principles of responsive web design, the advantages and limitations of different hardware, software and connections can be accommodated within the same product.
Progressive web apps
Whereas for years the mobile user experience was a limited version of visiting websites on conventional computers and laptops, a change in this has become apparent in recent years. On the contrary, mobile browsers currently have a leading role in the development of the worldwide web. Not least by supporting specific functions of mobile hardware and software through APIs, including location tracking, push notifications and offline capabilities.
The rise of progressive web apps (PWA) means that a conventional website rendered in a web browser can increasingly offer the same functionality and experience as a native app. With the major advantages over regular mobile apps being that you can use them immediately without having to install them from an app store, that you develop one progressive web app that will theoretically work on any device (regardless of operating system) and that the apps are findable in search engines.