views:

97

answers:

5

I am in the process of building a video sharing CMS that uses lots of jQuery and ajax for everything from rich UI effects to submitting and retrieving data to and from the database. When JavaScript is disabled it everything falls apart and 90% of the functionality doesn't work.

I am beginning to think its ok to not degrade gracefully for certain types of sites like this one which uses a flash player to stream the main content - the videos. So what would be the point of going to great lengths to enable dual support on everything else if the main content of the site can't be viewed. Even YouTube breaks with JS disabled.

I'm planning to release the CMS under open source license, so the question is:

For mass distribution (and for this type of site) is not degrading gracefully a good idea?

+2  A: 

As long as you make it clear to the users that they need JS enabled, it is ok for it to "fall apart" without JS. However, if you give no indication that it shouldn't work without JS, then people will get angry. Most people nowadays expect sites to require JS in some aspect of their functionality.

For something as complex as a CMS with videos, it is the users fault if they don't enable JS. They shouldn't expect something like that work without JS, and even if they do, it's probably not worth your time maintaining two versions of your site: JS and non-JS, especially for something that is open source.

SimpleCoder
+1 for "As long as you make it clear to the users that they need JS enabled, it is ok for it to "fall apart" without JS." For me, this **is** failing gracefully.
lonesomeday
+1  A: 

Seeing as your application relies on javascript for its entire purpose, it is impossible for you to degrade gracefully. As long as your site clearly tells the user to enable javascript to get all of your awesome functionality, and maybe some links as to how to do so in different browsers, you should be fine. :D

CrazyJugglerDrummer
A: 

If you're a perfectionist, there's nothing wrong in letting people w/o JS know what's going on, as opposed to just letting the website break. Here's a quick how-to: http://stackoverflow.com/questions/121203/how-to-detect-if-javascript-is-disabled .

Tudorizer
A: 

Graceful degradation doesn't mean "everything works fully in every browser", it means "if your browser can't handle something, you see something sensible instead of broken junk".

In your case, simply detecting that the site will not work and displaying a nice error page explaining what is required would be an acceptable form of graceful degradation.

Porculus
+1  A: 

You are essentially choosing an audience. It's not unlike deciding whether to support IE6. It's not right-vs-wrong, it's simply a question of what percentage of your audience you are willing to lose, in exchange for ease of development on your end.

That said, I find progressive enhancement (of which graceful degradation is an outcome) to be an efficient and safer way to develop. Do the HTML first, make it work, then add JS as sugar on top.

It's not likely that one of your users is not running Javascript. What is likely, speaking for my humble self, is that you will have some small JS error which kills everything. (JS tends to just stop on exceptions, you may have noticed.)

It's nice to know that, in the event of such an error, your users can still use the site. That's what graceful degradation is for, in my opinion.

Matt Sherman
What's more, the *small error that kills everything* might not even be your fault. There are all sorts of filtering proxies, bogus security software, and browser add-ons that might screw your page content around, potentially causing JS functionality to break.
bobince