WebAIM - Web Accessibility In Mind

E-mail List Archives

RE: NOSCRIPT question

for

From: John Foliot - WATS.ca
Date: May 2, 2006 8:50AM


Andrew Kirkpatrick wrote:
> I'll make it easy. Don't use noscript.

I'll make it easier and contradict Andrew. Use NOSCRIPT, in accordance
with the W3C's recommendation:
http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-scripts

This is particularly important if compliance to WCAG is either a goal or
mandate: WCAG 6.3 (in part states) "If it is not possible to make the
page usable without scripts, provide a text equivalent with the NOSCRIPT
element, or use a server-side script instead of a client-side script, or
provide an alternative accessible page as per checkpoint 11.4." (I
didn't write this, I just report the facts)

> It looks like JAWS 7.1 will
> finally support noscript when released, but no other version of JAWS
> does.

So what? Since when do we develop content for user agents? I'm sorry,
but I must totally disagree with Andrews advice here - it's wrong: if
you are using a script, then *if/when* required (a mission critical
function) use NOSCRIPT. *Not* using it because JAWS does not support it
is a very poor reason - there are other user agents out there that may
not support scripting and would benefit 100% by the addition of the
noscript element.

> For script events, you should use "progressive enhancement". This
> means that the javascript functionality should be added to the
> elements that need it as through a script.
>
> In the case of your navigation example, you might need a script that
> is run when the page loads that modifies a set of nested lists so
> that some elements are hidden and some have mouseover and focus (and
> mouseout and blur) events to make the list have the desired visual
> appearance and functionality. Take away the script by turning
> javascript off and you still have the useful list.

Yes, this is correct, and in principle I would also advise this form of
development. In the development environment, we must always ask if we
*really* need to use that bit of JavaScript, or is there a different
solution that can be applied? In most instances I've encountered, there
is usually another way of "skinning the cat" (as it were - I do not
advocate violence against animals!) - be it a server-side solution, CSS
trickery or simply a re-thinking of what it is that we are trying to
really accomplish (the end goal) vs. gadgetry for gadget's sake.

In the example above, the graceful degradation (or progressive
enhancement - this is but a matter of perspective) solution proposed is
the right way of moving forward. But to issue a blanket statement to
not use NOSCRIPT is wrong - if there is no other way around the issue,
then implementing NOSCRIPT may in fact be the **only** way to go.

>
> If you use noscript you can accomplish almost the same thing, but you
> need to code the navigation and the list separately, and it won't
> work with JAWS (yet).

Which is unfortunate, but should not be the reason to not use W3C
recommended development techniques.

JF
--
John Foliot <EMAIL REMOVED>
Web Accessibility Specialist
WATS.ca - Web Accessibility Testing and Services
http://www.wats.ca
Phone: 1-613-482-7053