The Optional Chaining Operator, 'Modern' Browsers, and My Mom

These are the kind of stories that would deserve so much more space in education and practice of technologists:

The real-life impact of our technical decisions really hit home to me once again: my Mom had trouble volunteering and participating in her local community because somebody shipped the optional chaining operator in their production JavaScript.

Now, frankly the true issue is that Apple has locked down their OS so much that users cannot update to a newer browser engine (but are expected to, what, buy the new model?). But this is also a flaw in the website shipping JavaScript code where owning a slightly outdated device renders the entire service unusable.

This brings me back to this brilliant article from this summer:

Why your website should work without Javascript

I can't remember how many times I've had this discussion:

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?!

For some reason, the myth that users without JavaScript don't exist, refuses to die. So thank you to the author of this comprehensive collection of both statistics (1% of millions is still a lot of people!) and – more importantly – all the other reasons that may, even temporarily, turn web users into "users with no JavaScript":

  • Errors in the JavaScript
  • Incompatible versions
  • A disruptive browser extension
  • Network or transmission errors, incl. poor mobile connections
  • Browsers throttling script downloads
  • Unavailable CDNs
  • Firewalls or local policies
  • Injected code by operators or others

And on top of that, the motivations people may have to turn it off themselves, such as a11y, security, privacy, cost, bandwidth, CPU, battery, or simply preference.

So many reasons why users without JavaScript are still users that should be considered!

2022

The story told by Jim Nielsen is a prime example of a "user who does not have JavaScript" (because of a technical issue with the JS code). Q.E.D.

It is fine to use whatever latest techniques there are, but websites are built for an extremely heterogeneous audience. Progressive enhancement solves any issues like this; but this needs to be in the DNA of everything we do.

2022