W3C

Comments on QA Framework: Specification Guidelines

Comments on version:
http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/
Ian Jacobs
Last modified: $Date: 2003/02/25 05:35:08 $

Status of this document

These comments are part of the last call review of the 10 Feb 2003 "QA Framework: Specifications Guidelines" Working Draft. These comments are on behalf of Ian Jacobs, not any particular Working Group.

Specific comments on the text are highlighted using class values and color, and are preceded by the string "IJ:"

0. General comments/conformance model

I think the document is well-organized, clearly written, and very helpful. Having spent a lot of time thinking about conformance issues (notably for UAAG 1.0), I thought it covered a lot of ground and did so well.

I like the distinction between requirements that relate to the conformance model and those that involve implementing the model in the spec.

0.1 Profile, module, level

I am struggling to understand a sharp distinction between profile, module, and level. They are all mechanisms for defining and labeling a set of technical requirements. I have the feeling guidelines 4, 5, and 6 could be combined, and the requirements rephrased "Whatever subsetting mechanism you use..."

0.2 Additional questions or suggestions:

  1. In general, specifications make functional requirements. In some cases, it may be necessary to make a performance requirement. How should that be handled?
  2. In UAAG 1.0, we realized that for some of our configuration requirements, it didn't matter whether the user agent offered the desired configuration or didn't implement the functionality in the first place. E.g., we decided that it was ok for a user agent to not support blinking at all, or, if blinking is implemented, to offer a configuration to turn it off. However, in other cases, the configurability was "just as important" as the functionality to be configured. Authors should consider these when they specify configuration options.
  3. It might be valuable for a specification to explain how to include its requirements in another specification. This is not the same as explaining how to reference the spec, or how to claim conformance to it.
  4. It might be valuable to explain some desirable characteristics of a specified technical requirement:
    1. Mutual independence from other requirements
    2. Expresses a minimal requirement
    3. Distinguish and label: requirements, exceptions to those requirements, necessary and/or sufficient techniques for satisfying those requirements.
  5. I think that more could be stated about useful ways of allowing extensibility. See, for example, how CSS (forward-compatible parsing), XML, and HTTP handle this. What should be avoided? Is the general practice of "ignore what you don't know" a good idea or a big mistake?
  6. A spec should clearly indicate which illustrations (e.g., images) and examples are normative, if any.

0.3 Document organization suggestions


1. Introduction

1.1. Scope and Goals

The scope of this document is a set of requirements for W3C Technical Reports (TRs) that if satisfied, will enhance the clarity, implementability, and testability of TRs. It describes what goes into a TR with respect to conformance and conformance topics, dealing with how a TR establishes, defines, and presents its conformance policy. This document includes:

A separate document, entitled "Specification Examples and Techniques 1.0" (the "ExTech document" from here on) provides suggestions and examples of how each checkpoint might be satisfied. The techniques in the ExTech document are informative examples only, and other strategies may be used or required to satisfy the checkpoints. The ExTech document is expected to be updated more frequently than the current guidelines. Developers, W3C Working Groups, users, and others are encouraged to contribute techniques and examples.

This document is applied and conformance (to this document) achieved as new TRs are being written. New TRs include those in-development or being revised. As for legacy specification, they may indirectly comply with the spirit or intent of some checkpoints, without actually satisfying all requirements in those checkpoints.

IJ: I think the previous paragraph doesn't belong here; it could be deleted or moved to the status section (after some editorial fixes).

1.2. Class of Product and Audience

The class of product or target of this specification is W3C Technical Reports. Within this Specification Guidelines document, the term "specifications' is specifically limited to W3C Technical Reports, even though these guidelines could be applied to other documents.

The primary target audience of this document is specification authors, however, it is applicable to a broader audience including:

It is a design goal of these guidelines the WGs can apply them in a common-sense and workable manner.

1.3. Motivation and expected benefits

Good specifications lead to better implementations and foster the development of conformance test suites and tools. Conforming implementations lead to interoperability.

The quality of the specification has direct impact on the quality of implementations. Quality encompasses utility which refers to the usefulness of the specification to the intended users and objectivity which focuses on the whether the specification is presented in an accurate, clear, complete, and unbiased manner.

Providing requirements and definitions about conformance topics, as well as guidance in the structure and anatomy of specifications, will foster a mutual understanding among developers of specifications, implementations, and conformance test materials. Specifically, well-structured specifications with clear and comprehensive conformance requirements:

1.4. Relationship to other specifications

This document is part of a family of QA Framework documents designed to help the WGs improve all aspects of their quality practices. The QA Framework documents are:

The QA Framework documents are interrelated and complement each other. For example, the anatomy of a specification is related to the type of test materials that will be built, hence there is interrelationship between this document and the Test Guidelines. The reader is strongly encouraged to be familiar with the other documents in the family.

The Framework as a whole is intended for all Working Groups, as well as developers of conformance materials for W3C specifications. Not only are the Working Groups the consumers of these guidelines, they are also key contributors. The guidelines capture the experiences, good practices, activities, and lessons learned of the Working Groups and present them in a comprehensive, cohesive set of documents for all to use and benefit from. The objective is to reuse what works rather than reinvent and to foster consistency across the various Working Group quality activities and deliverables.

This document does not preclude the need to apply the W3C Manual of Style [STYLE-MAN] and to conform to the Publication Rules [PUBRULES ] (Member-only). It is intended to complement those specifications.

IJ: Pubrules and the MoS aren't really specifications. What about "resources?"

1.5. Understanding and using this document

This document employs the WAI (Web Accessibility Initiative) model for representing guidelines or general principles for the development of conformance materials. See, for example, Web Content Accessibility Guidelines 1.0 [WCAG10]. Each guideline includes:

The guidelines are of two general types:

The checkpoints in each guideline define specification characteristics and requirements needed to fulfill the purpose of the guideline. Each checkpoint definition includes:

Each checkpoint is intended to be specific enough so that someone can implement the checkpoint as well as verify that the checkpoint has been satisfied. A checkpoint will contain at least one, and may contain multiple individual requirements , that use RFC2119 normative keywords. See the "Conformance" chapter for further discussion of requirements and test assertions.

Two separate appendices to this document [SPEC-CHECKLIST] and [SPEC-ICS] present all checkpoints in a tabular form sorted in their original order and sorted by their priorities, for convenient reference. The latter is an Implementation Conformance Statement (ICS) pro-forma for this specification. (See GL12.)

1.6. Terminology

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY ", and "OPTIONAL" will be used as defined in RFC 2119 [RFC2119]. When used with the normative RFC2119 meanings, they will be all uppercase. Occurrences of these words in lowercase comprise normal prose usage, with no normative implications.

Unusual terms in these framework documents are defined when first used. This document contains a "Definitions" chapter. Generally useful QA-specific terms will eventually be in the QA Glossary [QA-GLOSSARY]. If terms are in the QA Glossary, their definition herein will refer to that QA Glossary entry with a link. The definitions herein may supplement or build on that generic definition with other information that is useful or helpful in the specification guidelines context. They will not contradict the generic definitions.

1.7. Checkpoint priorities

Some checkpoints are more critical than others for producing a high quality, testable standard that is a sound basis for successfully interoperable products. Therefore each checkpoint is assigned a priority level based on the checkpoint's impact on the quality of the specifications produced by the Working Groups.

[Priority 1]
Critical/Essential. These checkpoints are considered to be basic requirements for ensuring an acceptable level quality and testability in the specification.
[Priority 2]
Important/desirable. Satisfying these checkpoints, in addition to the priority 1 checkpoints, should significantly improve the clarity, quality, and testability, of the standard, as well as its suitability as a basis for building quality test materials.
[Priority 3]
Useful/beneficial. Satisfying these checkpoints, on top of all the others, will further improve the quality, usability, and testability of the specification.

1.8. Dimensions of Variability

Each of the latter set of eight guidelines GL2 through GL9 addresses a way in which the conformance policy of a specification might allow variation among conforming implementations. For example, a specification might allow implementations to choose between one of two well defined behaviors for a given functionality, thus two conforming implementations might vary on that aspect.

For this reason, these eight guidelines are collectively called the "dimensions of variability (DoV)". The eight dimensions of variability recognized by this document are:

The above are not necessarily all orthogonal to one another. There are many possible associations, dependencies, and interrelationships. As a general policy, these specification guidelines do not attempt to legislate correct or proper relationships among the DoV. Rather, they try to clarify the nature of each dimension, and require specification to make deliberate and well documented choices. Some discussion of possible interrelationships, including examples will be found in the Specification Examples & Techniques.

The dimensions of variability are one of the principal concepts in this guidelines document to help organize, classify and assess the conformance characteristics of W3C specifications. The eight DoV get special attention because, since they are at the core of the definition of a specification's conformance policy, there is significant potential for negative interoperability impacts if they are handled carelessly or without careful deliberation.

As a general principle, variability complicates interoperability.. In theory, interoperability is best when there are numerous identical, complete, correct implementations. However, in practice, the net effect of conformance variability is not necessarily negative in all cases, when compared to the alternatives. For example profiles — subdivisions of the technology targeted at specific applications communities — introduce variability among implementations. Some will implement Profile ABC, some will implement Profile XYZ, and the two might not intercommunicate well if ABC and XYZ are fairly different. However, if ABC and XYZ are subsets of a large monolithic specification — too large for many implementors to tackle in -- and if they are well targeted at actual application sectors, then subdivision by profiles may actually enhance interoperability.

Different sorts of variability have different negative and positive impacts. The principal danger is "excessive" variability - variability which goes beyond that needed for positive interoperability trade-off, and which unnecessarily complicates the conformance landscape.Specification writers need to carefully consider and justify any conformance variability allowed, do so by reference to the project requirements and use cases, and explicitly document the choices made.

2. Guidelines

Guideline 1. Define Scope.

When writing specifications it is critical to understand their primary purpose and scope. Clearly defined scope helps to keep the specification content focused and unambiguous.

Checkpoints

Checkpoint 1.1. Include the scope of the specification. [Priority 1]

The scope describes the areas covered by the specification, thereby indicating the limits of applicability of the specification or particular parts of it. It does not specify requirements and is worded as a series of statements of fact.

Conformance requirements: the specification MUST define the subject matter of the specification, and SHOULD include a statement of objectives and/or goals. This information MUST appear at the beginning of the document.

Rationale: it helps the writer and the reader know the limits of what is specified in a normative document. It provides the reader with how the specification could be used and by whom.

Note that defining the classes of product as required by the checkpoint 2.1 contributes to define the scope of a document.

Examples & Techniques for this checkpoint.

Checkpoint 1.2. Illustrate what is in scope [Priority 2]

Conformance requirements: the specification MUST include examples or use cases illustrating what is in or out of scope.

Rationale: examples and use cases give the reader additional information in understanding the purpose, audience, and applicability of the specification.

It is up to the Working Group to determine what define best their scope, example, or use cases, or both, illustrating what is in, or out of scope, or both.

Examples & Techniques for this checkpoint.

Checkpoint 1.3. Provide Usage Scenarios. [Priority 3]

A Usage Scenario is an instance of a use case, representing a single path through the use case. Thus, there may be a scenario for the main flow through the use case and other scenarios for each possible variation of flow through the use case (e.g., representing each option).

Conformance requirements: the specification MUST provide Usage Scenarios.

Rationale: Usage scenarios provide more specific information regarding the authors' view of the specification's applicability. The additional information given in a usage scenario assists the understanding or use of the specification.

Examples & Techniques for this checkpoint.

Checkpoint 1.4. Provide examples. [Priority 2]

Conformance requirements: the specification MUST provide one or more examples of the functionality, concepts, and behaviors of the specification.

IJ: I think this checkpoint is too vague. Is it possible to break it down into a few more concrete requirements that are more verifiable? For instance:

  1. For markup specifications, provide at least one example of each markup construct.
  2. For protocol specifications, provide at least one example of ...
  3. For transformation specifications, illustrate each transformation capability with an example showing input and output.
  4. For UI specifications, provide an example of each construct, and illustrate the desired output using at least one mechanism other than the specification itself (e.g., the SVG specification should not rely on SVG rendering alone to explain what something should look like).

While you may miss some cases, I think spec editors will find this more helpful than the general goal to "provide examples."

Rationale: it is difficult to understand some concepts, behavior, or functionality without informative interpretations. Providing examples for behavior or concepts that are either innately complex or for which the WG have had to explain to its members or the public, aids the reader in interpreting the specification.

Examples & Techniques for this checkpoint.

Guideline 2. Identify what needs to conform and how.

Categorizing the specification provides a basis for classifying the software that may be affected by the specification — and thus, provides the answer to "what needs to conform?". To answer this question, it helps to look at the nature of the specification and categorize it. Most specifications can be classified into one of the following categories:

  1. foundation or abstract (e.g., Infoset),
  2. content/data (e.g., MathML, SVG),
  3. protocols (e.g., SOAP),
  4. processors (e.g., XSLT, XML Query),
  5. APIs (e.g., DOM),
  6. notation/syntax (e.g., XPath),
  7. set of events (e.g., one part of XForms)
  8. rules for deriving profiles (e.g., part of SMIL)

The categories indicate what the specification describes. One specification could potentially fall into more than one category.

From this categorization of specifications, the WG can identify the class of products that are affected by the specification. Classes of products can be generalized as either or producers or consumers, or as content itself. Identifying which are producers and consumers is clear for a protocol-type specification, the two parties to the dialog are the targets. For a processor-type specification, the processor is the consumer of an XML vocabulary defined in the specification. For content-type specifications, there may be one or more consumers that take the content and 'play' it in some way.

The following is a non-exhaustive list of classes of products for W3C specifications.

One specification could define more than one player. For example, MathML could address the behavior of display of math notation and also a consumer that parses the MathML as a formula and uses it for mathematical processing.

The conformance clause identifies the "class of products" (i.e., object of the claim) that is the target of the specification. In addition to identifying what conforms (i.e., class of products), it describes how conformance can be met. This would be a description of the conformance requirements, conditions and/or criteria for each class of product.

Checkpoints

Checkpoint 2.1. Identify all classes of product. [Priority 1]

Conformance requirements: a specification:

Rationale: doing so helps define the scope of the specification. It also helps the reader know what is being targeted by the specification (i.e., what needs to conform to the specification).

Example. Within the SMIL 2.0 Language Profile ([SMIL20], chapter 13), there are 2 classes of products: documents and basic user agents. Within Mathematical Markup Language (MathML) 2.0 [MATHML20] there are output-compliant, authoring tools and input-compliant, rendering/reading tools.

Examples & Techniques for this checkpoint.

Checkpoint 2.2. For each class of product, define the conformance requirements. [Priority 1]

The conformance requirements indicate the conditions to be satisfied in order to claim conformance. It is likely that these conformance definitions will reference normative text within the specification or in other related specifications.

Conformance requirements: the specification MUST define the conformance requirements for each identified class of product.

Examples & Techniques for this checkpoint.

Checkpoint 2.3. Identify which of the categories of object are specified in the document as a whole. [Priority 3]

Conformance requirements: the specification MUST identify in the Introductory section which of the categories of object are specified in the document as a whole.

IJ: This checkpoint includes a requirement for "where in your specification," even though the intro says those requirements are limited to GL1 and GL10-14.

Rationale: doing so helps keep the scope of the specification in focus, both for the reader, and for the author(s) who must define the classes of product and their conformance criteria.

Some specifications define more than one of the enumerated object types. XForms is an example. It defines: Content, via an XML vocabulary; Content, via named datatypes; Syntax, in the form of a set of functions to supplement the XPath core set; behavior of a processor; behavior of a user agent; a set of events.

Examples & Techniques for this checkpoint.

Checkpoint 2.4. If there are several classes of products, define their relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and discuss the relations and interactions between classes of product and the other dimensions of variability. It is not applicable if there is only one class of product.

Examples & Techniques for this checkpoint.

Guideline 3. Specify conformance policy.

A look at various W3C Technical Reports shows that the term "conformance" is often qualified, resulting in more than one type of conformance. It is important to convey an understanding of what is meant by conformance and how it applies to each class of product as well as each dimension of variability (e.g., modules) if applicable. For example, if the specification defines behavior for more than one class of product, there may be a separate conformance policy for each class. Similarly, if the specification defines modules, there may be a different conformance policy for each module.

Overall, the intent of the WG should be clear.IJ: The previous sentence doesn't add anything. In particular, a reader intending to implement a product in one of the product classes addressed by the specification should know what the WG wants for interoperability among products in the class. The developer should understand what forms, if any, of "product differentiation" are allowed among conformant products. The specification may need to explain how the rules apply and possibly provide examples.IJ: Does "possibly provide examples" conflict with MUST provide examples of 1.4?

Checkpoints

Checkpoint 3.1. Specify any universal requirements for minimum functionality. [Priority 2]

Conformance requirements: the specification MUST include a normative section enumerating the minimal requirements that apply across all identified products of a class.

Rationale: the reader must be able to recognize any minimum functionality, complexity or support that applies to all conforming products of a specific class.

If levels are used (see Guideline 6), the lowest level may represent the minimum set of requirements. If profiles are used (see Guideline 4), there may be different minima for each profile. If modules are used (see Guideline 5), there may be different minima for each module. Furthermore, a module may itself be a minimum (i.e., required) for a particular class of product.

Examples & Techniques for this checkpoint.

Checkpoint 3.2. If special conformance terms are used, include a definition in the specification. [Priority 1]

Conformance requirements: the specification MUST be defined, either by reference or by including the definition in the text.

Rationale: it is necessary to define terms that govern application of the conformance provisions. Ideally, all terms are from QA documents and other existing literature and need only be cited. If special terms are constructed, such as to combine modules and levels or modules and discretionary choices, they need to be defined in the specification.

Examples & Techniques for this checkpoint.

Checkpoint 3.3. Justify any usage of a dimension of variability [Priority 1]

Conformance requirements: a specification MUST justify each Dimension of Variability the specification uses.

Rationale: D.o.V. add complexity to a specification; explaining what's the usage of each of them can help implement and test them better, and can help reviewers understanding their necessity.

References to usage scenarios and requirements are usually a good way to justify the uses of dimensions of variability.

Examples & Techniques for this checkpoint.

Guideline 4. Address the use of profiles to divide the technology.

A profile is a subset of the technology that supports a particular functional objective or a subset of a set of technologies defining how they are required to operate together (e.g., XHTML plus MathML plus SVG).

Profiles can be based on hardware considerations associated with target product classes — for example, SVG Tiny is aimed at mobile phones — or they may be driven by other functional requirements of their target constituencies — for example, a graphical profile tailored for technical illustrations in aircraft maintenance manuals.

The use of profiles to divide the technology is described in the specification, and may or may not be reflected and paralleled by the structure and organization of the specification.

Specifications may define individual profiles, or may define rules for profiles, or both. An individual profile defines the requirements for classes of products that conform to that profile. Rules for profiles define validity criteria for profiles themselves — i.e., if others (users, applications, or other standards) define their own profiles of the standard, then rules for profiles define the constraints that those profiles must satisfy in order to be considered valid profiles of the specification.

For example, XHTML Modularization ([XHTML-MOD], section 3) and Synchronized Multimedia Integration Language (SMIL 2.0), [SMIL20] specifications both define rules for profiles -- what constraints must a profile meet in order to be classified as a "Host Language Profile" or an "Integration Set Profile." SMIL further defines some specific profiles, using the modularization. Separate recommendations -- XHTML Basic [XHTML-BASIC] and XHTML 1.1 [XHTML11] — define specific profiles based on the XHTML modularization.

Checkpoints

Checkpoint 4.1. Indicate whether or not the use of profiles is mandatory for conformance. [Priority 1]

Conformance requirements: a specification

It is not applicable if profiles are not used. IJ: I suggest that statement like the previous be labeled "Normative inclusion/exclusion" as in UAAG 1.0.

For example, is content required to conform to one of the profiles, or is there a concept of conformance of content independent of conformance to one of the profiles? Is a producer (of content) conforming if it generates content that is otherwise valid but does not conform to a profile?

Note: If there is a "full" profile defined — for example, incorporating all of the defined functionality of the specification, including extensibility features — then any valid content, as well as any correct producers and fully capable consumers, might seem to be automatically using that profile. However, profiles (e.g., of content) often include self-identification requirements, and these would have to be observed for conformance of valid content to even a "full" profile.

An example of additional conditions on profiles would be to require that only one profile can be implemented at a time.

Examples & Techniques for this checkpoint.

Checkpoint 4.2. If profiles are chosen, define any minimal requirements. [Priority 2]

Conformance requirements: the specification MUST define for each profile the minimal required features/support for each identified class of product. It is not applicable if profiles are not used.

Rationale: because profile places explicit requirements on each class of product that have specific and often limited operating environments these requirements must be defined for each class of product that is affected.

To illustrate, SMIL 2.0 [SMIL20] has a SMIL 2.0 Language Profile for user agents but also provides a SMIL 2.0 Basic Profile for wireless and embedded devices. The SMIL 2.0 Language Profile requires that a user agent implement the BasicAnimation module but not the SplineAnimation Module. The SMIL 2.0 Basic Profile on the other hand does not require implementation of any of the Animation modules.

Examples & Techniques for this checkpoint.

Checkpoint 4.3. If profiles are chosen, define their relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and document identified relations and interactions between profiles and the other dimensions of variability. It is not applicable if profiles are not used.

Dependency or interrelationship between profiles and modules is common -- XHTML [XHTML-MOD], SMIL [SMIL20], SVG 1.1 [SVG11]. Less often, deprecated features, levels, discretionary choices, or extensions could depend on profiles.

Examples & Techniques for this checkpoint.

Checkpoint 4.4. If profiles are chosen, address rules for profiles. [Priority 2]
Conformance requirements:

if the specification allows the creation of derived profiles IJ: What is the definition of a derived profile?, the specification MUST provide requirements for derived profiles and these requirements MUST be testable. It is not applicable if profiles are not used.

Rationale: well-designed rules for profiles will facilitate that derived profiles are well-specified, and testability will enable an independent tester to verify conformance of a derived profile to the rules.

Note that experience shows that requirements for derived profiles should impose at least these two rules on derived profiles: derived profiles should be specified in a way that meets all the pertinent checkpoints of this document (QA Framework: Specification Guidelines); and, derived profiles should not contradict predefined profiles, if there are any in the base specification.

Examples & Techniques for this checkpoint.

Guideline 5. Address the use of modules to divide the technology.

Modules are non-hierarchical, discrete divisions or functional groupings of the technology.

For example, SMIL 2.0 [SMIL20] defines a module as follows:

A module is a collection of semantically-related XML elements, attributes, and attribute values that represents a unit of functionality. Modules are defined in coherent sets.

Modules generally can be implemented independently of one another — e.g., audio vs. video module. That notwithstanding, it is possible for one module's definition (and therefore implementation) to have explicit dependency upon another module. It is not only possible, but common to implement multiple modules.

Checkpoints

Checkpoint 5.1. If modules are chosen, indicate any mandatory conditions or constraints on their usage. [Priority 1]

Conformance requirements: the specification MUST document any identified mandatory conditions or constraints on their usage. Such conditions include,

It is not applicable if modules are not used.

The conditions or constraints normally will be tailored according to class of product.

Examples & Techniques for this checkpoint.

Checkpoint 5.2. If modules are chosen, define their relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and document any identified relationships and interaction with other dimensions of variability. It is not applicable if modules are not used.

Rationale: often there is dependency or interrelationship among modules, on the one hand, and profiles or discretionary choices on the other. Modules may have levels or deprecated features. Extensions could be defined based on modules.

Examples & Techniques for this checkpoint.

Guideline 6. Address the use of functional levels to divide the technology.

Functional levels — or in common usage, simply "levels" — are used to group functionality into nested subsets, ranging from minimal or core functionality to full or complete functionally. Level 1 is the minimum or core of the technology. Level 2 includes all of level 1 plus additional functionality. This nesting continues until level n, which consists of the entire technology.

Levels may result from progressive historical development and enrichment of the technology in a series of specifications, as in the case of CSS and DOM. Levels could also be defined explicitly in a single edition of the specification, but no examples of this are found in W3C specifications. Rather, it is more common in current W3C practice to use profiles to accomplish this. For example, SVG 1.1 [SVG11] together with SVG Mobile [Mobile [SVG-MOBILE] define three nested profiles — Tiny, Basic, Full — which are each targeted at a specific graphics hardware community (mobile phone, hand-held computer, desktop computer).

See Guideline 4 for full discussion of profiles, including comments on possible profiles-levels relationships. See Guideline 6 for a full discussion of modules, including possible modules-levels relationships.

Checkpoints

Checkpoint 6.1. If levels are used, define their relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and document any identified relationships and interaction with other dimensions of variability. It is not applicable if levels are not used.

Levels can be dependent on, or apply to, modules. Less often, there can be a relationship between levels, on the one hand, and profiles or deprecated features on the other.

Examples & Techniques for this checkpoint.

Guideline 7. Identify the relation between deprecated features and conformance.

A deprecated feature is an existing feature that has been outdated by newer constructs or is no longer viable. Deprecated features should not be used and may be removed in some future version.

IJ: I think it's also important to identify obsolete features and provide alternatives to them. E.g., HTML 4.0 obsoleted a few elements.

After the initial publication of a specification, specification developers may consider the deprecation of a feature (e.g., function argument, element or attribute) defined in the specification. Deprecated features may become obsolete and no longer defined in future versions of the specification. Deprecation of a feature may warn implementers that the feature was a bad idea and it may be withdrawn in the future. Specification developers need to consider the effect of deprecation on all the classes of products that implement the specification (e.g., authoring tools, user agents) as well as the conformance consequences on each class of product. For the purpose of backward compatibility, it may be necessary to specify different requirements for the support of deprecated features for each class of product. For example, authoring tools (producers) would not use the feature, but user agents (consumers) would continue to support it.

Checkpoints

Checkpoint 7.1. Identify each deprecated feature. [Priority 1]

Conformance requirements: the specification MUST document in a normative section each deprecated feature. It is not applicable if there is IJ: are no deprecated feature.

Examples & Techniques for this checkpoint.

Checkpoint 7.2. For each class of product, specify the degree of support required for each deprecated feature and the conformance consequences of the deprecation. [Priority 1]

Conformance requirements: the specification MUST specify the degree of support required for each deprecated feature for each class of product and the conformance consequences of the deprecation. It is not applicable if there is no deprecated features.

For example, a deprecated-features section of MathML 2.0 ([MATHML20], section 7.2.1.2) describes, about deprecated MathML 1.x features, that MathML-output-compliant authoring tools may not generate MathML markup containing deprecated features; whereas MathML-input-compliant rendering/reading tools must support deprecated features.

Examples & Techniques for this checkpoint.

Checkpoint 7.3. If deprecation is used, define its relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and discuss the relations and interactions between deprecated features and all the other DoV.

Examples & Techniques for this checkpoint.

Checkpoint 7.4. Include an explanation for the deprecation. [Priority 3]

Conformance requirements: the specification MUST document each deprecated features with a rationale for deprecation. It is not applicable if there is IJ: are no deprecated features.

Rationale: providing the rationale for deprecating a feature helps implementers and users to understand the motivation for the deprecation, the impact and consequences on current and future implementations, and perhaps insight into its eventual disappearance from the specification.

Examples & Techniques for this checkpoint.

Checkpoint 7.5. Include examples to illustrate how to avoid using deprecated features. [Priority 3]

Conformance requirements: the specification MUST provide an example for each deprecated feature showing how to avoid using it. It is not applicable if there is IJ: are no deprecated features.

Rationale: examples are helpful in providing alternatives or better ways to get the same results. By showing what can be done in place of the deprecated feature will help to get implementers to discontinue use of the deprecated feature.

Note that this checkpoint only makes sense for specifications that define the behavior of a producer.

Examples & Techniques for this checkpoint.

Guideline 8. Define discretionary items.

Discretionary items are defined as deliberate and explicit grants of discretion by the specification, to the implementations, that describe or allow optionality of behavior, functionality, parameter values, error handling, etc.

Discretionary items are often made available in specifications, to give implementers of the technology the opportunity to decide from alternatives when building applications and tools. Discretionary items may be considered necessary because of environmental conditions (e.g., hardware limitations or software configuration, or external systems), locality (e.g., time zone or language), optional choices providing flexibility of implementation, dependence on other specifications, etc.

Discretionary items come in three basic variants:

discretionary choices
a value or behavior may be chosen from a well-defined enumerated set of two or more possibilities;
optional features
a well-defined feature may be supported or not (if supported, then the requirements are clear and unambiguous)
implementation dependent values (or features)
it is open ended and undefined, what set of values an element or attribute may have, or the behaviors of a product that implements a feature, etc

Checkpoints

Checkpoint 8.1. State the circumstances for when discretionary items are allowed [Priority 1]

Conformance requirements: the specification MUST indicate the rationale for the discretionary items and MUST identify by labeling all discretionary items. It is not applicable for specifications that do not have discretionary items.

Doing this helps readers, implementers and testers to find these discretionary items and understand the need for them.

Note that references to use cases and project requirements are usually a good way to justify discretionary items.

Examples & Techniques for this checkpoint.

Checkpoint 8.2. For implementation dependencies, address the allowable differences between implementations [Priority 1]

Conformance requirements: the specification MUST describe any permitted variations or constraints for how the implementation dependency is realized by implementations.

Examples of permitted variations or constraints to be addressed include:

Examples & Techniques for this checkpoint.

Checkpoint 8.3. Indicate any constraints on the number of choices/options that can be implemented for discretionary choices [Priority 2]

Conformance requirements: the specification MUST indicate , for each identified discretionary item, whether zero, exactly one, or several of choices/options are allowed to be implemented. If the allowable number is dependent on other dimensions of variability, the dependencies MUST be stated. It is not applicable for specifications that do not use discretionary items.

Rationale: the test framework can provide a tailoring mechanism so that each implementation is tested with a set of tests tailored to the choices made by the implementer. The tailoring mechanism for choose-exactly-one items will not be the same as the tailoring mechanism for choose-one-or-more items. The tailoring mechanism needs to accommodate modules, profiles, and levels, when they are used, which may affect the range of choices on some discretionary items (and may drop the the range to zero in some situations).

Examples of constraints include mandating that an implementation implement only one choice, implement every choice (allow the user to choose), be allowed to implement none of the choices, or be required to implement one specified value and as many additional values as they wish from an open-ended list. An example of a constraint being dependent on another dimension of variability is a rule that there must be exactly one instance of the item for each profile that is supported..

Examples & Techniques for this checkpoint.

Checkpoint 8.4. Promote consistent handling of discretionary choices. [Priority 2]

Conformance requirements: the specification MUST document the identified policies IJ: Can "document the identified policies" be simplified? for handling discretionary choices

Rationale: this helps identifying IJ: identify where the specification could actually factorize these policies, so that implementations could handle consistently discretionary choices - users have an expectation of what to expect and should be able to count on getting the same results under the same conditions with a given implementation.

Note that the Working Group believes that given identical conditions, the effect of a discretionary choice should be consistent within a single implementation, and thus, that specifications should enforce it.

Examples & Techniques for this checkpoint.

Checkpoint 8.5. If discretionary items are used, define their relationships and interaction with other dimensions of variability. [Priority 2]

Conformance requirements: the specification MUST address and discuss the relations and interactions between profiles and all the other DoV.

Examples & Techniques for this checkpoint.

Guideline 9. Allow extensions or NOT!

An extension to a specification is a mechanism to incorporate functionality beyond what is defined in the specification.

Allowing extensions affects how conformance is defined as well as what conformance claims can be made. Exercise caution in determining the extent to which extensions are allowed or not allowed. Since extensions can seriously compromise interoperability, specification writers should carefully consider whether extensions should be allowed.

Disallowing extensions for any part of the specification is called strict conformance. Strict conformance is defined as conformance of an implementation that employs only the requirements and/or functionality defined in the specification and no more (i.e., no extensions to the specification are implemented). Dimensions of variability (e.g., modules, profiles, levels) are not extensions if the specification defines them or allows them to be defined.

Extensions may be private (often vendor specific) or public (a full description of the extension is public). Private extensions are usually truly private, i.e., valid for a specific implementation or are only known by prior agreement between implementations. Public extensions are extensions in which the syntax, semantics, identifiers, etc. are defined and published allowing anyone to implement the extended functionality.

Specifications allow extensions for various reasons. Extensions allow implementers to include features that they consider to be required by their customers. Also, extensions, often define new features that may migrate into future versions of the specifications. However, the use of extensions can have a severe negative impact on interoperability. Some methods for enabling extension have less impact on interoperability than other methods.

Checkpoints

Checkpoint 9.1. Indicate if the specification is extensible. [Priority 1]

Conformance requirements: the specification MUST state the conditions under which extensions are allowed and disallowed.

IJ: I think checkpoints 9.1 and 9.2 should be combined into one.

Rationale: Implementers and readers of a specification need to know if the specification is extensible. It is equally important to convey the circumstances (i.e., conditions) under which the extensions are allowed or disallowed.

if the specification writer wants to enhance interoperability by constraining implementer extensions, wording in the specification must indicate this.

If extensions are not allowed, then it should be clear to the reader that not only are extensions not allowed, but the circumstances under which they are not allowed. This is strict conformance. IJ: Previous sentence is a repeat of text in intro of GL9. Strict conformance is often imposed on applications or content (e.g., a software program or document instance). This prohibition of extensions could be applied to a specific profile or module, rather than to the entire specification.

Examples & Techniques for this checkpoint.

Checkpoint 9.2. If extensions are allowed, define their scope and constraints. [Priority 1]

Conformance requirements: the specification MUST state

and MUST document the rationale for allowing extensions by referencing use cases and/or project requirements. It is not applicable if the specification does not allow extensions.

Rationale: readers should be able to understand the motivation for the inclusion of an extension and its intended use. Documenting the scope and rationale for extensions helps assess the impact of extensions on interoperability

Examples & Techniques for this checkpoint.

Checkpoint 9.3. Prevent extensions from contradicting the specification. [Priority 1]

Conformance requirements: the specification MUST state that extensions can not negate or change support for required functionality. It is not applicable if extensions are not allowed.

IJ: I think checkpoint 9.3 should be deleted. I think that it's straightforward that if the spec says "A" and someone else says "not A," then anyone that does "not A" doesn't conform.

Requirements in the specification can not be compromised or contradicted by adding extensions.

Examples & Techniques for this checkpoint.

Checkpoint 9.4. Define a uniform mechanism to create an extension [Priority 3]

Conformance requirements: the specification MUST provide a uniform way to define that extensibility is being invoked and MUST provide the syntax to be used to indicate the extension. It is not applicable if extensions are not allowed.

This helps to ensure predictable handling of extensions, that is, its recognition as such and the appropriate actions (i.e., to ignore or to implement).

Examples & Techniques for this checkpoint.

Checkpoint 9.5. Require that extensions be published. [Priority 3]

Conformance requirements: the specification MUST require that the syntax and semantics of the extension be publicly documented. It is not applicable if extensions are not allowed.

Rationale: public availability with a full description allows the extension to be implemented by anyone without prior arrangement. This enhances interoperability by allowing the same functionality to be uniformly implemented across different implementations.

Examples & Techniques for this checkpoint.

Checkpoint 9.6. Require that implementations provide interoperable alternatives to extensions [Priority 3]

Conformance requirements: the specification MUST indicate via conformance requirements that implementations provide a mode under which they produce only conforming content. This checkpoint is not applicable if extensions are not allowed.

Rationale: This checkpoint can be used to ensure that there is a way to produce (generate) only conforming content. It is applicable to specifications that identify producer of content as one of its classes of products.

Examples & Techniques for this checkpoint.

Checkpoint 9.7. If extensions are allowed, define their relationships and interaction with other dimensions of variability [Priority 2]

Conformance requirements: the specification MUST address and discuss the relations and interactions between extensions and all the other DoV.

For example, a specification could define a strict conformance policy for one class of product, while allowing extensions on another class.

Examples & Techniques for this checkpoint.

Guideline 10. Provide a conformance clause.

A conformance clause is a part or collection of parts of a specification that defines the requirements, criteria, or conditions to be satisfied by an implementation or application in order to claim conformance. Typically the conformance clause is a high-level description of what is required of implementations and applications.

Guideline 3, "conformance policy" is related to this guideline. Guideline 3 focuses on the establishment and scope of definition of a conformance policy, while this Guideline 10 focuses (among other topics) on how and where to document it.

Checkpoints

Checkpoint 10.1. Include a conformance section. [Priority 1]

Conformance requirements: the specification MUST document its conformance policy and specific conformance requirements in a dedicated section of the document.

Rationale: having the conformance clause exist as a separate section within the specification makes it clearly identifiable, allowing a reader to find the overall conformance policy, as well as all specific conformance provisions from a single starting point.

Examples & Techniques for this checkpoint.

Checkpoint 10.2. Make normative reference to specifications on which the current specification depends [Priority 2]

A specification depends on another specification when it relies on or requires functionality (or behavior) from the other specification in order to work (function) correctly. This other specification provides a necessary condition or functionality.

Conformance requirements: the specification MUST have normative references to any identified specification it depends on and MUST describe the relationship between the specifications and any identified conformance implications

Rationale: dependence on other specifications affects the conformance boundaries of the current specification, and thereby affects the requirements on conformant products.

The linking parts of the Manual of Style ([STYLE-MAN], section 11.5.1) describe the recommended way of citing an external reference from the prose of a specification, as well as how to construct an entry in its References section.

For example, SVG 1.0 requires that the class of product called "user agent" be consistent with the XML 1.0 Recommendation [XML10] and (conditionally) support Cascading Style Sheets, level 2 [CSS2].

Examples & Techniques for this checkpoint.

Guideline 11. Specify how to make conformance claims.

A specification may differentiate conformance claims by designating different degrees or types of conformance in order to apply and group requirements according to modules, profiles, levels, or priorities. When a conformance claim is linked to functionality, impact and/or incremental degrees of implementation, the term 'conformance level' is often used to indicate the varying degrees of conformance. The WG includes in the specification the way they want people to claim their conformance.

Checkpoints

Checkpoint 11.1. Identify and define all conformance designations. [Priority 1]

Conformance requirements: the specification MUST identify and define all the conformance designations used.

In current W3C practice, a number of different naming conventions are used to label conformance, in cases where there is not a single, monolithic (strict) conformance definition. The naming convention used to label the conformance can provide useful information. Degrees, for example, implies incremental importance or difficulty. This Specification Guidelines document uses "degrees" for example, to refer to three successively more demanding degrees of conformance (A, AA, AAA).

Commonly used conformance designations include categories, degrees, and levels. Use of "conformance levels" is discouraged in new specifications, because of the potential for confusion with "functional levels".

Examples & Techniques for this checkpoint.

Checkpoint 11.2. Provide specific wording of the claim. [Priority 3]

Conformance requirements: the specification MUST provide specific wording of the claim and the specific wording MUST at least include the specification name, its version, the conformance level satisfied and information about the subject that which is claiming conformance and the date of the claim.

Examples & Techniques for this checkpoint.

Checkpoint 11.3. Provide a conformance disclaimer. [Priority 3]

Conformance requirements: the specification MUST provide a conformance disclaimer.

Rationale: although it is possible to prove with certainty when something does not conform, the reverse is not necessarily true. Especially for functional specifications, where a claim goes beyond syntax testing, a claim of conformance is not a guarantee that the claimant is 100% conforming with the specification. A disclaimer can help clarify the meaning of a conformance claim as well as its limitations. For example, this document contains a conformance disclaimer.

Examples & Techniques for this checkpoint.

Checkpoint 11.4. Impose no restrictions about who can make a claim or where claims can be published. [Priority 1]

Conformance requirements: the specification MUST NOT include any restriction about who can make a claim nor where claims can be published.

Claimants (or relevant assuring parties) are solely responsible for the validity of their claims, keeping claims up to date, and proper use of the conformance icons. IJ: "of any conformance icons"; some specs don't have them.

Examples & Techniques for this checkpoint.

Guideline 12. Publish an Implementation Conformance Statement proforma.

An Implementation Conformance Statement (ICS) provides a mechanism whereby a supplier of an implementation of the specification provides information about the implementation in a standardized manner. It is used to indicate which capabilities and options have been implemented, as well as the limitations of the implementation. An ICS usually takes the form of a questionnaire where product implementors report on the conformance of their product to the named specification.

An ICS is useful in disclosing optional functionality and discretionary behavior and values. The results of the ICS can be used to identify the subset of test cases from a conformance test suite that are applicable to the implementation to be tested. This will allow the implementation to be tested for conformance against only the relevant requirements.

The basic and detailed information that an ICS provides can also be used to assess and deduce the interoperability potential of two or more products.

Checkpoints

Checkpoint 12.1. Provide an Implementation Conformance Statement proforma. [Priority 3]

Conformance requirements: the specification MUST either:

Rationale: the inclusion of an ICS may not be applicable to all specifications. A specification's ICS can be thought of as providing a minimal list of items supported by the implementation, capturing information the WG deems necessary to support conformance claims.

An ICS that is part of a specification does not preclude other organizations such as certification organizations, from having their own ICS.

Examples & Techniques for this checkpoint.

Checkpoint 12.2. Require the ICS be completed as part of the conformance claim. [Priority 3]

Conformance requirements: the specification MUST include the ICS as part of its conformance claim requirements. This checkpoint is not applicable, if an ICS is not applicable to the specification.

Rationale: the ICS is coupled with the requirements for making a conformance claim (guideline 11), thus providing specific information about the implementation and substantiating the conformance claim.

Examples & Techniques for this checkpoint.

Guideline 13. Clearly identify conformance requirements.

The checkpoints of this guideline aim to ensure that normative content and conformance requirements are easily identifiable in specifications. It is important that specifications provide unambiguous statements, that clearly define what is required in order to claim conformance and what is optional. It is important also that the conformance statements are easily identifiable as such, and easily locatable. Clarity is fostered by uniformity of structure and style, and consistency of terminology and phraseology.

There is a lot to be said for consistency and clarity within a document - it facilitates the understanding and comprehension of the document. Authors and editors of specifications should already be familiar with the W3C Manual of Style [STYLE-MAN] and Publication Rules (Member-only) [PUBRULES],IJ: may want to switch the order of these; by the way, PUBRULES is expected to become public soon. which help to achieve clarity and uniformity. This guideline builds on those general document conventions, with a particular focus on the presentation and identification of conformance information.

Checkpoints

Checkpoint 13.1. Use conformance key words. [Priority 1]

Conformance requirements: the specification MUST use RFC 2119 keywords to denote whether or not requirements are mandatory, optional, or suggested.

Rationale: Using these keywords helps to identify the testable statements in a specification.

Examples & Techniques for this checkpoint.

Checkpoint 13.2. Distinguish normative and informative text. [Priority 1]

Normative statements are the prescriptive parts of the specification whereas informative statements are for informational purposes and assist in the understanding or use of the specification.

Conformance requirements: the specification MUST distinguish normative text from informative text.

Rationale: it is important that the reader be able to distinguish between normative and informative statements in order to know what is required to claim conformance. SMIL 2.0 is an example, indicating within every subsection whether it is normative or informative, and even separately labelling pieces of subsections that contain both kinds of text.

Examples & Techniques for this checkpoint.

Checkpoint 13.3. Use consistent terminology. [Priority 1]

Conformance requirements: the specification MUST use identical wording to express identical provisions, and analogous wording to express analogous provisions .

Examples & Techniques for this checkpoint.

Checkpoint 13.4. Provide a fast way to find conformance information [Priority 2]

Conformance requirements: the specification MUST provide at least one navigation mechanism that allows the reader to locate by direct access, all conformance-related information that is relevant to the specification. The mechanism MUST minimally locate:

Rationale: A reader must be able to easily identify and locate all the information necessary to understand the conformance policy and related conformance information without having to read the document from cover to cover. A navigation mechanism adds to the usability of the specification.

A table of contents entry is one way to accomplish this. In addition to the minimal required set above, other conformance related information such as the ICS, location of test suites, etc, may be helpful to users and implementers. Also see checkpoints requiring conformance information about the Dimensions of Variability that are used (e.g., Checkpoint 6.1).

Note that having this mechanism working in some way in hardcopy can be very useful for test suite developers.

Examples & Techniques for this checkpoint.

Guideline 14. Provide test assertions.

A test assertion is a statement of behavior, action or condition that can be measured or tested. It is derived from the specification's requirements and bridges the gap between the narrative of the specification and the test cases. Each test assertion is an independent, complete, testable statement for requirements in the specification. Each test assertion results in one or more test cases. Multiple test assertions can be combined to form a test case, in this case one tests multiple facets of a particular behavior.

Checkpoints

Checkpoint 14.1. Provide test assertions [Priority 2]

Conformance requirements: the specification MUST provide a normative list of test assertions stated in it.

In order to enable pointing to test assertions from tests as well as to give a map of the specification from the point of view of tests, use a mechanism for making explicit test assertions in the specification.

Rationale: providing test assertions facilitates and promotes the development of test materials. Tests can point directly to the test assertion. Specific benefits include:

Examples & Techniques for this checkpoint.

Checkpoint 14.2. Provide a mapping between the specification and the test assertions list [Priority 2]

Conformance requirements: the specification MUST provide a mechanism linking each test assertion to the part of the specification it is stated.

Rationale: this allows both to ensure consistency between the specification and the test assertions list and to facilitate building a test suite framework based on the test assertions list.

Examples & Techniques for this checkpoint.

3. Conformance

This section defines conformance of Working Group specifications — i.e., technical reports — to the requirements of this QA Framework guidelines specification. The requirements of this guidelines specification are detailed in the checkpoints of the preceding "Guidelines" chapter, and apply to the technical reports produced by Working Groups.

3.1. Normative sections

The following sections are normative in this document:

Any other section not explicitly marked as normative is assumed to be informative.

3.2. Extensibility

This specification is extensible, that is, adding conformance related information and structure to the document in ways beyond what is presented in this specification is allowed and encouraged. Extensions to this specification MUST not contradict nor negate the requirements of this specification. IJ: Delete previous statement per comment in checkpoint 9.3. For each degree of conformance claimed (I.e., A, AA or AAA), it is allowable to implement more than the checkpoint required to satisfy that degree of conformance. This may be achieved by either satisfying some, but not all of the checkpoints of the next degree of conformance or by implementing additional conformance related features beyond what is specified in this document. For example, claiming to be A-conforming but also satisfying some of the Priority 2 checkpoints and some Priority 3 checkpoints. The rationale for allowing extensions is to enable specification writers to add conformance information or to structure their documents in a way that fits their own specific needs more closely. The guidelines of this specification may not be sufficient enough to meet the needs of all WGs and thus was built to be extended.

3.3. Conformance requirements and test assertions

Within each prioritized checkpoint there is at least one conformance requirement, and there may be more than one. These are prefaced by "Conformance requirements:" and highlighted in a different style. This Operational Guidelines document does not enumerate a list of test assertions. A test assertion can be derived from each MUST requirement in a straighforward manner.

3.4. Conformance definition

This section defines three degrees of conformance to this guidelines specification:

A checkpoint is satisfied by satisfying all of the individual @@conformance requirements@@. Failing one individual mandatory requirement means that the checkpoint is not satisfied. IJ: Is previous sentence required? Mandatory requirements are those that use the conformance keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", or "SHALL NOT".

A specification conforms to the QA Framework: Specification Guidelines at degree X (A, AA, or AAA) if the Working Group meets at least all degree X conformance requirements.

To make an assertion about conformance to this document, specify:

Example:

This specification conforms to W3C's QA Framework: Specification Guidelines, available at http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/, AA-Conforming.

The list of checkpoints of this specification ordered by priority ([SPEC-ICS]) is the Implementation Conformance Statement (ICS) pro-forma for this specification. Any specification claiming a degree of conformance with this specification MUST link to a completed I.C.S.

3.5. Conformance disclaimer

The checkpoints of this guidelines specification present verifiable conformance requirements about the specifications (technical reports) that Working Groups produce. As with any verifiable test requirements, it is also true of these specification requirements that:

  1. Passing all of the requirements to achieve a given degree of conformance — A, AA, or AAA — does not guarantee that the subject specification is well-suited to or will achieve its intended purposes, nor does it guarantee the quality or suitability of test materials produced from the specification.

4. Definitions

This section contains terms used in this specification, with functional or contextual definitions appropriate for this specification. See also [QA-GLOSSARY]. Some terms in this section have been borrowed or adapted from other specifications.

conformance clause
a part or collection of parts of a specification that defines the requirements, criteria, or conditions to be satisfied by an implementation or application in order to claim conformance
conformance level
a variety of conformance designation. Other designations include conformance category, conformance degree, conformance xxx,... "Conformance level" is discouraged in new specifications, because of confusion with "functional level".
deprecated
An existing feature that has become outdated by a newer construct or is no longer viable. Deprecated features should not be used IJ: Hmm, "used" may not be a specific enough term. A spec may encourage a UA to support a feature, but discourage an author from producing it. and may be removed in some future version.
dimensions of variability
the ways in which different products that are conformant to a specification may vary among themselves. In this Specification Guidelines document, the dimensions of variability are used to help organize, classify and assess the conformance characteristics of W3C specifications
discretionary items
deliberate and explicit grants of discretion by the specification, to the implementations, that describe or allow optionality of behavior, functionality, parameter values, error handling, etc.
functional level
a technology subset that is one of a hierarchy of nested subsets, ranging from minimal or core functionality to full or complete functionally.
implementation conformance statement (ICS)
a mechanism for providing standardized information about an implementation of a named specification, usually in the form of a questionnaire on which product implementers report about the product's conformance to the specification. An ICS is used to indicate which requirements, capabilities and options have and have not been implemented.
informative text
text in a specification whose purpose is informational or assistive in the understanding or use of the specification, and which contains no test assertions or conformance requirements.
level
a commonly used shorthand for functional level.
module
a collection of semantically-related elements, attributes, and attribute values that represents a unit of functionality. Modules are non-hierarchical, discrete divisions that are defined in coherent sets.
normative text
text in a specification which is prescriptive or contains conformance requirements.
profile
a subset of a technology that is tailored to meet specific functional requirements of a particular application community. A profile may address a single technology; or, a profile can also group a set of technologies (i.e., from different specifications) and define how they operate together. Profiles may be based on hardware considerations associated with target product classes, or they may be driven by other functional requirements of their target communities.
profiling
a method for defining subsets of a technology by identifying the functionality, parameters, options, and/or implementation requirements necessary to satisfy the requirements of a particular community of users.
strict conformance
conformance of an implementation that employs only the requirements and/or functionality defined in the specification and no more (i.e., no extensions to the specification are implemented).
test assertion
a statement of behavior, action or condition that can be measured or tested(See also QA Glossary [QA-GLOSSARY].)
unconditional conformance
IJ: This is used in HTTP. It means "all requirements met."
use case
a specification mechanism or technique that captures the ways a specification would be used, including the set of interactions between the user and the specification as well as the services, tasks, and functions the specification is required to perform.
usage scenario
an instance of a use case, that represents a single path through the use case. Thus, there may be a scenario for the main flow through the use case and another scenarios for each possible variation of flow through the use case (e.g., representing each option).

5. Acknowledgments

The following QA Working Group and Interest Group participants have contributed significantly to the content of this document:

6. References

6.1. Normative

RFC2119
Key words for use in RFCs to Indicate Requirement Levels, March 1997, available at http://www.ietf.org/rfc/rfc2119.txt.

6.2. Informative

CSS2
Cascading Style Sheets, Level 2, W3C Recommendation, 12 May 1998, available at http://www.w3.org/TR/REC-CSS2/ .
MATHML20
Mathematical Markup Language (MathML) Version 2.0, W3C Recommendation, 21 February 2001, available at http://www.w3.org/TR/MathML2/.
PUBRULES
W3C Publication Rules, available at http://www.w3.org/Guide/pubrules.html (Member-only).
QA-GLOSSARY
Comprehensive glossary of QA terminology. (Under construction, at http://www.w3.org/QA/glossary .)
QAF-INTRO
QA Framework: Introduction, L. Henderson, D. Dimitriadis, K. Gavrylyuk, L. Rosenthal, Eds., W3C Working Draft, February 2003, companion version to this document, available at http://www.w3.org/TR/2003/WD-qaframe-intro-20030210/ .
QAF-OPS
QA Framework: Operational Guidelines, K. Gavrylyuk, D. Dimitriadis, L. Henderson, L. Rosenthal, Eds., W3C Working Draft, February 2003, companion version to this document, available at http://www.w3.org/TR/2003/WD-qaframe-ops-20030210/ .
QAF-TEST
QA Framework: Test Guidelines, K. Gavrylyuk, D. Dimitriadis, L. Henderson, M. Skall, P. Fawcett, Eds., W3C Working Draft, December 2002, available at http://www.w3.org/TR/2002/WD-qaframe-test-20021220/ .
QAIG
Quality Assurance Interest Group of the W3C QA Activity, which may be found at http://www.w3.org/QA/IG/.
QAWG
Quality Assurance Working Group of the W3C QA Activity, which may be found at http://www.w3.org/QA/WG/.
SMIL20
Synchronized Multimedia Integration Language (SMIL 2.0), W3C Recommendation, 07 August 2001, available at http://www.w3.org/TR/smil20/.
SPEC-CHECKLIST
An appendix to this specification guidelines document presents all checkpoints in tabular form sorted in their original order. Available at http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/qaframe-spec-checklist .
SPEC-ICS
An appendix to this specification guidelines document presents all checkpoints in tabular form sorted by priorities. Available at http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/qaframe-spec-ics .
SPEC-EXTECH
QA Framework: Specification Examples & Techniques, available at http://www.w3.org/QA/WG/2003/02/qaframe-spec-extech .
STYLE-MAN
W3C Manual of Style, summarizing the style and publication rules for W3C technical reports, available at http://www.w3.org/2001/06/manual/.
SVG11
Scalable Vector Graphics (SVG) 1.1 Specification, D. Jackson, J. Ferraiolo, J. Fujisawa, Eds., W3C Recommendation 14 January 2003, available at http://www.w3.org/TR/2003/REC-SVG11-20030114/ .
SVG-MOBILE
Mobile SVG Profiles: SVG Tiny and SVG Basic, T. Capin, Editor, W3C Recommendation, 14 January 2003, available at http://www.w3.org/TR/2003/REC-SVGMobile-20030114/ .
WCAG10
Web Content Accessibility Guidelines 1.0, W. Chisholm, I. Jacobs, G. Vanderheiden, Eds., W3C Recommendation, 5 May 1999, available at http://www.w3.org/TR/WCAG10/.
XHTML-MOD
Modularization of XHTML, M. Altheim, F. Boumphrey, S. Dooley, S. McCarron, S. Schnitzenbaumer, T. Wugofski,Eds., W3C Recommendation, 10 April 2001, available at http://www.w3.org/TR/xhtml-modularization/.
XHTML-BASIC
XHTML Basic, M. Baker, M. Ishikawa, S. Matsui, P. Stark, T. Wugofski, T. Yamakami, Eds., W3C Recommendation, 19 December 2000, available at http://www.w3.org/TR/xhtml-basic/.
XHTML11
XHTML 1.1 - Module-based XHTML, M. Altheim, S. McCarron, Eds., W3C Recommendation, 31 May 2001, available at http://www.w3.org/TR/xhtml11/
XML10
Extensible Markup Language (XML) 1.0 (Second Edition), T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, Eds., W3C Recommendation, 6 October 2000, available at http://www.w3.org/TR/REC-xml .

7. Change history

2003-02-10, Last Call WD

This version integrates the resolutions taken by the WG on the issues raised since the last Working Draft; a good set of them have been taken during the QA WG F2F in Seattle. The structure hasn't really changed since the last draft, except that some checkpoints were removed, some were added.

2002-11-08, third published WD

While keeping most of the principles behind the second published WD, this version has re-ordered the guidelines in a more logical way, and takes a more formal approach in the design of CP, where all CP has a set of test assertions. Besides, repetitions have been diminished through factorization, and non-testable or arguable CP have been removed or marked as to be moved as examples and techniques. Finally, it integrates all the issues resolutions agreed during the QA WG Tokyo face-to-face meeting and the weeks following.

2002-08-26, second published WD

Significantly reorganized and revised the first published WD. This version produced as a series of editor's drafts. The changes below are reverse chronological (most recent first), so more recent ones may build on older ones.

2002-05-15 version

First published WD.