When I have complained (to friends, colleagues, web designers, corporate honchos) about poor website design and badly broken sites, a common refrain I have heard in defense is “it’s impossible to test web sites against all combinations of browsers, platforms, operating systems, devices…”

That’s true on its face, but this is nothing new in either the computer industry or the world of consumer design writ large. Bad design is bad design, even if it executes perfectly. Moreover, there absolutely is one way to eliminate many of the variables when testing a web design.

all sites should be navigable without JavaScript enabled

I heard the tantrums of “web design professionals” worldwide as I wrote that. “Our site can’t run without JavaScript. It’s a vital tool of modern web design.” In the majority of cases, that statement is wrong. At worst, it represents a lazy and ill-informed approach to design, which should immediately call into question whether tantrum thrower should even be involved, in any way, in site design.

I’m not saying that the core function of a web site can or should always be done in HTML/CSS, but the bulk of content in most sites continues to be text and links, and when the web designer decides that they can implement this core browser functionality better than actual browsers, they almost always get it wrong. This is most commonly a problem with sites that are coded as a single-page app when they don’t need to be (and they usually don’t). Sure, they demo well, but when people bring their dirty little habits like keyboard navigation, printing, linking, and assistive technology to the party, the reliance on JavaScript breaks things. You’re making things harder for your visitors just to make things easier for your web team.

An interesting take on this is coming up in the form of JavaScript Naked Day (24-April-2024). See how well your company’s sites or your personal favorites do with JS disabled. If all you get is a “you must enable JavaScript to use this site,” ask yourself why.

Oh, and if you ask your web team to make the site non-JS friendly and they say something like “but… SECURITY!” then fire them immediately. With extreme prejudice.

—2p

Addendum 20240421@18:56: