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.
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.
I think it's a well known fact that ~10% of people have JavaScript turned off, so it's important to take that into account. If you feel you can safely ignore up to 10% of your audience, then blowing it off is fine.
Many of the text oriented browsers like Lynx that are used by people with braille terminals do not support JavaScript. It would be very rude to exclude these people from having access to sites.
Learn more about Web Accessibility Initiative.
Edit: Do not confuse the text browser Lynx with the graphical browser Links
Phones would be a primary one that I can think of off the top of my head. A lot of mobile devices just aren't very good at working through a javascript heavy site. And considering that mobile devices are quickly becoming one to the top internet access points you might want to reconsider your position.. ;)
This is more a personal pet peeve but...
I really don't like it when webpages load additional pages using AJAX calls and don't provide any method for opening the window in another tab. For example, on gmail, if you want to open up your drafts folder in a new window, you can right click on it and hit open in new window. No problem there.
On the other hand, if you want to open the contacts window, there is no non-javascript method of doing that. Therefore, you aren't able to right click and choose open in new window. The option doesn't exist!
Wow... I guess I'll be the first one to say it but... "To hell with all the people who disable JavaScript." If your site requires JavaScript to run, forget all those people that have it turned off. Seriously. If your site really is good enough to worry about losing a substantial audience, it's probably good enough for people to turn on their JavaScript.
Case in point, go to Facebook, YouTube, Google Docs, Google Maps, or Digg (heck, try to do some of the more cool stuff with SO) with JS turned off and see what you can do (not a whole lot).
The web browser is turning into more of a cloud-based operating system than a portal to "web sites". There are just so many compelling reasons to allow JavaScript to run and, IMO, so few reasons not to. To me, turning off JS is akin to, like, enabling UAC in Windows Vista. Yeah... it's there to help prevent you from making mistakes but having it on is sooooo annoying (but the reverse logic... :-).
So, anyways... I might get a lot of flack for this answer but I feel that my reasons are sound and backed up by a lot of incredibly successful web sites and web applications.
Just make sure that pages you want indexed by Google (and most other spiders) are able to be accessed without JavaScript on.
The simple fact of the matter is that forcing the use of JavaScript is limiting your audience. Some day, someone is going to try to run your site without JavaScript. If they can't do it, they'll either turn it on or get upset and leave. If they leave, they may very well never come back.
Think outside of the PC... lots of mobile phones have browsers that don't support javascript. If you want your site visible to them, then it might pay to think about how the non-javascript experience would be to those clients.
I disable and reenable JavaScript several times a day depending on which site I'm about to visit. For example, news sites that like popups and resizing my window, stay still wih me.
It doesn't take much for an ordinary user to learn that these things are done by something mystical called "JavaScript" and where to turn it off in browser.
Disabling all scripts by default, enabling them only for the sites they need, is at least recommended practice for any internet user. I would even go so far to say that it is reckless and careless not to. There are some nice plugins to allow scripts selectively for chosen sites.
This means that you have to assume that first time visitors to your site will not allow any scripts in their browsers. Your site should thus be able to present a useful interface to gather information what it is about, without requiring the user to allow scripts.
In my opinion, JavaScript should only be used to provide additional functionality that goes beyond the simple display of information.
My behaviour is like this: when I stumble upon a site that just displays "You need to enable JavaScript", I instantly reevaluate my interest that led me there. In some cases, I will just close the tab.
Worth worrying about a small percentage of people, or striving towards best practices? Graceful failure is something web developers should shoot for, regardless of the user base affected. John Resig's talk at Yahoo "The DOM is Messy" makes a good case for accommodating users of all browsers and configurations.
There is no definite Yes or No answer; it all depends on the website and how you use JavaScript.
Basically, if your site is to be indexed by Google (or any other search engine) then you'll want the content of the page to be just plain HTML so anyone will easily be able to read it; the same goes for making links regular hyperlinks and not some "window.navigate" script so they can be followed appropriately. However, if your "website" is actually a more complicated web application, then you may be able to provide a much better experience for the user if you required JavaScript support; also in this case you may want to create a "mobile" version to be used by mobile devices that don't support JavaScript if that would be an issue.
Most times, it is ok to require JavaScript support, but you still want to keep in mind the percentage of your users (and potential users) that may have JavaScript disabled or not have JavaScript support altogether.
Also, for example, StackOverflow.com uses JavaScript for things you do when logged in, but doesn't require JavaScript support in order to just view individual pages, or in hyperlinks to other pages.
Most users are not techinical, and thus they dont know/care what javascript is, so if it is turned on by default,then that is what they use. So, if they see your site, and it does not work, they are not gonna come back.
The usual reasons are:
The general rule is to provide enhanced functionality but degrade gracefully for those that cannot use the enhanced feature set. That means all navigation should be accessible without scripting, as well as all content for search engine parsing.
Think of SO. Questions and answers are processed server side and sent to the browser. Until recently comments were retrieved on demand through javascript to a web service call. That means that no matter how great a comment was, it is not going to be parsed by a search engine.
Think mobile phones, not whether people turn JS on or off. There are millions of people who view the web on their phones (not exclusively of course). That alone is a reason to cater for non-JS users.
Older than IE6 ? A few percentage. Older than Firefox 2? About the same.
You should always anticipate people with Javascript turned off and accommodate those who have it turned on.
For me it looks more like a decision that product manager makes - it's up to PM to decide how product looks like and what is it target audience. As developer all I need is requirement "should work in every browser" or "should work in most of browsers". That should not come from web developer, unless he decided what your product should look like which makes him PM. And it's not up to dev to argue about it.
Corporation that uses your SaaS and pays for it is one thing - on one project we explicitly said that only IE 6-7 is supported and customers were ok with that. Web site that may be visited on mobile browser is different story. But on mobile browser it may be not enough just to work without JS, you may need to simplify your page layout and reduce graphics usage as well. If you really need mobile users, you may consider making two versions of web site, fully functional JS-enabled desktop, and simplified, reduced version for mobile users.
Of course you should never rely security on client side JS.
Usually I prefer to deliver most of functionality without JS. For example readonly access to SO does not really need JS. And it's not that hard for user to enable JS if he really wants to post question. Posting question without JS is also not that hard, just forget about auto loading of similar questions.
Certain things can be done both in JS and server side, and it's still often a product feature rather than technical decision which way to use. For example voting in SO could be done without JS but that would involve page reloading - more frustration for user and more traffic.
I generally don't accomodate people with javascript off, but I am sure to let them know that because they have it turned off, certain features will be unavailable to them.
I think its unacceptable to 'break' your website if there is no javascript, but its acceptable, imo, to have a minimum standard of what is required to use your website.
For my websites this works...your audience may have different needs.