Editor: Christophe Strobbe (DocArch, Katholieke Universiteit Leuven).
Test Case Description Language (TCDL) is an XML vocabulary for describing test files and evaluation scenarios for such test files, intended to be included in test suites for user interface guidelines such as Web Content Accessibility Guidelines (WCAG) 2.0.
This is a draft for discussion by the TSD TF only.
@@todo
This document defines the features and syntax of Test Case Description Language (TCDL). The objective of this language is to define metadata for test cases. In addition to formal metadata and links to relevant sections in technical specifications, TCDL also supports the definition of test scenarios for the validation of test samples (for example by end users) against usability and accessibility guidelines. TCDL defines metadata for detailed descriptions of test cases, for tracking the status of test cases during the development process, for matching test cases with user profile metadata, etcetera.
TCDL can be used to support the development of suites of test samples for sets of accessibility guidelines such as the Web Content Accessibility Guidelines 2.0 (WCAG 2.0).
This specification reuses element and attribute types from other
specifications. These element and attribute types can be recognized by the
namespace prefixes that precede the names (for example, html:
,
dc:
, xlink:
). TCDL files need
not use the same namespace prefixes as this specification, except where the
namespace prefix is xml:
, which is reserved by the
XML specification (XML 1.0). References to data types
defined in XML Schema Part 2: Datatypes
consistently use the xs:
namespace prefix.
The content models for the element types state whether a child element type is optional or required; child element types are not repeatable unless this is explicitly stated.
This specifcation uses certain keywords as defined in RFC 2119 to indicate requirement levels; these keywords are emphasized like the following examples: must, must not, should.
The root element type of a TCDL file is
testCaseDescription
. This element type has the following
attributes and namespace declarations:
id
: an identifier for the test case that is unique that is
unambiguous and unique withing the context of the test case (the context
can be a test suite) (required);xml:lang
:
the default language of the TCDL file (optional);dir
: the default text direction of
the TCDL file (optional);xmlns="http://bentoweb.org/refs/TCDL2.0"
: the default
namespace (required);xmlns:dc="http://purl.org/dc/elements/1.1/"
: namespace for
Dublin Core Element Set (required);xmlns:xlink="http://www.w3.org/1999/xlink"
: namespace for
W3C XLink (required);xmlns:html="http://www.w3.org/1999/xhtml"
: namespace for
XHTML 1.x (required);xmlns:xsd="http://www.w3.org/2001/XMLSchema"
;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
;xsi:schemaLocation
: for linking namespace
URIs with the URIs of the
corresponding schema documents.Note: the namespace prefixes need not be the same as those in the above list.
Note: for extensibility, the
testCaseDescription
element type can have any other attribute
types in the same namespace. [@@check that
<xs:anyAttribute/>
means only attributes in same
namespace; <xs:anyAttribute namespace="##any" />
means in
any namespace and is the default.]
TCDL metadata are organised in five major sections, which will be explained below:
formalMetadata
element type,
required),technologies
element type,
required),testCase
element type, required),rules
element type, required),namespaceMappings
element type,
optional),Extension
),In addition, there are also several extension elements and extension points. See “Versioning XML Vocabularies” (Orchard 2003) and “Extensibility, XML Vocabularies, and XML Schema” (Orchard 2004) for more background on the extensiblity of XML vocabularies.
Below is the skeleton of a TCDL file.
<?xml version="1.0" encoding="UTF-8"?>
<testCaseDescription id="wcag20060427_sc1.1.1_l1_001"
xml:lang="en"
xmlns="http://bentoweb.org/refs/TCDL2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:html="http://www.w3.org/1999/xhtml"
xsi:schemaLocation="http://bentoweb.org/refs/TCDL1
http://bentoweb.org/refs/schemas/tcdl1.xsd
http://bentoweb.org/refs/TCDL2.0
http://bentoweb.org/refs/schemas/tcdl2.0.xsd
http://purl.org/dc/elements/1.1/
http://dublincore.org/schemas/xmls/simpledc20021212.xsd
http://www.w3.org/1999/xhtml
http://www.w3.org/2004/07/xhtml/xhtml1-strict.xsd
http://www.w3.org/1999/xlink
http://bentoweb.org/refs/schemas/xlink.xsd"
>
<formalMetadata>
<!-- child elements omitted -->
</formalMetadata>
<technologies>
<!-- child elements omitted -->
</technologies>
<testCase complexity="atomic">
<!-- child elements omitted -->
</testCase>
<rules>
<!-- child elements omitted -->
</rules>
<namespaceMappings>
<!-- child elements omitted -->
</namespaceMappings>
</testCaseDescription>
Note: There is no normative schema for XLink; see Appendix B of the XLink specification (XLink 1.0). In the BenToWeb project, the W3C XML Schema for XLink 1.0 (METS XLink Schema, v. 2, Nov. 15, 2004), from the Metadata Encoding and Transmission Standard (METS) Official Web Site (Library of Congress) was borrowed with permission.
formalMetadata
Element Type [stable]The formalMetadata
element type contains formal or
administative metadata.
This element type has the following attributes:
xml:lang
(optional),dir
(optional).The formalMetadata
element type also has a number of required
and optional child element types, which occur in the following order:
title
(required),dc:creator
(required),dc:language
(required),dc:rights
(required),date
(required),status
(required),version
(optional),source
(optional),dc:contributor
(optional),Extension
(optional extension element),title
Element TypeThe title
element type contains the title of the test case.
It does not need to be unique (for example, in the test suite containing the
test case) and its lenght can vary depending on the complexity of the test
materials. However, the title should be sufficiently
descriptive to allow a quick identification of the issue exhibited by the
test case.
This element type has the following attributes:
xml:lang
(optional),dir
(optional).This element type may not only contain character data but also the XHTML element types specified in XHTML-Style Inline Markup.
dc:creator
Element TypeThe dc:creator
element type is borrowed from the Dublin Core
Metadata Element Set (DCMES 1.1) and
identifies the person or organization primarily responsible for creating the
test case.
This element type has no attributes.
The dc:creator
element type has the data type xs:string and
must therefore contain only character data.
dc:language
Element TypeThe dc:language
element type is borrowed from the Dublin Core
Metadata Element Set (DCMES 1.1) and
identifies the language of the intellectual content of the test case.
This element type has no attributes.
The dc:language
element type has the data type xs:string and
must therefore contain only character data. However,
in TCDL the value of dc:language
must be one of the language tags defined by ISO 3066. (@@todo check ISO 3066 or successor). The
value must not be empty or null.
dc:rights
Element TypeThe dc:rights
element type is borrowed from the Dublin Core
Metadata Element Set (DCMES 1.1) and
describes rights held in and over the test case.
This element type has no attributes.
The dc:rights
element type has the data type xs:string and
must therefore contain only character data.
date
Element TypeThe date
element type identifies the date when the test case
was created.
This element type has no attributes.
The date
element type has the data type xs:date
(which is inspired by ISO 8601). Example:
2004-10-01 means 1 October 2004.
status
Element TypeThe status
element type identifies the state of the test case
during the development process of the test suite, by means of one of an
enumerated list of values (for example, “draft”, “pending bugfix”,
“accepted”, “rejected”).
This element type has no attributes.
The status
element type has the data type xs:string, but the
values should really be chose from a limited list. Defining the list of legal
values is outside the scope of this specification because these values depend
on the context of the test suite. For an example, see the Conformance Test Process For WCAG
2.0, which contains a description of the steps that must be performed so
that a test case may be added to a test suite for WCAG
2.0.
version
Element TypeThe version
element type contains an identifier that allows
one to distinguish between different revisions of a test case. Note that the
W3C QA
Handbook @@REFERENCE
defines a new version as referring to a significant functional change and
enhancement
. TCDL does not define what consitutes a
new version because this depends on the context in which the language is
used.
Note: the WG Note on Test Metadata contains the following note about “version”:
ISSUE: It is unclear whether it is necessary to apply version numbers to individual tests. More common practice is to version the entire test suite. Ideally tests will not need to be revised as the specification evolves. However, this is sometimes necessary, and at a minimum each Working Group should define SpecRef and possibly other metadata such as Grouping elements to indicate which versions of the specification an individual test supports.
This element type has no attributes.
The version
element type has the data type xs:string.
source
Element TypeThe source
element type is used to document the source of a
borrowed test case and related information: the name and
URL of the original test suite, the URL
of the original test file, its creator, whether the file was copied literally
or with changes, and rights held in and over the original test case.
This element type has the following attributes:
xml:lang
(optional),dir
(optional).The source
element type can only contain other element types
in the following order:
testSuite
(required),sourceFile
(required and repeatable),dc:rights
(optional),comment
(optional).testSuite
Element TypeThe testSuite
element type is used to document the test suite
from which a test case was borrowed.
This element type has the following attribute:
xlink:href
(required) to specify the location of the test
suite.The testSuite
element type can only contain one element type
(and no character data):
name
(required) to specify the name of the test suite.This element type may not only contain character data but also the XHTML element types specified in XHTML-Style Inline Markup.
sourceFile
Element TypeThe sourceFile
element type is used to document a file that
was borrowed from another test suite.
This element type has the following attributes:
changed
(required) to specify whether the file was
borrowed with changes (“true”) or without any changes
(“false”),xlink:href
(required) to specify the location of the
original file.The sourceFile
element type can only contain one element type
(and no character data):
dc:creator
(required).The dc:creator
element type identifies the person or
organization primarily responsible for creating the borrowed test file. For
attributes and content model, see the dc:creator
element type above.
dc:rights
Element TypeThe dc:rights
element type describes rights held in and over
the borrowed test file. For attributes and content model, see the dc:rights
element type above.
comment
Element
TypeThe comment
element type is a general-purpose container for
comments on the borrowed materials, such as changes that were performed,
errors that were found etcetera.
This element type can only contain XHTML-style paragraphs.
dc:contributor
Element TypeThe dc:contributor
element type identifies the person or
organization responsible for making contributions to the content of the test
case.
This element type has no attributes.
The dc:contributor
element type has the data type
xs:string.
technologies
Element Type [stable]The technologies
element type contains the followiing
information about the technologies used in a test case:
This element type has the following attributes:
xml:lang
(optional),dir
(optional).The technologies
element type contains one or more instances
of the technicalSpec
element type.
technicalSpec
Element TypeThe technicalSpec
element type identifies a technology
(proprietary, W3C recommendation or other type of
technical specification) used in the test case. If a test case uses
server-side scripting to generate content on the fly,
technicalSpec
identifies the generated content type, not the
server-side scripting language. Languages and formats that are embedded or
inlined in another format, for example inline CSS or an embedded PNG file in an HTML file are also considered as
technologies in the context of this specification. There is one
technicalSpec
element for each file technology used by the test
case.
This element type has the following attributes:
xlink:href
(required),baseline
(optional).The xlink:href
attribute type contains the
URL of the technical specification of the file format.
@@data type
The baseline
attribute type specifies whether a technology
(technicalSpec
) or a feature (testElement
) is
inside or outside the baseline assumed by the test case. The value
“included” means that something is inside the baseline; the value
“excluded” means outside the baseline. (For information about baselines
in WCAG 2.0,
see Technology
assumptions and the "baseline" in Web Content
Accessibility Guidelines 2.0 (W3C Working Draft 27 April
2006) and About
Baselines and WCAG 2.0.)
[@@References]
Note: at the time of writing [@@date], it is not entirely clear whether WCAG baselines will only contain complete technologies or also mention specific features. The issue was discussed in March, with some arguments in favour of very granular baseline information. WCAG conformance claims don't need to specify what technologies were used outside the baseline, but it seems desirable that test case metadata are more precise in this area.
Note: the requirement that there is a formal specification or
recommendation for each technology works for many technologies
(HTML, CSS,
ECMAScript, Flash, PDF, PNG,
JPEG) but may be more problematic for others
(vendor-specific HTML extensions, the currently
non-standerdized XMLHttpRequest
object, …).
The technicalSpec
element type can contain two other element
types:
specName
(required),testElements
(optional).specName
Element TypeThe specName
element type contains the name of the
technology, more specifically the title of the technical specification that
defines the technology. This element type may not only contain character data
but also the XHTML element types specified in XHTML-Style Inline
Markup.
testElements
Element TypeThe testElements
element type contains a description of the
elements or features used by the test case. This element can be omitted for
binary formats (PDF,
Flash, …). This element type has no attributes. It contains at least one
instance of the testElement
element type.
testElement
Element TypeThe testElement
element type contains a description of a
specific element or feature. There is one testElement
for each
feature. For CSS, the name
of the rule, selector, property, property value, … can be provided. For
proprietary elements and attributes (Microsoft's bgsound
,
Netscape's embed
, etcetera), a link to the company's
documentation can be provided.
The testElement
element type has an optional baseline
attribute. It also contains
one instance of the elementName
element type, followed by one
instance of either the specReference
element type or the
specQuote
element type.
The elementName
element type identifies
the name of the element or feature. This element type has the following
attribute types:
xml:lang
(optional),dir
(optional),localname
(required),namespace
(optional).The localname
attribute type identifies the name of the feature. If the feature is an
element or attribute from an XML vocabulary,
localname
contains the unqualified name.
The namespace
attribute type identifies the namespace URI of the
feature, if relevant. This attribute type must not
be used if the technology defining the feature is not an
XML vocabulary.
elementName
is an empty element type; it does not contain
child elements or characer data.
The specReference
element type contains
the title of the relevant section in the specification. Use the title
provided by the specification wherever possible; otherwise provide a succinct
and meaningful title for the relevant section in the specification.
This element type has the following attribute types:
xml:lang
(optional),dir
(optional),xlink:href
(required).The xlink:href
attribute type contains the URL of the relevant
section in the technical specification.
The specReference
element type may not only contain character
data but also the XHTML element types specified in XHTML-Style Inline Markup.
The specQuote
element type contains a quote from the relevant section of the
specification. specQuote
can be used if it is not possible to
provide an exact pointer to the relevant section in the specification (with
specReference
).
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).The specQuote
element type may not only contain character
data but also the XHTML element types specified in XHTML-Style Inline Markup.
testCase
Element Type [stable, except last few sections]The testCase
element type describes what is necessary for the
evaluation of the test case.
This element type has only one attribute type, complexity
,
with the values “atomic” or “complex”. A test case is atomic if it
applies to only one checkpoint (WCAG 1.0) or success
criterion (WCAG 2.0), or complex if it applies to multiple
checkpoints or success criteria. [@@more general formulation?]
The testCase
element type can contain six other element
types:
description
(required),purpose
(required),expertGuidance
(optional),preconditions
(optional),requiredTests
(required),files
(required).description
Element TypeThe description
element type contains a summary of the test
materials and how they are to be used in the test case. The description
indicates to the accessibility expert/scenario author what to expect and what
will happen when a user interacts with the test materials. The description of
the behaviour is especially important for test materials with interactive
components such as forms.
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).The description
element type may not only contain character
data but also the XHTML element types specified in XHTML-Style Inline Markup.
purpose
Element TypeThe purpose
element type contains a description of the
intention of the test materials. The purpose contains an explanation of the
expected evaluation result in regard to the relevant rules, checkpoints or
success criteria. [@@reword:] It does not need to repeat the rule or success
criterion. (Strictly speaking, this goes beyond the Purpose
in W3C Working Group Note on Test Metadata.)
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).This element type can only contain XHTML-style paragraphs.
expertGuidance
Element TypeThe expertGuidance
element type contains guidance to
reviewers (for example, accessibility experts if TCDL is used for a
WCAG test suite) for evaluating the test case.
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).This element type can only contain XHTML-style paragraphs.
preconditions
Element TypeThe preconditions
element type contains conditions that must
be met before this test is executed. See Preconditions
in W3C Working Group Note on Test Metadata.
This element type is provided for extensibility; it can contain any
elements in any namespace (##any
).
requiredTests
Element TypeThe requiredTests
element type describes
Note: in Bentoweb, each scenario has a mandatory identifier that is unique within the test case description. This identifier is necessary to map end user feedback to the scenarios.
The TCDL specification does not define any attributes
for the requiredTests
element type but allows the use of any
attributes for extensibility.
The requiredTests
element type can contain the following
element types in the following order:
testMode
(required),scenario
(optional and repeatable),Extension
(optional extension element),testMode
Element TypeThe testMode
element type specifies the type of evaluation
that is required to get the test case “accepted”.
This element type has no attributes and allows only string values (xs:string).
Note: BenToWeb uses the following test modes:
scenario
Element TypeThe scenario
element type specifies a scenario that can
generate data for validating the test case. In TCDL, this
element type is geared towards end-user evaluation of test samples. For this
purpose, it is possible to define several types of questions (see below).
This element type has the following attribute:
id
(required) for an identifier that is unique within the
TCDL file.The scenario
element type can contain the following element
types in the following order:
dc:creator
(optional),date
(optional),status
(optional),scenarioNotes
(optional),userGuidance
(optional and repeatable, one per
language),questions
(required),experience
(required),disabilities
(optional).For dc:creator
, date
and status
,
see above: the dc:creator
element
type, the date
element type, and
the status
element type.
scenarioNotes
Element TypeThe scenarioNotes
element type is a container for any kind of
notes on the scenario, for example, its purpose.
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).The scenarioNotes
element type can only contain XHTML-style paragraphs.
userGuidance
Element TypeThe userGuidance
element type contains additional guidance to
the end user who evaluates the test case, especially with regard to the
configuration of their user agent and/or assistive technology. The
xml:lang
attribute is required.
This element type has the following attribute types:
xml:lang
(required),dir
(optional).Note: the languages must
match those used for the questions defined in the questions
element. This means that for each language version of a question, there
must be a corresponding language version of
userGuidance
, and vice versa, unless the scenario does not need
user guidance (in which case there is no userGuidance
element
for any of the languages in which the questions are available).
This element type can only contain XHTML-style paragraphs.
questions
Element TypeThe questions
element type contains one or more question that
can be presented to a human evaluator (an end user) to evaluate a test case.
There should be one question or set of questions per language represented in
the evaluation panel.
This element type has the following attribute types:
xml:lang
(required),dir
(optional).The questions element type can contain only one of the following five element types, but in as many language versions as are needed:
openQuestion
(optional, repeatable),yesNoQuestion
(optional, repeatable),yesNoOpenQuestion
(optional, repeatable),likertScale
(optional, repeatable),multipleChoice
(optional, repeatable).openQuestion
Element TypeThe openQuestion
element type contains an open question with
a textarea, which can be presented to a user.
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).The openQuestion
element type contains the following element
types, which occur in the following order:
questionText
(required, repeatable), which contains the
actual question, andspace
(required) which specifies the size of the text area
in which the user can enter a response.The questionText
element type has a
required xml:lang
attribute and an optional dir
attribute. There is one questionText
element per language in
which the scenario needs to be available. As noted, above, the language
versions of questionText
must match those of
userGuidance
, if any user guidance is provided. The
questionText
element type can only contain XHTML-style paragraphs.
The space
element
type has two required attribute types: rows
, which specifies
the number of visible text lines, and columns
, which specifies
the visible width in average character widths. The values of the
rows
and columns
attributes must be positive integers. The resulting text area
must allow the user to enter more lines than
specified by the rows
attribute and longer lines specified by
the columns
attribute.
yesNoQuestion
Element TypeThe yesNoQuestion
element type contains a yes-no-question,
with a third option (for options such as “Don't know”, “Not
applicable”, etcetera).
This element type has the following attribute types:
xml:lang
(optional),dir
(optional).The yesNoQuestion
element type contains the following element
types, which occur in the following order:
questionText
(required, repeatable), which contains the
actual question, andoptionYes
(required),optionNo
(required),optionOther
(optional).The questionText
element
type is defined above.
The element types
optionYes
and optionNo
are empty element types
with the following attribute types:
value
(required) for the value that will be sent to the
server if the user selects this option,expected
(optional) to specify if this option is what the
question author would expect from the user (indicated with the values
“yes” or “no”),xml:lang
(optional),dir
(optional).The element types optionYes
and optionNo
are
empty because it is not necessary for TCDL to contain the strings
“yes” or “no” (or any translations of these): the
process that transforms the scenarios into a user interface can fill in these
strings.
The optionOther
element type specifies an alternative for
“yes” or “no”, for example “I don't know” or “Other”. There
must be one “other option” for each
language in which the questions are available. Unlike the element types
optionYes
and optionNo
, optionOther
has child elements: it can only contain XHTML-style paragraphs.
The optionOther
element type has the following attribute
types:
expected
(optional) to specify if this option is what the
question author would expect from the user (indicated with the values
“yes” or “no”),xml:lang
(required),dir
(optional).yesNoOpenQuestion
Element
TypeThe yesNoOpenQuestion
element type contains a
yes-no-question, with a third option (for options such as “Don't know”,
“Not applicable”, etcetera) and an open question with a text area. It is
a combination of the yesNoQuestion
and openQuestion
element types defined above.
The yesNoOpenQuestion
element type contains the following
element types, which occur in the following order:
questionText
(required, repeatable), which contains the
question for the yes-no part and possibly also for the open part,optionYes
(required),optionNo
(required),optionOther
(optional),questionText
(optional, repeatable), which contains the
question for the open part if this is not already contained in the first
questionText
(s),space
(required), which specifies the size of the text
area in which the user can enter a response.@@todo add details or references to previous sections.
likertScale
Element TypeThe likertScale
element type specifies a Likert
scale, which is a type of survey question where respondents are asked
to rate the level at which they agree or disagree with a given statement.
This element type has the following attribute type:
display
(required), which defines how a list of choices is
displayed: vertically, horizontally or as a drop-down list (with the
values “vertical”, “horizontal” and
“dropdown”, respectively).The default for display
is vertical (for greater
accessibility to screen readers). Dropdowns are not recommended if more than
one choice needs to be selected.
The likertScale
element type contains the following element
types, which occur in the following order:
questionText
(required, repeatable), which contains the
actual question, andlikertLevel
(required, exactly five times).@@todo describe likertLevel, ...
multipleChoice
Element TypeThe multipleChoice
element type contains a multiple choice
question. It is possible to limit the number of responses to one (for radio
buttons) or to allow multiple reponses (for check boxes). This element type
is strictly a generalisation of likertScale
, which can be seen
as a short-hand notation of a specific usage of
multipleChoice
.
@@todo add details.
experience
Element Type@@A user's level of experience with the specified technologies. There are three categories of technologies: assistive technologies, user agents and devices. User agent also covers browser plugins.
disabilities
Element Type@@One or more disabilities to which the test case is relevant. This enables matching test cases with user profiles and prevents that end users get test cases that are irrelevant to them (for example, a test case on colour contrast should not be matched with a blind user).
files
Element TypeThe files
element type contains information about each of the
test files that are relevant to the rule or success criterion:
Supporting files such as included images, external style sheets and dummy pages to which forms are submitted (if only the form is relevant to the test) etcetera, need not be documented. (@@add: only "Web units".)
rules
and
rule
The rules
element type contains the “rules” that are
tested by a test case. In BenToWeb, rules are generally
WCAG 2.0 success criteria, but it is also possible to
reference other sets of “rules”:
The rules do not provide a direct reference to the relevant online source because it may not always be possible to reference “rules” directly (for example, because they are not available in HTML). The rules reference a rule ID in a “Rulesets XML” file (@@defined elsewhere), which in turn references the relevant rule in an online source.
For each rule listed in this section, the following information can be provided:
namespaceMappings
and namespace
[stable]This optional section is important for test cases based on test files that
use XML-based technologies. The technology features (see
the section on Technologies above) used in a test case exist in an
XML namespace1 and should be referenceable with XPath. The
normal mechanism for mapping namespaces to URIs by
declaring them with xmlns:prefix= "namespaceURI"
cannot be used
for this, because it is necessary to be able to define empty prefixes and to
extract the namespace mappings with a common XML
API.
This section describes content models and data types that are used by several element types in TCDL.
This content model is a mixture of character data and the following XHTML elements:
em
(emphasis);strong
(strong emphasis);dfn
(defining instance of a term or phrase);code
(program code);q
(inlined quote);samp
(sample);kbd
(keyboard input, something a user would input);var
(variable);cite
(citation);abbr
(abbreviation);acronym
;sub
(subscript);sup
(superscript);br
(forced line break);span
(generic container);bdo
(I18N
bidirectionality override).The XHTML 1.0 specification allows that the above
element types contain other element types. However, in
TCDL the above element types must
not contain element types other than those in the above list and the
a
element type (for links). Note that the schema for TCDL does not enforce
this constraint.
This content model is a sequence of one or more p
elements.
The content model of these p
elements is the
XHTML-style inline markup described above.
xml:lang
and hrefLang
The xml:lang
attribute type specifies the base language of an element's attribute
values and text content. The default value of this attribute is unknown. This
attribute type is imported from the XML schema for
XML 1.0, which is available at http://www.w3.org/2001/xml.xsd. The
value of xml:lang
is inherited; the data type is xs:language.
The hrefLang
attribute type specifies the base language of the resource designated by
the xlink:href
attibute on the same element; its data type is
xs:language.
dir
Attribute TypeThe only values allowed for this attribute type are ltr
(for
left-to-right text) and rtl
(for right-to-left text). When the
attribute is not used, the text direction is left to right, unless another
text direction is inherited from an ancestor element.
@@discuss the Extension
element type and the etensibility
points.
@@todo describe rulesets, which are used in the rules
section
of TCDL.
@@todo add XML Schema.
The example below uses only required elements and attributes, except the
optional xlink:href
attribute on the file
element.
<?xml version="1.0"
encoding="UTF-8"?>
<testCaseDescription id="wcag20060427_sc3.1.1_l1_001"
xml:lang="en"
xmlns="http://bentoweb.org/refs/TCDL2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:html="http://www.w3.org/1999/xhtml"
xsi:schemaLocation="http://bentoweb.org/refs/TCDL1
http://bentoweb.org/refs/schemas/tcdl1.xsd
http://bentoweb.org/refs/TCDL2.0
http://bentoweb.org/refs/schemas/tcdl2.0.xsd
http://purl.org/dc/elements/1.1/
http://dublincore.org/schemas/xmls/simpledc20021212.xsd
http://www.w3.org/1999/xhtml
http://www.w3.org/2004/07/xhtml/xhtml1-strict.xsd
http://www.w3.org/1999/xlink
http://bentoweb.org/refs/schemas/xlink.xsd"
>
<formalMetadata>
<title>German text with English language
identification</title>
<dc:creator>John.Doe@example.com</dc:creator>
<dc:language>en</dc:language>
<dc:rights>Copyright
Example.com</dc:rights>
<date>2006-08-31</date>
<status>draft</status>
</formalMetadata>
<technologies>
<technicalSpec><!-- xlink:href is optional -->
<specName>
<html:acronym>XHTML</html:acronym>®
1.0: The Extensible HyperText Markup Language (Second Edition)
</specName>
</technicalSpec>
</technologies>
<testCase complexity="atomic">
<description>Web page with an excerpt of
Peter Handke's play Publikumsbeschimpfung (in German); the html element has a
lang attribute with the value "en" (for English) instead of "de" (for
German).
</description>
<purpose><p>This test case is
intended to fail because the language of the page is not correctly
identified.</p>
</purpose>
<requiredTests>
<testModes>
<testMode>oneExpert</testModes>
</testModes>
</requiredTests>
<files>
<file xlink:href="wcag20060427_sc3.1.1_l1_001.html"/>
<!-- @@note xlink:href is actually optional -->
</files>
</testCase>
<rules>
<rule primary="yes"
id="http://bentoweb.org/refs/rulesets.xml#WCAG2_20060427_3.1_meaning-doc-lang-id">
<locations expectedResult="fail"/>
</rule>
</rules>
</testCaseDescription>
@@todo add XML Schema.
On 12 October 2003, the Quality Assurance Working Group (QA WG) published the submission Test Case Description Language 1.0. Many sections of this document are unfinished; according to a message of Lofton Henderson to the QA WG mailing list, this version was going to be superseded.
@@todo describe diferences between the two TCDLs.
On 14 September 2005, the Quality Assurance Working Group (QA WG) published a Working Group Note on Test Metadata. (See also Testcase Metadata, draft, 9 September 2005.)
The W3C
Working Group Note “Test Metadata” (14 September 2005) suggests
fourteen metadata elements for test suites. The table below shows how these
metadata elements map to TCDL elements. (In this table,
TCDL elements are identified by means of XPath expressions
without a namespace prefix and with the root element —
testCaseDescription
— omitted, except for the attributes of
that element.)
W3C Metadata | TCDL | Comment |
---|---|---|
Identifier | testCaseDescription/@id |
|
Title | formalMetadata/title |
In TCDL, titles are not necessarily unique; they don't duplicate the identifier. |
Purpose | testCase/purpose |
|
Description | testCase/description |
In TCDL, the description should help the reviewer understand how the test materials are constructed and the behaviour when a user interacts with it. |
Status | formalMetadata/status |
|
SpecRef | rules/rule and technology/technicalSpec |
In TCDL, two types of specifications need to be referenced: the accessibility guidelines (“rules”) and the specifications of the technologies in the test. |
Preconditions | testCase/preconditions |
Not used in BenToWeb, because test cases map directly to WCAG success criteria instead of tests. |
Inputs | testCase/files/file/httpRequest |
Only for the special case where it is necessary to (re)create a specific HTTP request. |
ExpectedResults | rules/rule/locations/@exptectedResult and rules/rule/functionalOutcome |
|
Version | formalMetadata/version |
It may be possible to rely on a version control system instead? |
Contributor | formalMetadata/dc:conributor |
|
Rights | formalMetadata/dc:rights and formalMetadata/source/dc:rights |
TCDL can document rights related to a test case and rights related to borrowed materials. |
Grouping | - | (Because TCDL describes only single test cases, grouping should happen at a higher level.) |
SeeAlso | technology/recommendation (and rules/rule/techComment ) |
This work has been undertaken in the framework of the project BenToWeb — IST-2-004275-STP — funded by the IST Programme of the European Commission.