At 6/30/2009 01:41 AM, Mathew Robertson wrote:
> I like to think that this is where web
> development should begin, with JavaScript added to enhance, not to
> provide core functionality.

Why?

Most modern accessibility aids (eg: font increase, JAWS, etc) use an existing browser, which can handle javascript. Google processes javascript and RDF tags.

I've only ever heard a single argument as to why javascript-disabled should apply as a baseline for websites, specifically: if some percentage has JS disabled, you would be losing those visitors -> which of course can be measured.

Is there any other strong aruguments for making pages available, without javascript enabled?


One example of why support for non-JS UAs is a good idea is form validation. Assuming that all requesting user agents are running JavaScript and therefore will be forced to submit a valid form is like barring the front door of the bank but leaving the back door wide open. Since you need server-side validation for fundamental security, build that first, then add client-side validation to speed things up for users running JavaScript.

Read the rationales & arguments for progressive enhancement & graceful degradation. Rather than creating pages that depend on specialty technologies that don't have universal coverage, and then back-filling (when & if there's time!) to support Those Other user agents, the PE approach is to build sites that work in all user agents and then add enhancements to enrich the experience of visitors using special features. That way you don't have to try to calculate how many people you're shutting out and whether you can live with that on your conscience and on your bottom line.

User agents that don't support JavaScript include search engines, many new mobile devices, browsers whose users have turned off JavaScript, and browsers with JS enabled but situated behind corporate firewalls that strip scripts out of incoming pages. Can you really count them? Will you really do so? If you do, what conclusions will you draw from the numbers? What percentage of visitors (human and otherwise) to a site do you consider expendable? What kind of online business model includes the deliberate alienation of some percentage of prospective visitors or customers?

The attitude that we should shut out minority visitors is born from the assumption that it's expensive to cater to them, which of course it is if you try to back-pedal for them in the final stages of development instead of including them from the beginning. It's always more expensive to retrofit than to incorporate something into the original design. It amazes me that, decades after we've raised our consciousnesses around architectural accessibility and now commonly see ramps and Braille elevator controls and wheelchair-accessible bathroom stalls, we're grousing about minority support in website design where there aren't even any real materials used to build them. The main effort is one of shifting one's internal paradigm. That might not be easy, but it should be welcome exercise for thinking people.

This discussion is about accessibility to the extent that some assistive user agents are not JavaScript-enabled and even among those that are a huge number of JavaScript user interfaces require a lot of fine motor control on the mouse. At the same time, a) accessibility isn't just for disabled people, it's for everyone (just ask Jakob Nielsen), and b) this isn't all about accessibility, it's also about parseability by search engines and other software.

Google themselves recommend, "Use a text browser such as Lynx to examine your site, because most search engine spiders see your site much as Lynx would. If fancy features such as JavaScript, cookies, session IDs, frames, DHTML, or Flash keep you from seeing all of your site in a text browser, then search engine spiders may have trouble crawling your site."
- from Google.com > Webmaster guidelines > Technical guidelines
http://google.com/support/webmasters/bin/answer.py?answer=35769#2

Unlike most search engines that don't interpret JavaScript at all, Google attempts to process inline JavaScript embedded in the HTML but not external .js files. This means that if you want to build a site that depends on JavaScript for core functionality and content and have it be indexable by Google, you cannot separate the content & behavior development layers. Even if I were motivated to hide hyperlinks from humans not using JavaScript and from search engines other than Google, I would consider the prospect of writing inline code too expensive, inefficient, non-modular, unreusable, and altogether distasteful to be worth the effort. Why would anyone knowingly go there?

If you don't supply identical content to JavaScript-enabled and -disabled user agents, Google will consider that cloaking -- directing different content to search engines than to human users -- which can get a site banned from Google. If you're going to supply the same content, it makes obvious sense to produce pages with all the content and then use JavaScript to selectively hide parts through DOM or CSS manipulation as part of the user interface, for example to implement tab controls. That's progressive enhancement.

Hyperlinks that are simply hashes because their sole purpose is to trigger Ajax operations aren't registered by search engines as links to separate content, so that's shooting yourself in the foot SEOwise. Better to create real hyperlinks to real pages (or real page-reloads) with the different content, and then override the links with the Ajax logic. That's progressive enhancement.

I'll be very interested to read other people's contributions to this topic.


PS. Gut-feel tells me that non-JS should work, so thats how I prefer to code.

Smart gut!

Regards,

Paul
__________________________

Paul Novitski
Juniper Webcraft Ltd.
http://juniperwebcraft.com


*******************************************************************
List Guidelines: http://webstandardsgroup.org/mail/guidelines.cfm
Unsubscribe: http://webstandardsgroup.org/join/unsubscribe.cfm
Help: [email protected]
*******************************************************************

Reply via email to