DRAFT - Checkpoints for HTML, XML, SMIL, CSS, SVG, and XHTML
I only considered two checkpoints in an attempt to create technology
specific checkpoints. It is interesting that in each of these cases, the
technology-specifics are highlighted. I think what we will find is that we
will have general principles but that those are principles of design and not
markup language. Each markup language has a strength and not all design
principles will apply to each of those strengths. For example, separating
presentation and content means that two languages may be employed for the
desired effect. Therefore, if we do have technology-specific checks they
will be tied to other technology-specific checks.
For example, XML and style sheets.
Guideline 1. Provide equivalent alternatives to auditory and visual
content.
Checkpoint 1.1 Provide a text equivalent for every non-text element.
HTML
- Use "alt" for the IMG, INPUT, and APPLET elements, or provide a text
equivalent in the content of the OBJECT and APPLET elements.
- For complex content (e.g., a chart) where the "alt" text does not
provide a complete text equivalent, provide an additional description
using, for example, "longdesc" with IMG or FRAME, a link inside an OBJECT
element, or a description link.
- For image maps, either use the "alt" attribute with AREA, or use the MAP
element with A elements (and other text) as content.
- or in the content of the document.
XML
- Ensure that authors can associate a text description with any non-text
content (graphics, sound, multimedia, scripts, etc.)
- make sure this is done in the most natural way possible
- point at XHTML modules for OBJECT, MAP element, SMIL switch, etc
SMIL
- use the "alt" attribute for media objects (image, video, audio,
textstream, etc.) to specify a short text equivalent that conveys the same
function as the media object.
- Use the "longdesc" attribute for media objects to specify a link to a
long, more complete description of media content supplementing the
description provided by alt attribute.
- Use the "title" attribute with most SMIL 1.0 elements to provide
advisory information about the nature of the element. For example, for
links, use it to describe the target of the link.
- Use the systems-captions attribute to flag if captions should be shown
or not.
- Synchronize text captions with the audio track.
- Synchronize auditory descriptions with the video track.
- Use the switch element to provide captions or descriptions in various
languages.
- provide alternative tracks instead of alt attribute.
CSS
- For CSS, this applies to use of color? Generated text? Aural cascading
style sheets?
- Or does it not apply at all?
SVG
- Ensure each svg element and each g element that is a part of a graphic
has a title and a desc. Defined symbols must have a desc, and should also
have a title.
XHTML
- "alt" is a required attribute of the img element. Authors are also
encouraged to use the "longdesc" attribute to provide a rich description
of the image when appropriate (i.e. when an understanding of the contents
of the image is indispensable to an understanding of the document as a
whole).
- While XHTML 1.0 provides an "alt" attribute for the applet element,
since XHTML doesn't allow "empty" elements (that is, elements without
terminating tags), authors are strongly encouraged to include rich
equivalents for applets by using the applet element as a containing tag,
as in the following example, which illustrates how one might provide an
equivalent alternative for an applet that generates a "roll-over" graphic
which lists the site's sponsor:
<applet codebase="URI" width="%Legnth" height="%Legnth" ...>
<dl> <dt>A list of our sponsors:</dt>
<dd>Acme Novelty Corporation of America</dd>
<dd>Acme Africa</dd>
<dd>Acme Europa</dd>
</dl> </applet>
- Use the XHTML modules for the object and map elements
- For frames:
- 4A. Use the noframes element to provide an functional equivalent for
the frameset. Authors are encouraged to replicate the content of the
navigation frame within the noframes container, so as to provide a
user employing a frames-incapable user agent or who has configured the
UA not to render frames with access to the content of the
frameset.
- 4B. Use the "longdesc" attribute to provide equivalent access to the
content of each frame.
- 4C. Do not use the frame element to point directly to a rasterized
image or any other binary multi-media file.
- For inline sub-windows (the iframe element)
- 5A. Replicate the content contained within the body element of the
document referred to by the "src" attribute between the start and end
tags for the iframe to provide inline alternative content
- 5B. Use the "longdesc" attribute to provide equivalent access to the
content of each inline frame.
- 5C. Do not use the iframe element to point directly to a rasterized
image or any other binary multi-media file.
Guideline 3. Use markup and style sheets and do so properly
Checkpoint 3.1 - Use semantics and structure in accordance with the markup
language being used
Note that this is the proposed generalized checkpoint as discussed
DRAFT of Generalized
WCAG Checkpoints.
HTML
- [Was Checkpoint 3.5] - Use header elements to convey document structure
and use them according to specification
- [Was Checkpoint 3.6] - Mark up lists and list items properly
- [Was Checkpoint 3.7] - Mark up quotations. Do not use quotation markup
for formatting effects such as indentation
- [Was 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
- [Was Checkpoint 12.1] - Title each frame to facilitate frame
identification and navigation
- avoid using images to represent text -- use markup and style sheets
instead (this used to say text, but applies to MathML for equations).
XML
- Create semantically-rich languages.
- Enable the
use of style sheets (linked or internal).
- Use the standard linking mechanism.
- Define element types that allow classification and grouping.
- Define element types that identify important text content.
- Export semantics
- Provide accessible documentation.
- Provide schemas and a mean to access it.
- Reuse accessible DTDs, schemas, etc. (xlink, xml:lang)
SMIL
- Semantic elements in SMIL: audio, video, textstream (?? others ??)
- Structure elements in SMIL: layout, region, par (correct? others?)
- Presentation and layout in SMIL: layout element and style sheets.
CSS
- semantics in CSS?
- structure in CSS?
SVG
- Group pieces of the graphic into a g element. (for example, table legs,
a table, a chair, a plate, a cup, and the table setting are all meaningful
parts of a picture that shows a table laid out for dinner).
- Where there are more complex relationships between components, use
metadata to describe these.
- Use font and text elements rather than simple paths for including
text.
- Use "shortcuts" - rectangle, straight lines, circles, rather than curved
paths, where they adequately reflect the lines being described.
XHTML
- All elements must have closing tags. "Empty" (non- container) elements,
such as IMG or HR, inherited from HTML4, must either have an end tag (i.e.
<br></br>
or <hr></hr>
) or the
element declaration must end with /> (forward slash greater-than), as in
the following examples
<img src="dduck36.png" alt="Donald Duck, as he appeared in 1936."
/>
<hr title="Section Separator" />
- All elements must nest properly. This means that if you declare an
element, you must also close it--using either the end tag defined for the
element or by using the /> (forward- slash greater-than) to terminate the
"empty" element--before closing any parent elements.
- All HTML element and attribute names used in an XHTML document must be
in lower case. This is particularly important, as XML is case-sensitive,
meaning that
<LI>
(capitalized) and <li>
(lowercase) are two different tags.
- Attribute values must always be enclosed in quotes.
- While it is possible to use both the "lang" and "xml:lang" attributes
when specifying a natural language change, the value of the "xml:lang"
attribute takes precedence. Authors are, therefore, encouraged to use both
the "lang" and "xml:lang" attributes to ensure maximal backwards
compatibility.
- Use the "id" attribute to identify fragment identifiers. (Note While
HTML 4 defined the "name" attribute for the elements a, applet, form,
frame, iframe, img, and map to ensure backwards compatibility, HTML 4
also introduced the "id" attribute. While both attributes are designed to
be used as fragment identifiers in HTML, in XHTML 1.0, the name attribute
of these elements is formally deprecated, and will be removed in
subsequent versions of XHTML. The reason for this change is that in XML,
URIs that end with fragment identifiers of the form "#foo" do not refer to
elements with an attribute name="foo"; rather, they refer to elements with
an attribute defined to be of type ID--that is, the id attribute in HTML
4.) XHTML documents, therefore, must use the "id" attribute when defining
fragment identifiers, even on elements that historically have also had a
"name" attribute. Since many existing HTML user agents don't support the
use of ID-type attributes in this way, identical values should be supplied
for both of these attributes to ensure maximum forward and backward
compatibility--for example
<a id="toc" name="toc">Table of Contents</a>
Authors should also be aware that, since the set of legal values for
attributes of type ID is much smaller than for those defined for "name" in
HTML (which is defined as type CDATA in HTML but redefined as a new type,
NMTOKEN, in XHTML), care must be taken when converting existing HTML
documents into XHTML. The values of these attributes must be unique within
the document, valid, and any references to these fragment identifiers
(both internal and external) must be updated should the values be changed
during conversion.
- Since XML parsers are permitted to silently remove the contents of
comments, the historical practice of hiding scripts and style sheets
within comments to make the documents backward compatible is highly
unlikely to work as expected in XML-based implementations. For maximum
backwards compatibility, use external style sheets, especially if your
style sheet uses any of the following characters
- < (less-than)
- & (ampersand)
- ]]> (double-right bracket greater-than)
- -- (double-dash)
Likewise, authors are strongly encourage to use external scripts, and may
find it necessary to do so if the script contains any of the following
characters
- < (less-than)
- & (ampersand)
- ]]> (double-right bracket greater-than)
- -- (double-dash)
- Respect XHTML's "element prohibitions}, as defined at
<http//www.w3.org/TR/xhtml1/#prohibitions> and in Section 4.9 of the
XHTML 1.0 Recommendation <http//www.w3.org/TR/xhtml1/#h-4.
- The following elements have prohibitions on which elements they can
contain--this prohibition applies to all depths of nesting, i.e. it
contains all the descendant elements.
- a -- cannot contain other a elements.
- pre -- cannot contain the img, object, big, small, sub, or sup
elements.
- button -- cannot contain the input, select, textarea, label, button,
form, fieldset, iframe or isindex elements.
- label -- cannot contain other label elements.
- form -- cannot contain other form elements.
References
$Date: 2000/11/08 08:27:07 $ Wendy Chisholm