Progressive Enhancement is non-negotiable.
Tags: javascript, progressive, enhancement, standards
Published: 2018-02-09 11:38:20

---
title: Progressive Enhancement is non-negotiable.
published: true
description: In the age of javascript frameworks, let's not forget the intended purpose of the Internet.
tags: javascript, progressive, enhancement, standards
cover_image: https://media3.giphy.com/media/M4I93Z81JIuvS/giphy.gif?cid=348844935a7d85f47545724f67a77ab7
---



I was drawn to the Internet back in 1997, when I got a proper (ISDN!) connection at my first office position in a large European company. These were the days of MS FrontPage. The websites I built were an horrendous bunch of code, mixture of bastardy html and some proprietary version of a prehistorical version of Javascript by Microsoft. 

The browser war was raging and Netscape was the clear leader. There was pretty much one screen standard : 1024x768 resolution replaced the legacy 800x600. It seemed huge! Screens were bulky analog monitors.  Of course, we used `<table>` and loads of 1px-square transparent gif files as spacers to make interfaces, conceived by print(!) designers. 

There was no other choice than code like a pyromaniac bastard.

![That was the Internet](https://thepracticaldev.s3.amazonaws.com/i/4vkx991cgq3t1xkqann2.jpg)

21 years later, this is 2018. We still build static websites (it was almost deemed old-fashioned a few years ago to _not have_ a dynamic website) but also SPA (Single Page Applications), Progressive Web Apps. Virtual Reality is becoming mainstream. Fridges automatically order tomorrows' bottle of milk from an online dairy store. Standards have arisen for html, css and javascript. It's never been easier to build something and put it online. 

Yet, turn off javascript and half of the internet breaks. Because of that "cool javascript framework" that allows pretty much anyone build things fast, without even understanding the underlying architecture, or the purpose of JS Frameworks : SPA, not presentational websites. 

AS often is the case, "Fast" for the developer means "bad" for the end-user. 

As developers, for the sake of keeping the universal access of the information we put online (and the very reason we exist), we need to re-claim the Progressive Enhancement methodology. Here are just a few reasons why:

## 1. It is good for the user
- Disabled people, for whom static rendering and full-page reloads are typically still more (not exclusively, but more, and more easily) accessible.
- Search engine spiders (it is being said the GoogleBot parse javascript, but how well exactly ? Google does not recommend js-only interfaces, so, that's that)

## 2. It is good for the developer
- It's not hard : the `html.js` trick enables writing CSS only applying to javascript-enabled contexts. Javascript framework ? Use the `<noscript>` tag, at the very least, so that everyone (including the GoogleBot) gets access to your content.  
- It's not expensive, on the contrary : you gain time because your code is more maintainable and easier to debug. Thank you miss [Separation of Concern](https://en.wikipedia.org/wiki/Separation_of_concerns#HTML,_CSS,_JavaScript).
- you have no idea what devices your code will run on in two years. **Build "future-proof" digital products, not sand castles, crushed by the next wave.**

## 3. This is why the Internet was built for.
	
[![](https://thepracticaldev.s3.amazonaws.com/i/qmq8jumktefp91v4yfu5.png)](https://thatsthespir.it/quote/view/188)


## 4. It takes but a few minutes to grasp.
Here is a presentation I did for my bad-ass junior developers at BeCode. Have a browse.

[![](https://thepracticaldev.s3.amazonaws.com/i/esfa2vgq8uebhv2j8f88.png)](https://app.ludus.one/8c042d9a-e404-4df5-b14e-48e3eb6e6014)

Stil not convinced ? Head over this [Reddit thread](https://www.reddit.com/r/webdev/comments/48z7jz/do_you_take_into_account_those_who_disable/).

I leave the final word to **Tiffany Tse** (Shopify) ([source](https://www.shopify.com/partners/blog/what-is-progressive-enhancement-and-why-should-you-care))

> Considering how quickly things change, and how many new devices there are every year, it’s imperative that we continue to build websites and applications that can scale, change, and employ new features as they become available. To do this, and continue to make sure that the web is accessible for all, we need to ensure progressive enhancement is at the heart of everything we do.