Your red herring that Excel doesn’t require JavaScript to be enabled for it to work deliberately tries to avoid the actual point. The point is, if someone wishes to create a browser based interface to a web based spreadsheet application and wishes that interface to perform in a way that is familiar to someone who is used to a desktop based spreadsheet application, that interface must, of necessity, incorporate JavaScript.
John, what I think they are saying is, you can (and should) build any web applications as if the client only deals with HTML. This means lots of communication with the server, so that the back end scripting language (not Javascript which relies on the client, but Perl, PHP, Ruby, Java, Python, whatever is running on YOUR server) does all the work.
Then add a layer of JS sugar on top, like AJAX to reduce calls to the server. You can say, IF the client supports Javascript, then let Javascript take over some of the tasks the back-end language has to do… that way, if they Don’t have Javascript, it means the back end script has to do all the heavy lifting, but since many clients will run Javascript, Javascript will (for those people) be doing a lot of the work.
So, you don’t NEED Javascript but the main issue is, it’s a Bad Idea to rely on the client, unless of course you are building some internal application for some business/party to whom you can dictate that they have capability X.
Relying on the client to have application x, scripting x, image rendering x… is not generally a good idea with general web pages or general web applications because there are plenty of clients who don’t have those things.
Now if your website is called YouTube and your purpose for existing is to Play Flash Videos then, yeah, guess what they may demand of their visitors? However they still did it mostly ok: I can go to YouTube without Flash or Javascript and I can search for videos, read comments, log in… I’ve seen too many sites that required Javascript for simple things like reading comments, posting comments, clicking hyperlinks (way to go, let’s imitate HTML behaviour with a layer of scripting for the lawlz!), or logging in or even searching.
Of course, they goofed after Google got ahold of them: you now log in via Google and while I can log in, I can’t log out. " Let’s put an anchor with no href in there and disguise it as a submit" for the lawlz.
<a href="#" onclick="document.logoutForm.submit(); return false;">Sign Out</a>
In web design, this is considered Bad Coding. It does not degrade, it dies a horrid death. It’s Made of FAIL. What’s the point of even having return false? False what, it’s not like there’s actually an href in there anyway… oooh, they stopped a page refresh. Bleh.
Here’s another example of Javascript Done Wrong: http://perldoc.perl.org/
Unless he’s fixed it, you cannot use simple search form to search without Javascript.
Well, usually it’s a normal graphical browser with AT tacked on top.
The good news is, the newer versions of the popular readers are doing better at updating the virtual buffer, and better at letting the user know that the vb has been updated due to an action they’ve done (or due to anything imitating a refresh). It seems up to 70+% of screen reader users (from one webAIM survey which certainly only reaches a certain demographic) has JS on, but also have trouble with it.
The bad news is, AT is expensive and lots of people are still stuck with JAWS6 (which means they’re also stuck with IE6) or Windows-Eyes 5 or whatever. The free ones are more likely to be updated (NVDA, orca) but they don’t seem to be as popular as the commercial readers yet. So we must assume that screen reader users might also have JS on, that JS might not work very well with them, and realise things are even worse for us developers… or, that we just need to have a high level of code we consider “quality” meaning that it’s well written at every level for all sorts of UAs.
Some interesting links, not all are recent:
http://www.456bereastreet.com/archive/200612/you_cannot_rely_on_javascript_being_available_period/
http://northtemple.com/2008/10/07/javascript-and-screen-readers
http://webaim.org/projects/screenreadersurvey2/