Why your website should work without JavaScript. 
Tags: webdev, a11y, javascript, html
Published: 2021-03-17 23:27:03


Recently I started a site of [tools for boardgames players](https://missingdice.com/). Simple tools like dice and spinners.

I wanted the site to be as accessible as possible. So I challenged myself with some rules on how it would work.

One rule was that **every tool must work without javascript.**

I learned a lot by doing it, and started to write posts about building tools without `js`. But before I write any more I wanted to answer the question:

**Why in 2021 would you bother making a website without `js`?**

*While researching this post I found two really great sources of information. So, most of this is going to be stolen from [this article by Adam Silver](https://adamsilver.io/blog/javascript-isnt-always-available-and-its-not-the-users-fault/) and [this post from gov.uk.](https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/)*

But I'm going to go a little deeper into why some people **block** `js`.

The obvious answer to why you should build a website that doesn't need `js` is… because some people don't use `js`. But how many?!

---

## How many visitors don't use javascript?

The answer to this question is **roughly `1%`.**

There's not a lot of information on this but here's what I found:

- A 2010 study by *yahoo* suggests `1.3%` – [web.archive](http://web.archive.org/web/20131127063017/https://developer.yahoo.com/blogs/ydn/many-users-JavaScript-disabled-14121.html)
- A 2013 study by *gov.uk* suggests `1.1%` — [gov.uk](https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/)
- For *buzzfeed* in 2018 it was `1%` — [youtube](https://www.youtube.com/watch?v=L-XLKxIiSvU)

`1%` sounds like a lot! is it really possible 1 in 100 people block `javascript`? **well...no**

The `1%` from these studies is `1%` of visits where javascript has failed for **any reason**. 

According to `gov.uk` the number of people who actively block `js` (or use a really really old browser) is `0.2%` — 1 in 500.

Those `0.2%` have their reasons, but first let's look at the `0.8%` of visits where the `js` fails.

---

## Why does javascript fail?

There are lots of reasons your site's javascript might fail:

- **Your javascript is broken!** It happens.
- **A feature you're using doesn't work on an older browser.** e.g. `ES6` on an old version of `internet explorer`.
- **Inteference from a browser extension.** Some web-extensions alter your site's code - with negative effects.
- **Network Errors.** Sometimes things just break.
- **Mobile users losing signal** - *e.g. from being in a rural area, going through a tunnel, falling down a manhole, etc*
- **Some browsers block javsacript on slow connections.** — [Android does this](https://www.xda-developers.com/google-chrome-android-disable-javascript-2g-connections/)
- **CDN going down.** [in 2017 AWS went down for 3 hours](https://www.npr.org/sections/thetwo-way/2017/03/03/518322734/amazon-and-the-150-million-typo)
- **Corporate or local blocking or stripping of Javascript.** Sometimes organizations block javascript for security reasons.
- **ISPs accidentally blocking your CDN** — [Sky Broadband once blocked jQuery](https://www.theguardian.com/technology/2014/jan/28/sky-broadband-blocks-jquery-web-critical-plugin)
- **mobile networks altering your content** and breaking it — [T-mobile and Orange also broke jQuery!](https://bugs.jquery.com/ticket/10637)

There's probably other reasons too.

That accounts for about `0.8%` of visitors not using `Javascript`

But what about the `0.2%` who block `js`?

---

## Why do people block javascript?

Some people block javascript in their browser. Some people choose a browser that doesn't support javascript. There are a number of reasons why:

- Accessibility
- Security
- Privacy
- Cost
- Bandwidth
- CPU
- Battery
- are stuck with or prefer an very old or text-based browser
- they just like the web without javascript.

---

### Accessibility

Some people find it easier to navigate the web with javascript switched off. There's less distractions.

Others choose text-to-speech browsers that don't support `js`.

_Text-to-speech can work fine with javascript. For instance `voiceOver` on `MacOS` works within any browser._

---

### Security

Many people disable `js` for security reasons, both professional and personal. No javascript means no malicious javascript too.

**Who does this?**
- People who work with sensitive or valuable data. 
- Journalists and whistleblowers. [Edward Snowden recommends switching off js](https://www.computerworld.com/article/2475978/snowden-at-sxsw--we-need-better-encryption-to-save-us-from-the-surveillance-state.html)
- Cautious people who don't want to get their credit cards stolen. 

---

### Privacy 

Lots of people don't like corporations collecting their personal data. You might block ads, and tracking scripts.

Some people take that a step further and block all javascript. Then, if they trust a site, they'll allow it to run.

---

### Cost & Bandwidth

Blocking javascript can save a lot of money. 

Downloading `d3.js` (a popular graphing library) [costs `1 cent` in Canada. In Mauritania it costs `0.06%` of the average daily income.](https://whatdoesmysitecost.com/test/210315_Ai1V_d64dac022c060cc2ebfe8f3301b605dd#usdCost) 

That's may not seem like a lot. But `d3.js` is only `90kB` — and only one of many scripts someone may have to download to use a site.

Then javascript can request all kinds of data, images, video, and it adds up fast. Once you've visited a few sites you may find yourself over budget.

The same logic applies for people with limited bandwidth. 

[`dev.to` costs 24 cents to visit on mobile in canada!](https://whatdoesmysitecost.com/test/210317_XiBD_85e51d4bdb1e7cb5901b7fad12e7a196#pppCost)

---

### CPU and Battery

Some people switch off javascript to save CPU and Battery. 

Users of low-powered devices — or one that's doing more important tasks in the background — may want to take pressure off their CPU. 

People without easy access to a power supply may want to save battery.

---


### Out-dated Browsers & Text-based browsers

Very old browsers like `IE < 3`, `Netscape 1`, `Mosaic`, and others don't support javascript. Almost nobody uses these browsers anymore — but you can bet somebody is.

Some text-based browsers like `Lynx` don't support `js`. `Lynx` is a browser that runs in terminal applications. So someone browsing the web on a computer without a `GUI` may well be using it.

`Lynx` has been around since [1992](https://en.wikipedia.org/wiki/Lynx_%28web_browser%29) and is [still updated today.](https://lynx.invisible-island.net/current/CHANGES.html) So people are definitely using it.

---


### Some people just prefer the web without js.

Some people think the web is better browsed with javascript off. It's faster and reduces distractions. *See [I Turned Off JavaScript for a Whole Week and It Was Glorious - Wired 2015](https://www.wired.com/2015/11/i-turned-off-javascript-for-a-whole-week-and-it-was-glorious/)*

---


## Should you cater to `0.2%`?

Yes and no. Personally, I enjoy going out of my way to make things work. I find all this stuff fascinating. But making sure a site works for the `0.2%` of people who disable javascript isn't really the point.

---

### The Curb Cut Effect

An analogy that comes up often when talking about web accessibility is curb cuts. *Curb cuts are the small concrete ramps on the side of the road.*

Curb cuts we're added to sidewalks after a long campaign from disability rights activists. Their purpose was to give wheel-chair users the same freedoms non-disabled people enjoy.

Now that curb cuts are everywhere — everyone benefits from them. People with strollers, skateboarders, people delvering packages, and more.

The point? Making the world more accessible for one group of people benefits everyone. That's the **curb cut effect**.

[*Here's a great episode of 99% invisible about curb cuts.*](https://99percentinvisible.org/episode/curb-cuts/)

{% spotify spotify:episode:2DKkoQiEsac06MGiKY96P2 %}

Building sites that function well without javascript doesn't just benefit the `0.2%` of people who disable it.

It improves the `0.8%` of vists where javascript fails too.

Building everything you can without `js` will make your site:

- **faster**
- **smaller** – (most of the time)
- **more reliable**
- **more accessible**
- **have smoother animations**
- **easier to index by search engines**
- **less vulnerable to hacks**
- **easier to develop** – personal opinion

---

I'd prefer to write `js` all day — but finding `html` and `css` only solutions has made me a better developer.

It's forced me to find creative ways of solving problems — and to learn new `html` and `css` features.

Then when I do add javascript, it's ends up being a lot smaller and easier to manage.

---

### How to disable Javascript

If you're going to build sites without `js` you're going to need to test them. 

Probably the most popular way of disabling javascript is with the browser extension [`NoScript`](https://noscript.net/) — it's available on [Google Chrome](https://chrome.google.com/webstore/detail/noscript/doojmbjmlfjjnbmnoijecmcbfeoakpjm) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/noscript/) and elsewhere too.

As of writing this `noScript` has:

- `100,000+` users on Google Chrome
- `404,376` users on Firefox

That's at least half a million people who use that specific app. There are many more apps and other methods of disabling `js`.

---

### Anyway

Give browsing the web without `js` a try, or maybe even have a go at using `Lynx`. Let me know what you think.