Dispelling the Myths of Javascript Degradation
I’ve been working on an application that makes heavy use of Ajax, so much so, that without Javascript enabled the application is useless. I’ve struggled with the issue of degradation and have decided not to do so. While I’ve read some great articles on the hows and whys, we should stop for a moment and ask ourselves who these users are we’re excluding? We need to dig a little deeper and question the who’s and whys.
According to thecounter.com, the number of users with Javascript disabled is up from previous months. What’s going on here? Statistics are merely measured assumptions, but at the moment, they’re all we have to go on.
Then there was the man who drowned crossing a stream with an average depth of six inches.”
Does your Mom know what Javascript is?
If your Mom’s like mine, she’ll have no clue what this Javascript is you speak of and she’ll certainly not know how to disable it. It’s true; you’ll find that most people who don’t know what Javascript is will not know how to disable it. This tells me those users who do have Javascript disabled can’t be the normal non-techie users like my dear Mom.
Who disables Javascript and why?
My guess is most of the time Javascript is disabled, it wasn’t actually disabled at all. People will rarely disable Javascript, and why would they, it renders most of the web useless. Javascript could be disabled for a number of reasons, but someone disabling it will likely be at the bottom of the list.
Those who choose to disable Javascript
If someone disables Javascript then you can bet they know what it is (obviously huh?). They could disable it for a number of reasons; security and annoyances are more than likely the top two contenders (Anyone still disable right clicks?).
If someone has Javascript disabled for security reasons, they probably have cookies disabled too. Does your application degrade for those who’ve disabled cookies? Particletree’s store doesn’t, Jeremy Keith’s theme system doesn’t work fully to name a couple.
Why are cookies and Javascript any different in this context, they are both a means of enhancement. Why do we accommodated for one and not the other? I don’t know the answer, perhaps one of you do.
Javascript is also the culprit behind a majority of internet annoyances. Some have went so far as to use it as a means to spread viruses. If I find myself visiting a site which could be questionable, or is known to have annoyances–I’ll disable Javascript. I’m betting there are a few more people who do this and this kind of behavior helps keep that 10% number at 10%. It skews the statistics higher than they actually might be.
Those who have no choice
Not everyone who has Javascript disabled has manually disabled it. They could possibly be using devices which have no support for Javascript or they’re working in a restricted environment. Unfortunately I couldn’t find any good resources to help me identify what these devices could be, so I’ll make some assumptions myself and throw out a list of potentials:
- Web TV devices
- Handhelds
- Lynx
- Corporate restrictions
- Screen Readers/Accessibility devices
Most of these are a secondary means of browsing the web (excluding the accessibility devices which are a requirement for those with disabilities). While your at work, you could be browsing in a restricted environment; Those using handhelds are probably not using them as there primary source for browsing the web.
Javascript isn’t the only problem that’ll surface under these conditions. Poor support for CSS and XHTML are also problems you’ll face. If your providing fallbacks for Javascript, are you providing fallbacks for these problems as well?
Is it really just a matter of ethics
I think ethics drives the decision to degrade more than business benefits. Acceptance from your peers, fear of being called out for not practicing what your preaching, or judgement passed on your talent as a web developer are all reasons some choose to degrade. There are also those of us who do it just because we can, or we choose to do so as a learning experience.
I recently blogged about Particletree and their Treehouse publication. Ryan published an article entitled “The Hows and Whys of Degradable Ajax” explaining the method they used to ensure all of their users would have a flawless experience.
While working on Particletree’s shopping cart system for our magazine, we decided that we wanted to create a flawless user experience for all users without having to sacrifice the added user interface benefits provided by Ajax goodness.
Treehouse is a publication for web developers and I believe 11 times out of 10 their target market would have Javascript support. I’m sure they we’re aware of this when they decided to go the extra mile. There was no added business benefit I can find to justify the reason for degrading. Does this mean it was ethics? Hopefully Ryan will elaborate on this question a bit.
Should you degrade
I’ll leave that answer up to you, but you should probably ask yourself a few questions first.
- Realistically, how many of your users will be attempting to use your application/website with Javascript disabled?
- Do the business benefits outweigh the cost in time, money and sanity?
- Is Javascript the life-blood of your application, and without it, it wouldn’t be the same application.
- Are you prepared to identify and support other problems that are likely to exists if a user has Javascript disabled?
Recapping the finer points
- Non-Technical users will not disable Javascript.
- If a user doesn’t have Javascript support, this probably isn’t the only thing you’ll need to accommodate for.
- According to thecounter.com, support for Javascript is down from previous months.
- Conditions where a user doesn’t have Javascript support are secondary methods for browsing the web.
- Statistics are skewed
- Ethics play a role in degradation
Related Reading
- JavaScript is not the devil’s plaything
- The Importance of Degrading Gracefully
- The Hows and Whys of Degradable Ajax
Update: Ryan has responded and there is also a discussion taking place at Particletree.
Update Again: Jeremy Keith has responded as well.
Sorry, comments are closed for this article.


Discussion
You touch on the real reason for degrading gracefully, but don’t address it adequately. Those who are disabled and require screen readers. There may be legal implications of excluding those users from your site. And just so you know, one of the better programmers I know is stone cold blind. Does all of his work through either a braile display or through a screen reader.
Hey Justin, I started to reply as a comment here, but my response got too long. I went ahead and answered some of your questions on our site to open up the discussion. Take a look
If Javascript is core to your application then I can see not wasting the effort to make it degrade. Certainly there are other reasons not to as well, but this article sounds a lot like you are justifying to yourself why not to make the effort. I’ve noticed every good web designer has their own set of principles based on some internal ethical sense:
The fact is, javascript degradation is just one more cherry to put on the perfect web design. No designer can really satisfy all these obsessions unless they revert to 1993 .edu-style design. That doesn’t mean you shouldn’t pick and choose some compromises in the interests of accessibility. If your site is inoperable without Javascript that is a decision you choose to make, and I will not fault you for it.
However, your reasoning is a bit flimsy. Making a site break for 10% of users is a real issue to be considered, anecdotal evidence as to why they really don’t matter notwithstanding. Although I see your point about ethics playing a roll in the (especially in the web design blogosphere), 10% is clearly grounds for a business decision. Even 1% is grounds for a business decision if your volume is high enough.
It doesn’t mean Javascript degradation needs not be pretty or that you should sacrifice your advanced functionality. I think making an application degradeable is mostly solved in the architecture phase to make sure that the core functionality is modular enough be accessed through the Javascript/AJAX interface or through a Server-side/GET/POST request.
Great article Justin, I have to say the main reason why I haven’t coverged to relying on AJAX yet is accessability issues. But as you mentioned, your mother and most of the general comsumeres won’t generally know whta Java-Script is and how to Disable it. Well, generally they don’t know that they ‘should’ upgrade their browser as well. So the lack of current upgrades may also hender various features on your project inoperable to them aswell. But, I defienlty agree with Gabe, having a project/site that is rendered useless without Java-Script is somewhat of a moral dilema. If only 10% of your visitors can use your site, thats quite a large majority. If you were charging for membership, an ecommerce site, or something of the sorth, that would be a major blow to the market. Heck even 5% is still alot of money for larger sites to lose by having inaccessability problems, in the corporate world this wouldn’t fly. But, heck they still use tables and HTML 3.01, so if its not one thing its another.
I’m not taking sides here, but you made some very valid points. After having read the Particletree response, they had good justification too. I guess it all comes down to preference, and what kind of deadline needs to be met. If it were me, and I was pressed for time, I would skip degredation. By the way, this is an awesome quote:
’’Treehouse is a publication for web developers and I believe 11 times out of 10 their target market would have Javascript support.’‘
Gabe, excellent points. You’re right, the article was dual purpose, and one was to explain the reasoning behind why I decided not to degrade. Effort does play a role in it because it has business implications.
I make the distinction between a site and an application and believe that websites and hosted applications (where applicable) should give serious thought to degradation. There are many reasons someone should degrade, but they are unique to each scenario and should be addressed fully, and not fueled by the notion that it’s just the right thing to do.
Mint is a perfect example of a successful application that doesn’t degrade.
Doug, I didn’t intend to downplay the fact that some users have disabilities. Government and Educational websites are two reasons where you could find yourself in legal trouble for not providing accommodations for disabled users. You have to evaluate situations like this though. If I we’re working on an educational website or one that you know you’ll be dealing with a lot of disabled users, it would be in your best interest to degrade.
Ryan, Thanks for taking the time to respond. I’ll hop on over :-).
I’ve never bothered to check, but I don’t think Flickr degrades either, does it? Tons of non-tech-savvy people are using Flickr, and degredation hasn’t (to my knowledge) been an issue / problem. They even use Flash. :)
Nathan, I didn’t think about Flickr at the time of writing this. Flickr is ‘read only’ if Javascript is disabled and a good example that your not betting the farm when you choose not to support Javascript with even a high potential of users who won’t be using Javascript. (Gmail anyone?)
I think this shows us that users (excluding those who have no choice) will do what’s required to use your service if it’s enticing enough.
Hi Justin.
Like Ryan, I was going to leave a quick comment here but it grew in the telling so I’ve posted it on the DOM Scripting blog:
http://domscripting.com/blog/display.php/25
There’s one other point I’d like to make. You say you consider screen-readers and assistive devices to be “secondary means” of browsing the Web and, from a technological standpoint, I’d certainly agree that most assistive technology is second-rate. But the people using the technology are not. That’s what’s missing any time somebody plays the numbers game in an attempt to justify exclusionary decisions. It’s not browsing devices that you are excluding, it’s human beings.
Right, that’s my min-rant over. :-)
By the way, on http://adactio.com the theme-switching works just fine without JavaScript. Did you test it and find otherwise?
Jeremy, thanks for taking the time to comment.
I should probably clarify that I didn’t in no way mean to say that people using screen readers and those who have disabilities are second rate (I don’t get that from reading what I posted.)
The follow up paragraph talking about secondary means of browsing the web was focused on handhelds and restricted environments. You’ll notice that I didn’t elaborate on screen readers and assistive devices because I simply don’t have the facts (that may be half the problem).
I don’t think it’s a fair point to make that I’m excluding human beings. With that point I can say the iPod excludes those who are deaf, movie theaters exclude those who are blind; I could keep going.
Fair point on the title of the article, I run through a few different ones and couldn’t decide on it.
In regards to your theme system, it works perfect without Javascript enabled, but if you disable cookies (a means of enhancement) it only partially works. No one has responded to this point as of yet.
Justin, I think the reason why nobody has responded about the cookie question is that it’s completely separate and unrelated to JavaScript. The issue of how to deal with people rejecting cookies has been around for years and is normally a server-side rather than a client-side issue.
I can see how you would equate cookies and JavaScript (and, for that matter, CSS and Flash) as being related because they are all aspects of the browsing environment that the user can choose to disable. But it muddies the waters a little when you are talking about one technology and then switch over to talking about a different technology.
So, the cookies question is a good one but it really deserves its own discussion, rather than linking it with a discussion on JavaScript, thereby confusing both issues somewhat (e.g. my interpretation of your remark as being that my theme switching didn’t work without JavaScript, whereas as in fact you were saying that it doesn’t work without cookies).
I agree in general, you can assume that clients have JS enabled. The one place where you’ll always want to handle clients without JS is when it’s a security risk to your site, e.g. don’t assume that your javascript form validation ran.
BTW It’s “degradation” not “degredation”.
Usually I disable JavaScript to see the sources of doreway pages. There are too many trash in search results last times.
cgzlypmxsqtfllllklfwgdcwdnzkrg
jfwacqjteffszqggrjjkvgcgtwpmtx
wow :) its very interesting point of view. Nice post. realy gj
thx :-)
wclxxmnrihnpfeqkhtomytmmjvrlze