Drew McLellan killing it on Hacker NewsThinking about users with JavaScript disabled is unhelpful. Sure, some of those exist, but they’ve largely opted into that.
It’s more helpful to think about designing a site to work robustly for the situations in which JavaScript doesn’t successfully run. There could be reasons from aggressive firewalls blocking scripts, to slow or broken network connections, where the user might not get your JavaScript along with the page.
Many browsers halt all JavaScript execution on a script error. All it takes is a badly coded third-party ad on your page, or a typo in your own code to stop all JavaScript on the page from running.
Is it right that your page or app should completely stop functioning at that point? The web is a brittle platform. Things break all the time, but our technology stack of HTML, CSS and JavaScript can be exceptionally robust when used in the right way.
Build your site with HTML. Make it look much better with CSS. Make it work much better with JavaScript. Be prepared that CSS or JavaScript may not load at any point, with the reassurance that plain old HTML has got your back.
Sure, it takes a bit longer. Doing a good job always does.

