W3C - the World Wide Web Consortium Web Accessibility Initiative Authoring Tools Working Group

About the ATAG source documents

contents:

Status of this Document

This page describes the method used to create the Authoring Tool Accessibility Guidelines and the Techniques for Authoring Tool Accessibility. Note that the process itself is in something of an overhaul mode.

This page is provided as an aid to those who are working on parts of the documents as editors, or translators, or are interested in doing so.

Last updated $Date: 2001/04/06 15:02:52 $ by Charles McCathieNevile

Generating the ATAG documents - an overview

The main source document includes the information that is in the techniques and guidelines documents. A handful of simple transformations are used to

To do...

The Main Source Document

The fundamental source is an XHTML document that uses various classes to mark up which documents various fragments will or won't end up in the result document. For example, there are status sections included for each result document, but all except the relevant one are removed. The default styles are included in a local stylesheet, which is removed from generated versions. Note that at the moment there are two source documents - the source that has more of the XSLT-oriented features, and the source that has more up-to-date content

Idrefs used in main source

toc
a div element with id toc is replaced by an auto-generated table of contents. I would like to have a version of the toc left in the source normally. Todo: make this happen with the references and definitions (partially done already)
header elements
The id of header elements is used to provide an anchor reference. I need to remove it from the headers, for validity.

Classes used in main source

sources - default style is { color:red }
Things that are only relevant to the source document, like this section. Removed from all generated versions
techniques - default style is { color:purple }
Things that are for the Techniques documents. Removed from guidelines version.
guidelines - default style is { color:green }
Things that are for the guidelines version only.
toc and notoc
h1 elements are not included in the table of contents - it is expected that there is only one, for the human-readable document title. For h2 and h3 elements, the default is to include them in the contents - to bypass them give them a class of notoc. This is reversed for h4, h5, and h6 - to make these appear in the contents they must have a class of toc.
Different types of techniques
There are some icons used to identify techniques relevant to different types of tools. These are used to produce views which are restricted to the content relevant for a particular kind of tool developer.

The transformations

The Guidelines Transformation

There is an XSL stylesheet to produce drafts of guidelines.

  1. It declares a few variables (at the moment with dummy values).
  2. It puts in title and version information (at the moment also using dummmy values, including a warning that this is just a test for now)
  3. It removes the local stylesheet, and things that are not meant for the guidelines document (source-specific stuff, techniques, ...)
  4. It uses a modified version of the TOC stylesheet to generate a table of contents (at the moment this has a problem somewhere. Sigh).

The Techniques Transformations

There are several XSL stylesheets that transform the main source to produce drafts of the Techniques for Authoring Tool Accessibility. They each use an XSL stylesheet that consists only of variable declarations, as a makefile. The "main techniques transformation" produces a document that includes all techniques, and there are additional transformations that are used to produce documents that only contain techniques relevant to a specific type of tool. (at the moment the only one of these that sort of exists is the Audio Video Tools transformation)

The "main techniques transformation" - or view the main techniques transformation source

  1. Imports variable declarations (at the moment with dummy values) from the techniques makefile.
  2. Swaps the head section for a real one.
  3. Puts in title and version information (at the moment also using dummy values, including a warning that this is just a test for now)
  4. Removes the things that are not meant for the techniques document (source-specific or guideline-specific stuff, ...) by selecting on classes guidelines and source.
  5. Includes the Table of contents transformation to generate a table of contents.

Transformations for specific techniques views- for an example view the AV Tools transformation source

One of the goals in shifting to XSLT for producing the documents was to easily enable the production of specific views of the techniques document, which only contained information relevant to a particular topic. The first that has been created is a view for Audio and Video tools - including image editing or processing software as well as more tools for more complex multimedia. Other views have been identified by the group as desirable:

Each transformation works much like the main techniques transformation (they are based on it), but has additional selection based on the subclasses for specific views described above. In future, it may prove better to write these transforamtions in such a way that they can be selected with a parameter and included in the main techniques transformation. They work as follows:

  1. Imports variable declarations (at the moment with dummy values) from the relevant makefile - the av techniques makefile is an example.
  2. Swaps the head section for a real one.
  3. Puts in title and version information (at the moment also using dummy values, including a warning that this is just a test for now)
  4. Removes the things that are not meant for the AV Tools view by selecting on classes guidelines and source, and subclasses specific to views as described above.
  5. Includes the Table of contents transformation to generate a table of contents.

Transformations used as components

There are some transformations that are used as components by the major transformations. These are included or imported by the XSL relevant rtansformation - some are specific to a particular transformation and some are more general.

The Table of contents generator

There is an XSL stylesheet that creates a table of contents.

  1. It looks for heading elements. If they have an id attribute it uses that to generate an a element with identical name and id attribute values. Otherwise it generates them automatically.
  2. It looks for a div with the id of toc. It replaces this with a table of contents generated as follows:
    1. Look for h2 elements. for each one found, copy the text as a link, unless it has class="notoc".
    2. Look for following h3 elements that come before any more h2 elements. For each one, add a reference (a bit more indented) and a newline (<br/>), unless it has class="notoc".
    3. Look for h4 elements until the next h3 element, as above, but only including those that have class="toc".
    4. And so on down to h6. Then provide the reference for the next h2 element, as above...

The glossary transformation

There is a transformation to include relevant definitions for the glossary. It replaces a div which has id="glossary" with a glossary selected as follows:

  1. It looks for links that have the type rel="glossary"
  2. It looks for a target item in the glossary document (at the oment defined in the transform)
  3. It includes the target definition item (a dt element with subsequent dd elements.
  4. Todo: make it sort the entries, and ensure that each is unique.

The makefiles

There are makefiles for each techniques transformation that consist of variable declarations. It may prove better to include some more transformations (especially basic include-or-remove ones) and have a single techniques transformation that includes the relevant makefile based on a parameter.

How to generate the results

You can select a transformation and get the results from applying it to the source document. This service uses the Xalan XSLT engine running as a servlet, but I don't know a lot about the magic that makes that happen. (The XT servlet that I had access to didn't like the transformations I was using).


Revision: $Revision: 1.18 $ Level Double-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0