WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: Section 508 Question

for

From: Jukka K. Korpela
Date: Jan 8, 2006 6:20AM


On Fri, 6 Jan 2006, John Foliot - WATS.ca wrote:

> Checkpoint Section 1194.22(l) states: "When pages utilize scripting
> languages to display content, or to create interface elements, the
> information provided by the script shall be identified with functional
> text that can be read by assistive technology."

The formulation is confusing - surely not in a language that would meet
the WCAG 1.0 guideline on simplest language possible! It sounds like it
was first sketched without the text "or to create interface elements",
which was added later, as an afterthought, without considering how well it
fits to the rest of the sentence. An interface element is not information
in the normal sense of the word. Moreover, the meaning of "identified" is
obscure, though perhaps intentionally. I would read it as meaning that the
information provided by the script shall be _given_ as normal text that is
available without scripting _or_ (if that is not possible) _referenced_
that way, so that the user knows how to access it or at least knows about
it.

It's a questionable requirement, since it forbids, for example, the
creation of an "extra comfort" type of interface elements, such as a
button for selecting all checkboxes in a set. Such a button just adds a
shortcut. Properly implemented, there is no disturbance to users with
scripting disabled. Yet the rule says that "information" shall be
"identified". (Well, if an author adds <noscript>(If you used this page
with client-side scripting enabled, you would have a button for checking
all the checkboxes.)</script>, it's perhaps not too disturbing, and might
even be useful in rare cases.)

The interpretations and explanations at
http://www.access-board.gov/sec508/guide/1194.22.htm#(l)
can probably be characterized as semi-official. It is however rather
questionable, since it begins with an obscure explanation that probably
results from completely misunderstanding the problem and having no clue of
any solutions:

"Web page authors have a responsibility to provide script information in a
fashion that can be read by assistive technology. When authors do not put
functional text with a script, a screen reader will often read the content
of the script itself in a meaningless jumble of numbers and letters.
Although this jumble is text, it cannot be interpreted or used."

I cannot decipher that, but it seems to relate to some ideas about
the ways to present the _script code_.

It also promotes the use of javascript: URLs (which do not
conform to any specification) and claimes that
<a href="javascript:myFunction();">Start myFunction</a>
does not cause accessibility problems for assistive technology! It then
switches to alt attributes for images (a quite distinct problem) and
promotes the absurdity
alt="picture link for starting myFunction"

Then it says something about the status line - something rather
irrelevant, unless we postulate the use of javascript: URLs and consider
different ways to create new problems by attempts to solve the assumed
problem of hard-to-read status lines.

Finally, it discusses event attributes. The discussion is mostly confused,
but it says:
"If clicking on the element associated with the onClick event handler
triggers a function or performs some other action, developers should
ensure that the context makes that fact clear to all users."
By definition, an onClick event handler always performs an action.
The question is what "the context" means. I would say that things can
be clear to _all_ users only if written out explicitly. This is quite
a requirement, of course.

> The question is this: if the JS provides core functionality (for example
> a text input that fires on "OnSelect" without the presence of a submit
> button), does this fail the "interface element" criteria, even though
> there really is no means of providing "functional text"?

I'm not sure what "functional text" means. Text that is a link? Would the
text in a submit button qualify? In the latter case,
<noscript><input type="submit" value="Send"></noscript>
might qualify, assuming of course that you mean that there is no submit
button in the normal content.

But if I were in a jury and the charge was violation of rule (l) in a
case like this, I would have to vote "not guilty" anyway. The script does
not present information and it does not create an interface element,
so the rule does not apply to it at all.

Rule (l), as I see it, refers to information presented via scripting, e.g.
using the alert() function or changing the content of a field or by
generating stuff with document.write() or some more advanced tools.
Irrespectictively of this, it would make sense to require that such
information be available, at least indirectly (via a link), when scripting
is disabled. But this would not be enough, since people may use software
that cannot access all content presented via scripting and yet has
scripting enabled, so that e.g. <noscript>...</noscript> is not a
solution. Regarding new interface elements, the event attributes do not
technically create new elements, so we might say (somewhat dishonestly,
but with good intentions) that the rule does not apply to them.

--
Jukka "Yucca" Korpela, http://www.cs.tut.fi/~jkorpela/