Do web sites really need to cater for browsers that don't have Javascript enabled? [closed]

Why do many professional web developers always insist on developing sites that accommodate for browsers that have Javascript disabled?

Besides tech heads and developers, most 'normal' users don't even know what it is.


Who uses browsers older than Firefox 2 or IE6?

Wrong question. It's not the age of the browser that's the problem. There are plenty of new browsers out there that don't support javascript or don't support it well, and they can be just as important as the latest safari or firefox.

Others have mentioned smartphones or lynx, but the main one in my book is Googlebot. That's a browser just like any other, and it won't run most of your javascript. Also, even if you have firefox you might use a plugin like NoScript. That's not the same thing as running with javascript disabled, but if you do things wrong you can really mess up for those users (ie, detect javascript state once at the start of a session or creation of an account, and then no longer serve javascript pages at al, even if they wanted to enable it for you). Finally, if you do any work for the US Goverment you are required by law to support certain accessibility standards that include working with javascript disabled.


A few months ago I tested the user population on a mainstream million-member site I was working on, and around 10% of unique users did not have Javascript running.

Consider reversing the question: is it worth developing a site that only works for Ajax-capable users? Would you really ignore search bots, most mobiles, and a heap of other users?

Back to basics. First, create your site using bare-bones (X)HTML, on REST-like principles (at least to the extent of requiring POST requests for state changes). Simple semantic markup, and forget about CSS and Javascript.

Step one is to get that right, and have your entire site (or as much of it as makes sense) working nicely this way for search bots and Lynx-like user agents.

Then add a visual layer: CSS/graphics/media for visual polish, but don't significantly change your original (X)HTML markup; allow the original text-only site to stay intact and functioning. Keep your markup clean!

Third is to add a behavioural layer: Javascript (Ajax). Offer things that make the experience faster, smoother, nicer for users/browsers with Ajax-capable JS... but only those users. Users without Javascript are still welcome; and so are search bots, the visually impaired, many mobiles, etc.

This is called progressive enhancement in web design circles. Do it this way and your site works, in some reasonable form, for everyone.