<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=Progressive_Enhancement_and_Graceful_Degradation</id>
	<title>Progressive Enhancement and Graceful Degradation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=Progressive_Enhancement_and_Graceful_Degradation"/>
	<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;action=history"/>
	<updated>2026-07-11T15:45:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=294&amp;oldid=prev</id>
		<title>Dex at 11:12, 14 March 2026</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=294&amp;oldid=prev"/>
		<updated>2026-03-14T11:12:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:12, 14 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Progressive Enhancement, Graceful Degradation, and Hybrid Rendering =&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Summary:&#039;&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Progressive Enhancement and Graceful Degradation are complementary design philosophies for building resilient, accessible, and long‑lived systems. When combined with Server‑Side Rendering (SSR) and selective Client‑Side Rendering (CSR), they enable rich experiences without excluding users, devices, or environments that lack modern client‑side capabilities.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Progressive Enhancement and Graceful Degradation are complementary design philosophies for building resilient, accessible, and long‑lived systems. When combined with Server‑Side Rendering (SSR) and selective Client‑Side Rendering (CSR), they enable rich experiences without excluding users, devices, or environments that lack modern client‑side capabilities.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-279:rev-294:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=279&amp;oldid=prev</id>
		<title>Dex at 15:30, 13 March 2026</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=279&amp;oldid=prev"/>
		<updated>2026-03-13T15:30:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;amp;diff=279&amp;amp;oldid=277&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=277&amp;oldid=prev</id>
		<title>Dex: Created page with &quot;= Progressive Enhancement and Graceful Degradation =  &#039;&#039;&#039;Summary:&#039;&#039;&#039; Progressive Enhancement and Graceful Degradation are two complementary design philosophies used to build resilient, accessible, and future‑proof systems. They describe how a system behaves when features, capabilities, or assumptions are missing — whether by design, constraint, or failure.  This article explains both approaches, where they came from, how they differ, and how they are applied in real...&quot;</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Progressive_Enhancement_and_Graceful_Degradation&amp;diff=277&amp;oldid=prev"/>
		<updated>2026-03-13T14:42:11Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Progressive Enhancement and Graceful Degradation =  &amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039; Progressive Enhancement and Graceful Degradation are two complementary design philosophies used to build resilient, accessible, and future‑proof systems. They describe how a system behaves when features, capabilities, or assumptions are missing — whether by design, constraint, or failure.  This article explains both approaches, where they came from, how they differ, and how they are applied in real...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Progressive Enhancement and Graceful Degradation =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Progressive Enhancement and Graceful Degradation are two complementary design philosophies used to build resilient, accessible, and future‑proof systems. They describe how a system behaves when features, capabilities, or assumptions are missing — whether by design, constraint, or failure.&lt;br /&gt;
&lt;br /&gt;
This article explains both approaches, where they came from, how they differ, and how they are applied in real‑world web and system architecture today.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
&lt;br /&gt;
Technology rarely operates under ideal conditions.&lt;br /&gt;
&lt;br /&gt;
Users arrive with:&lt;br /&gt;
* older devices&lt;br /&gt;
* limited bandwidth&lt;br /&gt;
* assistive technologies&lt;br /&gt;
* restrictive corporate environments&lt;br /&gt;
* partially broken systems&lt;br /&gt;
&lt;br /&gt;
Meanwhile, platforms evolve:&lt;br /&gt;
* browsers gain new capabilities&lt;br /&gt;
* APIs change&lt;br /&gt;
* features are deprecated&lt;br /&gt;
* assumptions fail over time&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement and Graceful Degradation are responses to this reality. They are not trends, frameworks, or tools — they are ways of thinking about system design.&lt;br /&gt;
&lt;br /&gt;
== Historical Background ==&lt;br /&gt;
&lt;br /&gt;
=== Graceful Degradation (First) ===&lt;br /&gt;
&lt;br /&gt;
Graceful Degradation emerged earlier, during a time when:&lt;br /&gt;
* systems were designed for powerful desktops&lt;br /&gt;
* advanced features were assumed&lt;br /&gt;
* fallback was an afterthought&lt;br /&gt;
&lt;br /&gt;
The idea was simple:&lt;br /&gt;
* Build the full system first&lt;br /&gt;
* If something fails, it should fail *gracefully*&lt;br /&gt;
* Users should still get something usable&lt;br /&gt;
&lt;br /&gt;
This approach was common in early web applications, enterprise systems, and client‑server software.&lt;br /&gt;
&lt;br /&gt;
=== Progressive Enhancement (Later) ===&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement evolved as a corrective response.&lt;br /&gt;
&lt;br /&gt;
It recognised that:&lt;br /&gt;
* the “best” environment cannot be assumed&lt;br /&gt;
* accessibility is not optional&lt;br /&gt;
* the baseline experience matters most&lt;br /&gt;
&lt;br /&gt;
Instead of degrading from a high point, systems are built *upwards* from a solid core.&lt;br /&gt;
&lt;br /&gt;
== Core Concepts ==&lt;br /&gt;
&lt;br /&gt;
=== Graceful Degradation ===&lt;br /&gt;
&lt;br /&gt;
Graceful Degradation starts at the top.&lt;br /&gt;
&lt;br /&gt;
* Design the most advanced version of the system&lt;br /&gt;
* Assume modern features are available&lt;br /&gt;
* Add fallbacks when features are missing&lt;br /&gt;
&lt;br /&gt;
If something breaks:&lt;br /&gt;
* the system continues to function&lt;br /&gt;
* but with reduced capability or polish&lt;br /&gt;
&lt;br /&gt;
This approach answers the question:&lt;br /&gt;
“What happens when things go wrong?”&lt;br /&gt;
&lt;br /&gt;
=== Progressive Enhancement ===&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement starts at the bottom.&lt;br /&gt;
&lt;br /&gt;
* Build a core experience that always works&lt;br /&gt;
* Layer additional features on top&lt;br /&gt;
* Only enable enhancements when supported&lt;br /&gt;
&lt;br /&gt;
Nothing is assumed.&lt;br /&gt;
Every capability is *earned*, not expected.&lt;br /&gt;
&lt;br /&gt;
This approach answers the question:&lt;br /&gt;
“What is the minimum experience that must always succeed?”&lt;br /&gt;
&lt;br /&gt;
== A Simple Mental Model ==&lt;br /&gt;
&lt;br /&gt;
Think in layers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ Enhancements ]&lt;br /&gt;
[ Enhancements ]&lt;br /&gt;
[ Enhancements ]&lt;br /&gt;
----------------&lt;br /&gt;
[ Core Functionality ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The bottom layer must never fail&lt;br /&gt;
* Each layer above is optional&lt;br /&gt;
* Loss of a layer does not break the system&lt;br /&gt;
&lt;br /&gt;
This model applies equally to:&lt;br /&gt;
* HTML, CSS, and JavaScript&lt;br /&gt;
* APIs and service contracts&lt;br /&gt;
* UI widgets and components&lt;br /&gt;
* Infrastructure and networking&lt;br /&gt;
&lt;br /&gt;
== Practical Application (Web) ==&lt;br /&gt;
&lt;br /&gt;
=== Progressive Enhancement in Practice ===&lt;br /&gt;
&lt;br /&gt;
A progressively enhanced web page typically follows this order:&lt;br /&gt;
&lt;br /&gt;
1. **HTML first**&lt;br /&gt;
   * Content and meaning&lt;br /&gt;
   * Works in any browser&lt;br /&gt;
   * Readable by assistive technology&lt;br /&gt;
&lt;br /&gt;
2. **CSS next**&lt;br /&gt;
   * Layout and visual hierarchy&lt;br /&gt;
   * Media queries for capability, not device&lt;br /&gt;
   * Optional visual polish&lt;br /&gt;
&lt;br /&gt;
3. **JavaScript last**&lt;br /&gt;
   * Behaviour and interactivity&lt;br /&gt;
   * Feature‑detection, not browser detection&lt;br /&gt;
   * Failure does not block content&lt;br /&gt;
&lt;br /&gt;
If JavaScript fails entirely:&lt;br /&gt;
* the page still works&lt;br /&gt;
* the user still succeeds&lt;br /&gt;
&lt;br /&gt;
=== Graceful Degradation in Practice ===&lt;br /&gt;
&lt;br /&gt;
Graceful Degradation often looks like:&lt;br /&gt;
&lt;br /&gt;
* JavaScript‑heavy application&lt;br /&gt;
* Rich UI interactions&lt;br /&gt;
* Client‑side rendering&lt;br /&gt;
&lt;br /&gt;
With fallbacks such as:&lt;br /&gt;
* server‑side rendering&lt;br /&gt;
* static views&lt;br /&gt;
* simplified workflows&lt;br /&gt;
&lt;br /&gt;
The system remains usable — but only because extra effort was made to catch failures.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Considerations ==&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement naturally aligns with accessibility.&lt;br /&gt;
&lt;br /&gt;
Because:&lt;br /&gt;
* content exists without scripting&lt;br /&gt;
* interaction is layered, not assumed&lt;br /&gt;
* semantics are preserved&lt;br /&gt;
&lt;br /&gt;
Assistive technologies benefit automatically.&lt;br /&gt;
&lt;br /&gt;
Graceful Degradation can support accessibility — but only when explicitly designed to do so.&lt;br /&gt;
&lt;br /&gt;
== Common Pitfalls ==&lt;br /&gt;
&lt;br /&gt;
=== Mistaking Frameworks for Strategy ===&lt;br /&gt;
&lt;br /&gt;
Using a modern framework does not guarantee:&lt;br /&gt;
* progressive enhancement&lt;br /&gt;
* graceful degradation&lt;br /&gt;
* accessibility&lt;br /&gt;
&lt;br /&gt;
These are architectural decisions, not library features.&lt;br /&gt;
&lt;br /&gt;
=== Over‑Enhancement ===&lt;br /&gt;
&lt;br /&gt;
Adding enhancements that:&lt;br /&gt;
* obscure content&lt;br /&gt;
* replace native behaviour unnecessarily&lt;br /&gt;
* increase fragility&lt;br /&gt;
&lt;br /&gt;
Enhancement should improve experience — not become a dependency.&lt;br /&gt;
&lt;br /&gt;
=== False Baselines ===&lt;br /&gt;
&lt;br /&gt;
Assuming:&lt;br /&gt;
* “everyone has JavaScript”&lt;br /&gt;
* “everyone has broadband”&lt;br /&gt;
* “everyone has a modern browser”&lt;br /&gt;
&lt;br /&gt;
These assumptions fail more often than expected.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Architecture Considerations ==&lt;br /&gt;
&lt;br /&gt;
When designing systems with longevity in mind:&lt;br /&gt;
&lt;br /&gt;
* Prefer **capability detection** over version detection&lt;br /&gt;
* Treat enhancements as optional modules&lt;br /&gt;
* Ensure failure modes are visible and testable&lt;br /&gt;
* Design APIs with partial consumers in mind&lt;br /&gt;
* Avoid tight coupling between layers&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement is especially valuable in:&lt;br /&gt;
* public‑facing systems&lt;br /&gt;
* long‑lived platforms&lt;br /&gt;
* regulated environments&lt;br /&gt;
* accessibility‑critical applications&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting &amp;amp; Diagnostics ==&lt;br /&gt;
&lt;br /&gt;
When diagnosing failures, ask:&lt;br /&gt;
&lt;br /&gt;
* What is the *lowest* layer that still works?&lt;br /&gt;
* Which enhancement failed?&lt;br /&gt;
* Was failure anticipated or accidental?&lt;br /&gt;
* Is the fallback intentional or incidental?&lt;br /&gt;
&lt;br /&gt;
Well‑designed systems make these answers obvious.&lt;br /&gt;
&lt;br /&gt;
== Relationship Between the Two ==&lt;br /&gt;
&lt;br /&gt;
Progressive Enhancement and Graceful Degradation are not enemies.&lt;br /&gt;
&lt;br /&gt;
In practice:&lt;br /&gt;
* Progressive Enhancement defines how a system is built&lt;br /&gt;
* Graceful Degradation defines how it fails&lt;br /&gt;
&lt;br /&gt;
A mature system often uses both — deliberately.&lt;br /&gt;
&lt;br /&gt;
== Related Topics ==&lt;br /&gt;
&lt;br /&gt;
* [[Progressive Enhancement in Modern Web Architecture]]&lt;br /&gt;
* [[Accessibility‑First Design]]&lt;br /&gt;
* [[Feature Detection vs Browser Detection]]&lt;br /&gt;
* [[Resilient System Design]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* W3C – Web Accessibility Initiative&lt;br /&gt;
* MDN Web Docs – Progressive Enhancement&lt;br /&gt;
* RFCs relating to content negotiation and capability discovery&lt;/div&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
</feed>