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