This document describes techniques that Web accessibility validation tools
may use to evaluate the conformance of HTML documents to the Web Content Accessibility
Guidelines 1.0 (WCAG 1.0). This document also describes techniques that
Web authoring tools may use to help authors modify HTML documents to conform
to WCAG 1.0. We anticipate that tool developers may develop accessibility
validation and/or repair modules to be incorporated into commercial authoring
tools, validation tools, and perhaps user agents.

implementation and testing of the techniques discussed in this
document.

The working group expects to collect and test new and existing techniques
in the next few months. The document will be updated to reflect the group's
findings.

Information about existing Evaluation, Repair, and Transformation Tools for
Web Content Accessibility is available from the working group's home page.

This is a draft document and may be updated, replaced, or obsoleted by
other documents at any time. It is inappropriate to use W3C Working Drafts as
reference material or to cite them as other than "work in progress". A list of
current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/.

The Web Accessibility Initiative (WAI) has produced a foundation document,
The W3C Web Content
Accessibility Guidelines (WCAG 1.0), that describes what must be done to
make a Web page accessible to all. Tools are needed to help authors determine
if a web site is accessible to everyone and to help repair it if it is
not.

This document builds on the WCAG 1.0 foundation by outlining techniques
that evaluation and repair tools may use to uncover accessibility problems and
possibly repair them. These techniques may be used by those who create web
authoring tools or by anyone interested in creating accessible Web
documents.

It is important that people with disabilities are included in the "anyone
interested in creating accessible Web content." Creating accessible Web
content is as important as accessing Web content. Therefore, evaluation and
repair tools themselves need to be accessible to people with disabilities.
However, this document does not describe how to make the user interface
accessible. Please refer to the User
Agent Accessibility Guidelines for information on making the user
interface accessible.

Many people using evaluation and repair tools may be new to the Web and
will not be familiar with the various markup languages that are used. Many
others will not know about Web accessibility. Tools should be intuitive and
easy to use and available at a minimal cost. Tools should not generate
excessive warnings or false positive accessibility errors.

Some of the web-content accessibility checkpoints cannot be checked
successfully by software algorithms alone. There will still be a dependence on
the user's ability to exercise human judgment to determine conformance to the
guidelines. It is imperative that any tool have features that assist in
reminding, without nagging; in helping, without demeaning; in suggesting,
without demanding. We hope that the techniques in this document, implemented
in software programs, will gently guide authors along the path to more
accessible documents.

This document is based on The W3C Web Content Accessibility
Guidelines. It lists each guideline and checkpoint in in that document.
Under each checkpoint it lists one or more techniques for evaluating and, in
some cases, repair. Each technique comprises the following subsections:

Open issues for this technique

This section lists open issues and questions about a particular
technique.

Evaluation:

The algorithmic and heuristic tests that will be applied. consisting
of

Elements - the elements to which this test
applies, e.g. IMG etc. If it only applies to an element
of a particular type, this is noted (e.g. INPUT
TYPE="image">

Requirements - the conditions which will be
tested for by means of algorithms and heuristics.

Note: in a few cases, the warning is always presented.

Suggested message:

Messages displayed to the author if the element is found and the
requirement is not satisfied.

Suggested repair:

Actions that may be required to repair the accessibility problem.

Test files:

Used to test evaluation tools to see if they find the accessibility
problem. These are under construction!!

Discussion files:

Discussion and comments on the technique.

Note. This document specifies only the function of
evaluation and repair tools. Nothing in this document should be taken to imply
a particular user interface.

Checkpoint 1.3 - Until user agents
can automatically read aloud the text equivalent of a visual track,
provide an auditory description of the important information of the visual
track of a multimedia presentation

Checkpoint 1.4 - For any time-based
multimedia presentation (e.g., a movie or animation), synchronize
equivalent alternatives (e.g., captions or auditory descriptions of the
visual track) with the presentation

Suggested message:

Missing text equivalent: Missing text equivalent for image.

Suspicious "alt" attribute: Suspicious text equivalent for
image: [current "alt" text] - [could be file size | could be
file name | could be placeholder text | text equivalent should be short,
perhaps this could be a "longdesc"].

After user has entered an "alt" attribute for the image,
check the site for other instances of the image. If the site contains
other images that are the same and they do not have a text equivalent,
suggest that all same images without an "alt" attribute use
the new "alt" attribute value.

Open issues for this technique:

Valid "longdesc" attribute or a d-link required if
describing the image will add information not given in the text of the
page. The amount of information in the image and the context in which
it is used will determine how detailed the description should be.
Note: d-link now deprecated.

If describing the image will add information not given in the text of
the page, you need to provide a description of the image. The amount of
information in the image and the context in which it is used will
determine how detailed the description should be.

If a FRAMESET has three or more frames and at least one of
the frames does not have a "longdesc" attribute, ask the user
if the relationships between frames are not apparent in the titles for
each frame.

If the relationships between frames are not obvious then ask that they
provide a description of the relationships. Allow the user to create a
"longdesc" file or associate an existing
"longdesc" file. It is suggested that each FRAME
in the reference the same "longdesc" as the description of
the relationships should be available from each FRAME.

Open issues for this technique:

A-Prompt has been using an algorithm to detect ASCII art (There must be
5 or more lines of text and there must be 5 or more same characters in a
sequence). This works quite well but detects things such as code samples
(don't require text equiv.) and guitar tabulature (do require text equiv.)
Should we suggest this algorithm in the evaluation?

What about ASCII art that is interspersed in text, such as in
P elements?

Display the multimedia file and allow the user to create an audio
description of the important information.

Allow the user to add a link to an existing audio description file.

Checkpoint 1.4 - For any time-based
multimedia presentation (e.g., a movie or animation), synchronize equivalent
alternatives (e.g., captions or auditory descriptions of the visual track)
with the presentation

Technique 2.1.1 [priority 1] Verify that
information conveyed with color is available without color

Ensure that information is not conveyed through color alone. For
example, when asking for input from users, do not write "Please select an
item from those listed in green." Instead, ensure that information is
available through other style effects (e.g., a font effect) and through
context (e.g,. comprehensive text links).

Checkpoint 3.1 - When an appropriate markup
language exists, use markup rather than images to convey information

Technique 3.1.1 [priority 2] Verify that
elements do not need to be converted to an appropriate markup language.

When an appropriate markup language exists, use markup rather than
images to convey information. For example, use MathML to mark up
mathematical equations, and style sheets to format text and control
layout

Requirements: Document should contain at least one of the
following:STYLE or LINK rel="stylesheet"
elements within the HEAD element | "style"
attributes on any element | FONT | BASEFONT |
"text," "vlink," "link," and "alink" attributes on
BODY.

If layout tables are identified (see technique 5.1.1), trigger this
check as well. We will inform user that style sheets can be used instead
of layout tables in 5.1.1.

Requirements For any HTML or CSS element defined to take a
%LENGTH, %PIXELS, %MULTILENGTH, or
%MULTILENGTHS, a validated value should either end with "%"
or begin with "+" or "-" or use the "em" or "ex" units.

A (somewhat costly) technique for guessing the primary language, is to
check for the use of common words in a language. For example, if you find
"a, the, you, for, is, of, and" then it's English. If you find "le, du,
la, a, se, pour, aux, des, ne" then it's French, etc.

Data tables present relational data such as a bus schedule, a comparison
of regional sales figures, or a listing of employee contact information.
Cells in data tables are related to each other and usually must be
perceived as a group.

Layout tables visually format images, text, and other information on the
page such as a navigation bar, or a newspaper page with stories, links,
and images. Each cell in a layout table is normally independent and can be
viewed on its own.

Your table should identify structural groups of rows and groups of
columns. Label table elements with the "scope",
"headers", and "axis" attributes so that future
browsers and assistive technologies will be able to select data from your
table by filtering on categories.

If the table does contain 2 or more logical levels of row or column
headers, use the HTML 4
table algorithm to show the author how the headers are currently
associated with the cells. If the author determines that the current
mark-up is not sufficient, allow the author to markup the table
TD or TH elements with scope,
axis, or headers attributes.

If the table has nested headings, cells that span multiple columns or
rows, or other relationships that may not be obvious from analyzing the
structure of the table but that may be apparent in a visual rendering of
the table, a valid "summary" attribute may be provided.

For missing summary - "Table is missing a summary." "In the summary,
describe the purpose of the table (either layout or data). For example
''This table charts the number of cups of coffee consumed by each senator,
the type of coffee (decaf or regular), and whether taken with sugar.

Additional help text: A summary of the relationships among cells is
especially important for tables with nested headings, cells that span
multiple columns or rows, or other relationships that may not be obvious
from analyzing the structure of the table but that may be apparent in a
visual rendering of the table. A summary may also describe how the table
fits into the context of the current document. If no caption is provided,
it is even more critical to provide a summary.

Checkpoint 6.2 - Ensure that equivalents
for dynamic content are updated when the dynamic content changes

Valid "src" attribute values must have a suffix of
".htm," ".html," ".shtm," ".shtml," ".cfm," ".cfml," ".asp," ".cgi,"
".pl", ".smil" or target document must have a known public identifier
at the top of file.

Requirements: any actions that change the display must change the
equivalent @@Is this computable in a practical time (cf. NP complete) .
Computer science help needed here. Of course, as in other parts of
document, the fact that the equivalent changes is no guarantee that
equivalent is correct than it is guaranteed that "alt" text
for an image is correct.

Technique 6.5.1 [priority 2] Check that
a NOFRAMES element exists within each FRAMESET.

The contents of the NOFRAMES element must provide the
necessary links to navigate the site.

Not allowed: Telling the user that they should upgrade to a browser that
supports frames. Suspicious words within the text of a
NOFRAMES element: "upgrade," "full advantage," supports
frames," "missing" etc.

Suggested repair:

Checkpoint 10.1 - Until user agents allow
users to turn off spawned windows, do not cause pop-ups or other windows
to appear and do not change the current window without informing the
user

Checkpoint 10.2 - Until user agents
support explicit associations between labels and form controls, for all
form controls with implicitly associated labels, ensure that the label is
properly positioned

Checkpoint 10.3 - Until user agents
(including assistive technologies) render side-by-side text correctly,
provide a linear text alternative (on the current page or some other) for
all tables that lay out text in parallel, word-wrapped columns

Checkpoint 10.2 - Until user agents
support explicit associations between labels and form controls, for all form
controls with implicitly associated labels, ensure that the label is properly
positioned

Checkpoint 10.3 - Until user agents (including
assistive technologies) render side-by-side text correctly, provide a linear
text alternative (on the current page or some other) for all tables that lay
out text in parallel, word-wrapped columns

Please consult the definition of linearized table. This checkpoint
benefits people with user agents (such as some screen readers) that are
unable to handle blocks of text presented side-by-side; the checkpoint
should not discourage content developers from using tables to represent
tabular information.

If it has been determined that the table is used for layout (see
Technique 5.1.1) then create a linear version of the table by: [@@insert
heuristics from table linearizer - basically replace TABLE
markup with text structural markup]. The author will then need to check
that it is readable.

If it has been determined that the table is used for data (see Technique
5.1.1) then create a linear version of the table by: [@@table linearizer
heuristics? basically, for each cell repeat the column and row headers
associated with it]. The author will then need to check that it is
readable.

Checkpoint 11.3 - Provide information
so that users may receive documents according to their preferences

Checkpoint 11.4 - If, after best efforts, you
cannot create an accessible page, provide a link to an alternative page
that uses W3C technologies, is accessible, has equivalent information (or
functionality), and is updated as often as the inaccessible (original)
page

Checkpoint 11.1 - Use W3C technologies when
they are available and appropriate for a task and use the latest versions when
supported

Non-W3C technology used: W3C technologies have been reviewed for
accessibility issues throughout the design phase and have accessibility
built-in. Many non-W3C formats require specific applications (often called
plug-ins) that are inaccessible or do not work well with assistive
technologies. Using W3C technologies will tend to make pages more
accessible to more people using a wider variety of hardware and software.
If inaccessible technologies (proprietary or not) must be used, equivalent
accessible pages must be provided.

Use CC/PP or XML/XSLT or other transformations on the server or gateway
to configure a page for various user preferences and device profiles.

Serve style sheets based on user preferences - use the media types.

Work with your server system administrator to provide content
negotiation.

Use browser sniffing on the client to request documents on the
server.

Use cookies to remember user preferences between sessions and server
documents per those preferences.

Link to other versions of the document (other formats and
languages).

If not possible to use content negotiation, indicate content type or
language through markup (e.g., in HTML use "type" and
"hreflang").

Checkpoint 11.4 - If, after best efforts, you
cannot create an accessible page, provide a link to an alternative page that
uses W3C technologies, is accessible, has equivalent information (or
functionality), and is updated as often as the inaccessible (original)
page

This document does not conform to the WCAG guidelines. If you are unable
to make the necessary repairs to this document then please create another
equivalent page that is accessible and link to it from this document.

When providing search functionality, content developers should offer
search mechanisms that satisfy varying skill levels and preferences. Most
search facilities require the user to enter keywords for search terms.
Users with spelling disabilities and users unfamiliar with the language of
your site will have a difficult time finding what they need if the search
requires perfect spelling. Search engines might include a spell checker,
offer "best guess" alternatives, query-by-example searches, similarity
searches, etc.

After evaluating a document, an evaluation and/or repair tool should
provide the user with a document rating. The rating is based on conformance to
the W3C Web Content
Accessibility Guidelines and will be:

Level "A": all Priority 1 checkpoints are
satisfied;

Level "Double-A": all Priority 1 and 2 checkpoints are
satisfied;

Level "Triple-A": all Priority 1, 2, and 3 checkpoints
are satisfied;

Some checkpoints can not be checked by a software program and will require
user evaluation. The user must be informed of the items that they must
check.