Copyright ©2005W3C® (MIT,ERCIM,Keio), All Rights Reserved. W3Cliability,trademark anddocument use rules apply.
Much effort goes into writing a good specification. It takes more than knowledge of the technology to make a specification precise, implementable and testable. It takes planning, organization, and foresight about the technology and how it will be implemented and used. The goal of this document is to help W3C editors write better specifications, by making a specification easier to interpret without ambiguity and clearer as to what is required in order to conform. It focuses on how to define and specify conformance for a specification. Additionally, it addresses how a specification might allow variation among conforming implementations. The document contains a set of guidelines or requirements, supplemented with good practices, examples, and techniques.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in theW3C technical reports index at http://www.w3.org/TR/.
This document is a Proposed Recommendation (PR) of the W3C. This document has been made available on 29 June 2005 by theQA Working Group of the W3C Quality Assurance (QA) Activity for discussion by W3C members and other interested parties. For more information about the QA Activity, please see theQA Activity statement.
The W3C Membership and other interested parties are invited toreview the document and send comments thru 29 July 2005 towww-qa@w3.org, amailing list with apublic archive. AdvisoryCommittee Representatives should consulttheir WBS questionnaires.
This document is based on theQA Framework: Specification Guidelines, Second Last Call Working Draft of 28 April 2005. The Working Group has addressedall comments received, making changes as necessary. Evidence of interoperation between at least two implementations of this specification are documented in theImplementation Report.
Thechange log contains changes since the previous version. Atable of correspondence maps the Requirements and Good Practices numbers between the former and new numbering schemes.
The Working Group'sPatent disclosure page, in conformance with theW3C PatentPolicy of 5 February 2004, contains patent disclosures relevant to this specification. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance withsection 6 of the W3C Patent Policy.
Publication as a Proposed Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
List of Requirements:
List of Good Practices:
This document is a guide for W3C specification editors and authors. It provides guidelines for improving the conformance related characteristics of specifications. In that respect, this document differs from other W3C process and publication related documents. It addresses the most basic and critical topics with respect to conformance, including how to convey what is required for an implementation in order to conform and how to allow variation among conforming implementations.
The termspecification is used as defined inISO Guide 2-4 [ISO-GUIDE] as meaning a document that prescribes requirements to be fulfilled by a product, process or service. Specifications can be defined in one document or as a coherent set of several documents (seeUmbrella specifications inVariability in Specifications [VIS] for more discussion), and can import requirements of other specifications with normative references.
In addition to conformance, there are several other topics that should be addressed when writing a specification, such as accessibility, internationalization, security, and device independence. These topics are not directly in the scope of this document, but are evoked insection 3.3. Specification authors and editors are encouraged to consider these topics and coordinate their efforts in these areas with the relevant W3C Working Groups.
The goal is to enable Working Groups to produce specifications that are precise, easier to interpret without ambiguity or confusion, and clearer as to what is required in order to conform. Good specifications lead to better and more interoperable implementations and foster the development of test suites and tools.
Everyone benefits from having well-written specifications. Editors may have less rework and thus, fewer issues raised during the development of the specification, and fewer errata once it is finished. Implementers can implement sooner and have a better chance to conform to the specification. Test developers are able to derive unambiguous test assertions. The end users benefit from having interoperable solutions. W3C gains by having recommendations produced with higher quality and reduced maintenance.
It is not an easy task to write accurate, clear, complete, unbiased specifications. It requires planning, organization, and foresight about the technology, how it will be implemented and used, and how technical decisions affect conformance. This document provides a collection of requirements, good practices, examples, and techniques that lead the reader through the decisions necessary to write precise requirements and establish, define, and specify conformance for specifications.
Editors and authors are busy, under pressure to get the specification published, and already have a reading list of W3C documents. A good place to start isW3C Editor's Home Page [EDITOR]. This document can be used as a checklist of things to consider, a how-to guide with examples and techniques that can be adapted, and a reference for understanding conformance concepts and terminology.
The primary audience of this document is editors and authors; however, it is applicable to a broader audience including:
This document makes no distinction between the terms editors and authors and refers to them collectively as editors.
This document is a practical guide to writing a specification, presenting editors with topics to consider. The normative content is contained in a collection of asmall number of Requirements, and somewhat moreGood Practices. As explained in this specification'sconformance clause, the Requirements are necessary for claiming conformance to Specification Guidelines, and the Good Practices are recommendations that will further benefit the quality of a specification.
The overall objective of these requirements and good practices is to facilitate the creation of a complete conformance clause in every specification. Aconformance clause template [CONF-TEMPLATE] is provided to assist editors satisfy the requirements of this document and end up with a conformance clause. Note that for some technical reports (e.g.,The QA Handbook [QA-HANDBOOK],Architecture of the World Wide Web, Volume One [WEB-ARCH]) where conformance is not an issue (e.g., no normative content), the conformance clause may be an explanation of why there is no "conformance to this document" and may be presented in another section rather than in a separate conformance section.
The topics presented herein are inclusive (self-contained) and provide information needed to understand and successfully apply the Requirement or Good Practice, although related information and advanced topics may be referenced.
If in a hurry just read thefirst guidelines section,Specifying conformance — this may be all you need to read in order to reach the expected outcome of adhering to this document, i.e. specifying conformance. It serves as a roadmap to other parts of this document, which help achieve specifying conformance.
This document is organized into a series of guidelines such asSpecifying Conformance andManaging Variability. Each of these guidelines present and explainRequirements andGood Practices.Techniques andExamples accompany each Requirement and Good Practice. The techniques illustrate basic (and non exhaustive) questions or methods to help realize the Requirement/Good Practice and produce specification text. The examples are explanations or extractions from existing W3C specifications that specifically illustrate the point made in the Requirement/Good Practice.
Theconformance clause of this document describes the conformance requirements for claiming conformance to this Specification Guidelines. A specification editor who wishes to write a specification conformant to Specification Guidelines must ensures it satisfies the conformance requirements in the conformance section of this document.
This document is useful as a stand-alone document or as part of a family of QA Framework documents designed to help the Working Groups improve all aspects of their quality practices.
Conformance is the fulfillment of a product, process, or service of specified requirements. These requirements are detailed in a specification as part of a conformance clause and in the body of the specification. Aconformance clause is the section of a specification that identifies all the criteria that must be satisfied in order to claim conformance to the specification.
A clear presentation of conformance is crucial to successful interoperability of implementations. The conformance model and the language used for normative information determine the testability of a specification. They also influence the overall implementation landscape, ranging from a narrow conformance with few allowable variations in implementations to multiple conformance types, resulting in numerous variations in conforming implementations. The model must be chosen carefully, to produce the intended implementation range.
A good conformance clause is the ultimate goal of these guidelines, and is sanctioned by conformance to this specification.
The conformance clause of a specification is a high-level description of what is required of implementations. It, in turn, refers to other parts of the specification for details. Ideally, readers can find any conformance-related information from its conformance clause which serves as a root source.
For some specifications, the conformance model may be straightforward and simple, and theconformance clause template [CONF-TEMPLATE] when completed, may provide most of the information needed in a conformance clause. For others, the conformance model is complex or convoluted, and theAdvanced Topics references may be invaluable in creating the conformance clause.
What does it mean?The conformance clause provides the answers to the important questions: what may conform and how? The conformance clause defines at a high-level, what is required of implementers of the specification. It, in turn can refer to other parts of the specification or other specifications. The conformance clause may partition the technology into functional subsets, such as profiles, modules or other structures. Additionally, it may specify minimal requirements for certain functions, as well as extensibility, optional features and alternative approaches and how they are to be handled.
Why care?The conformance clause defines what is required to claim conformance: as such, it provides communication between the specifications creators, implementers, and users as to what is required, and gives meaning to the phrase, “conforming implementation”. Moreover, it facilitates the consistent application of conformance within a specification and across related specifications. It promotes interoperability.
Related
Simply complete the conformance clause template and put the result into the specification.
To be honest, answering the questions in the conformance clause template may not be a simple matter, and may lead the Working Group into thorny issues. However, these are questions that need to be answered if the specification is to be successful, i.e., if it is to foster multiple high quality interoperating implementations.
If the technology consists of multiple individual recommendations, create a table of contents item for Conformance, and explain that the Conformance section is in another document.
Ruby Annotation [RUBY] specification is an example of a short specification with a detailed conformance clause.
What does it mean? The conformance model is the conceptual framework in which conformance is defined. It consists of and is defined by addressing at least these three topics:
Why care? The key is to communicate to the reader what conformance to the specification is all about. It provides a framework for implementers to know what they need to build in order to conform and the different ways that they could claim conformance. It provides users/buyers a basis to express their requirements.
Related The conformance model overlaps several other topics inQA Specification Guidelines, most particularly:
Figure 1: Conformance Model of Ruby Specification
Ruby Annotation [RUBY] specification defines two types of conformance tied to the content models: Simple and Full. The specification defines six types of products that we could group in three classes of products (content, specification, user agent). For each of them the conformance section defines the requirement to fulfill Simple or Full conformance.
XML 1.0 [XML10] has two classes of products (document and processor), each of those has two conformance degrees (well-formed/valid and validating/non-validating);xml:base
, XML Namespaces and XLink could also be considered as "modules" for XML even though they have not been formally defined as such/
SVG 1.1 [SVG11] has roughly four classes of product (markup fragments with various extents, generators, interpreters and viewers). Some of these classes of product havevarious degrees of conformance (Appendix G: Conformance Criteria [SVG11]) (e.g. static / dynamic for interpreters, static / dynamic for high-quality for viewers); SVG 1.1 also defines modules that are grouped into profiles (tiny/mobile/full).
What does it mean? Normative content is the prescriptive part of the specification, whereas informative content is for informational purposes and assists in the understanding and use of the specification. Content includes all sorts of different forms — not only descriptive prose, but also illustrations, examples, use cases, formulae and other formalisms.
Why care?Conformance of implementations is defined by and measured against normative content. Distinguishing normative content from that which is informative helps to make sure the reader can find the normative content, knows for sure that it is normative, and does not fail to notice a normative section. This good practice aims at the high level partitioning of information (e.g., sections) in a specification.
Related What is mandatory? (Seesection 2.3.2)
XHTML 1.0 [XHTML10] is using the words of RFC2119, but in anextended way (See Definitions [XHTML10]). They define the exact terminology for each word.
The central message of this section — “have a good conformance clause” — has many ancillary details. Because the conformance clause is the foundation for defining and measuring conformance, it is also the basis for assessing conformance claims. One detail worthy of attention is “valid conformance claims”.
Rather than live with the infinite varieties of creative conformance claims that can arise in a vacuum, the specification can be proactive.
What does it mean? It is inevitable that people (e.g., vendors, purchasers) will either claim conformance or demand conformance to a technology. In fact, claiming conformance to a technology may be required in certain situations. Thus, it is important to provide a consistent and unambiguous way to make these claims. Identification of the specification version, class of products, and conformance label are some of the items that could be part of such wording.
Why care?Having a framework, by which to make conformance claims for a particular usage of the technology, minimizes confusion by people who are interested in such claims. Many contexts use conformance claims, including legal as part of regulations, laws, or policies and commercial when selling or buying a product.
Related Conformance claims are closely related to issues of logos and branding. See4. Licensing and branding ofThe QA Handbook [QA-HANDBOOK].
Conformance Claim Template:
Form 1:
Form 2:
On 1 April 2004, My_Processor, version 1.2, 1 January 2004 claims conformance as a “conformant processor” to the FOO Specification 1.0, 29 February 2003, available at http://www.example.org/TR/2003/FOO-20032902
Specification Guidelinessection 4.4 Conformance Claims provides this document's template for conformance claims.
What does it mean? AnImplementation Conformance Statement (ICS) provides information about an implementation to a specification, by presenting in a uniform manner the implemented capabilities (e.g., functions, features) and options as well as limitations of the implementation. AnICS pro forma typically takes the form of a blank questionnaire or checklist for an implementation. It provides the implementer a way to indicate the features implemented. Think of it as an inventory of what has been implemented. Note that a completedICS does not indicate conformance of the implementation. Hence, answering "yes" to indicate a capability is supported does not mean that the capability has been tested.
This Good Practice suggests that the specification itself include anICS pro forma. Providing this pro forma makes it conducive to completing and helps to ensure consistency among completedICS.
Why care? AnICS pro forma provides a concise summary of a specification, i.e., the capabilities and options defined in the specification as well as any defined subdivisions (e.g., profiles, modules) and conformance designations. TheICS provided with the specification is blank, waiting for the implementer to complete. This blank ICS provides implementers and users a quick overview of features defined in the specification. A completedICS not only provides information on what has been implemented (mandatory and optional features), but can also be used to document the presence of extensions or any specializations that have been made. A completedICS provides information useful to facilitate the selection of applicable tests for the particular implementation. However, that is not all. Although theICS content is independent of testing, associating it with conformance tests makes it an essential piece in the reporting of conformance results (see techniques inGood Practice 05).
Related
QA Specification Guidelines provides anICS [QA-SPEC-ICS] to help implementers to asses conformance to this document. Good practices (informative) and Requirements (normative), organized following the sections of the document, are given in a table where implementers can check yes, no or not applicable, and add comments on each of these.
Web Content Accessibility Guidelines 1.0 [WCAG10] provides achecklist of checkpoint which helps the implementer to verify the accessibility of its HTML document. (See checklist of checkpoints in [WCAG10])
What does it mean? This simply puts together the previous two Good Practices. Not only could the specification provide anICS pro forma for implementers, but also the specification could require a link to theICS pro forma from its standardized conformance claim template.
Why care? Providing a completedICS with the conformance claim might help customers and users to determine quickly the implemented capabilities as well as easily verify the level of support for individual requirements of the specifications. Combining theICS with a conformance test suite, can strengthen the claim. Specifically, theICS augmented with links to conformance tests, provides a very nice way to indicate not only what has been implemented, but also, what has been implemented correctly (i.e., conforms to the specification).
Related
The WebCGM specification requires an ICS as part of a valid conformance claim. TheWebCGM checklist describes the conformance of the subject viewer product to the WebCGM specification, according to its performance on the WebCGM Test Suite.
The path to a quality specification begins with its scope. It is critical to convey what the specification is about by describing its intent and applicability. As the specification develops, it is a good idea to revisit the scope to make sure it still reflects the intent of the specification or if it needs to be modified.
What does it mean? Describe what the specification is about. Let the reader know the topics covered in the specification.
Why care? This is one of the first sections a reader reads, so it is important to capture their attention and make sure they understand what the specification is about. It helps to keep the specification content focused. It helps reviewers determine when the specification is over-stepping its mandate and then gives the possibility to revise the specification in development. It also helps readers know the limits or boundaries of the specification and whether it is of interest to them.
Many W3C specifications have included scope prose in the Abstract section. We advocate making the scope a separate section in the body of the specification, making it easy to find and insuring that it is an item in the table of contents.
Good Scope section:
Could have been better:
What does it mean? Illustrate concepts, behaviors, functionality, interaction, etc. through whatever means makes sense, such as examples, use cases, graphics, and sample code. This aids in the understanding of the specification, especially for areas that are innately complex or for which the Working Group has had to explain to its members or the public. Additionally, a set of broad examples and use cases can help to clarify the specification’s scope.
Why care?It is difficult to understand some concepts, behaviors, functionality, or other aspects of a specification without informative interpretations to aid the reader. Providing the reader with additional information beyond the specification’s prose, can only help in achieving implementation and interoperability.
It is up to the Working Group to determine the best way to illustrate the scope and other parts of the specification. Typically, the nature of the specification influences the type of examples, uses cases, graphics, etc. that make sense.
For markup specifications, provide at least one example of each markup construct; illustrate each transformation capability with an example showing input and output.
SVG 1.1 [SVG11]: For each element of the SVG specification, there is a verbose definition of the element, the DTD definition, the attribute definitions and an example. For instance, in the definition of the elementrect
, there are precise examples with the markup to generate a rectangle, a rendering of the markup as an image to help people visualize it and a separate file with the said markup.
What does it mean? For each feature, the Working Group might seek early implementation to demonstrate the feature. If early implementations are not available (e.g., due to commercial constraints,IPR, etc.), it is beneficial to write test cases to illustrate a concept or use case of the technology. This provides a way to to study the interactions between the different parts of the specification and reveal problems. Additionally, these test cases can be incorporated into a test suite.
Why care? Developing a partial implementation (sample code) or test cases can provide an understanding of a concept or feature as well as help to keep it focused. It can save the Working Group and eventually implementers time and resources by:
The OWL Working Group has synchronized the publication of their specification and the publication of theOWL Test Cases [OWL-TEST]. They even went a bit further by making the test case, the necessary step to develop a feature with its requirements.
What does it mean? Clearly identify theclass of products (i.e., type of products or services) upon which the requirements are imposed. If multiple classes of products are targeted by the specification, make sure each is described. Examples of classes of products include: content, producer of content, player, protocol, API, agent, and guidelines.
Why care? It helps define the scope of the specification and is needed when defining conformance. It also helps the reader know the target of the specification – that is, to discover and focus on what they have turned to the document for and avoid what they may find immaterial.
Related
Mathematical Markup Language (MathML) Version 2.0 (Second Edition) [MATHML20] defines output-compliant authoring tools and input-compliant rendering/reading tools.
SMIL 2.0 Language Profile ([SMIL20],chapter 13) has two classes of products: documents and basic useragents.
Theconformance section of Ruby [RUBY] is very explicit and detailed about classes of product. For each of these classes, Ruby conformancesection defines a set of rules, the implementers mustrespect. It defines rules for markup, DTD, document, module, generator,and interpreter.
Rarely written in isolation, a specification inherits from previously defined technologies. It also might set the future of other specifications by defining their base. Thus, it is essential to clearly define what is the nature of the references to these specifications (normative or informative) and the implications of these references for the future of the technology itself.
What does it mean? A specification is rarely developed from scratch: it usually relies on other technologies defined in different specifications. The Working Group has to identify any specifications that define the core technologies of the developed technology.
Why care?For the Working Group, it has an immediate benefit: “do not reinvent the wheel”. Using features already defined in other documents helps to minimize the size of the document that is developed and avoid ambiguities by rewriting the same concepts.
Knowing the parts of the specification based on another technology is of huge benefit for implementers as it clarifies the implications for conformance. It may help them to minimize their work by using conformant libraries already implemented elsewhere.
More generally, it might help readers understand where the technology is coming from and therefore how to use it in combination with other technologies they may already know.
Related
Create a normative references list
Normative References.
Most W3C specifications contain a list of normative references, clearly identified as such, at the end of the document.
What does it mean? Each addition of a normative reference to the specification has deep implications on the technology. Specification editors are responsible for reviewing the consequences in terms of consistency, precision, possible future changes or obsolescence as well as use of the technology under specific conditions.
Why care? A specification defines a technology potentially with a long lifespan. The choice of precise and exact normative references is thus fundamental. Using a normative reference that evolves over time might endanger the specification or other specifications relying on it. A vague reference to the other specification as a whole may leave room for conflicting interpretations or choices among variations permitted by the other specification.
For the Working Group, reducing the degree of ambiguity or variation in the normative references minimizes or removes the possibility of misunderstanding. For implementers, it removes ambiguities and contradictions between different sets of technologies. It creates a stable environment for their development efforts.
For conformance testing to be practical, all requirements needs to be unambiguous, including those imposed by normative reference to other specifications.
Related
Each normative reference to another specification (from W3C or not) should adhere to as many of the following principles as apply:
For the purpose of illustration, the following cases demonstrate some of the problems and implications that may occur for a theoretical technology using the notion of URI or URI-references — this example isnot an exhaustive review of all possible cases. The definition of URI and URI references technology exists in a specification called RFC2396 entitled “Uniform Resource Identifiers (URI): Generic Syntax”.
Let us create a simple definition and give examples of possible problems that arise from this definition:
The value of the attribute is a URI as in [RFC2396]
For instance:
...="http://www.example.org/#foo"...="http://[3ffe:2a00:100:7031::1]/"...="http://666.666.666.666/"...="foo"...="http://www.example.org/~anaïs-nin"
Precise designation and reference: The first example is illegal as the example uses a URI Reference as opposed to only a URI; RFC 2396 clearly distinguishes between those constructs. To make the first example a valid construct, the text should have said:
The value of the attribute is a URI Reference as defined in section 4 of [RFC2396]
Superset of the reference and interpretation: RFC 2396 does not include support for IPv6 literals; RFC 2732 introduced the syntax but it doesnot update RFC 2396. It is not correct to assume that it does even if it seems logical. Do not interpret the intention of the external reference.
As a separate example, any specification that defines the behavior of a class of product that creates XML should address creation of XML 1.1 and anticipate future XML versions. In XSLT, creation of XML is specified by<xsl:output method="xml" version="1.0" />
, and each version of XSLT defines the allowable range of values for the version attribute. Another option is to reference the XML Infoset - for instance, XML Inclusions are compatible both with XML 1.0 and XML 1.1 since they reference normatively the XML Infoset, which is the same for the two versions of XML.
In its sectionReferencing the Unicode Standardand ISO/IEC 10646, the specificationCharacterModel for the World Wide Web 1.0: Fundamentals[CHARMOD] gives a detailed indications for referencing Unicode Standard and ISO/IEC 10646. Specification editors areencouraged to follow these recommendations.
What does it mean? The normative parts of a specification often use technical terms in avery restricted sense; write down the definitions behind these terms. Use the same phrases to convey the same meaning. Repetition, considered a stylistic error in prose, diminishes ambiguity in a technical specification and lowers the threshold of vocabulary needed to understand the specification.
Why care? English (as any other natural languages) is ambiguous, such that a term's interpretation is context dependent. Implementers can achieve interoperability between implementations only if they have the same understanding of the specification; defining the terms used in the normative parts promotes a common understanding that contributes to accurate implementation.
In addition, well-defined terms are reusable in other specifications.
dfn
in HTML to indicate that this is the defining instance of the enclosed term. It will be easier to create a glossary of your terms later on. For example in this document<dfn>Conformance</dfn> is the fulfillment of a product, process, or service of specified requirements.
Cascading Style Sheets, level 2 (CSS2) Specification [CSS20]: The interoperability of the implementation of the CSS2 box model has been problematic, due to the lack of definition for when aproperty is set
(seediscussion on this topic on the www-style Mailing list in March 2001).
What does it mean? Many specifications define more than one type of conformance, where each type is applicable to a different class of product. For example, a language specification may define two conformance types – one for a parser and another for documents (i.e. content). Associate a well-defined label for each different type of conformance.
Why care? Having a label associated with each type of conformance helps interoperability, testing, and branding. It gives implementers a way to identify and discuss their implementations and express the degree to which an implementation has met a specific set of requirements in the conformance clause. It gives test developers a meaningful set of requirements to develop tests for and against which to make conformance verdicts. It gives users a way to articulate their buyer requirements by having a unique way to refer to conforming implementations.
What does it mean? Put the definition of any new term along with its first occurrence inthe text, but make sure that all the definitions are also available froma central glossary section.
Why care?Having the definition in-line makes it easier to read the wholespecification from top to bottom, while having a centralized section ofdefined terms makes it handy to look up a term when looking at aspecific section, or for others to reuse the definitions.
<termdef>
and<term>
to markup the in-line definitions makes it possible to get automatically a glossary with<glist>
.Thanks to XMLspec,XML Schema Part 1 [XML-SCHEMA-1] has both thein-line definition and theglossary
What does it mean? When a definition for a term already exists (e.g. in a differentspecification) and matches the specification needs, reuse the term and itsdefinition without changing it, and provide a reference to the source.
Why care?Reusing existing terms reduces the cost of creating new definitions andmakes it easier for readers already familiar with other specificationsto get into the new one. In addition, conflicting definitions for the same termleads to reduced interoperability.
QA Specification Guidelines reuses the terms defined globally in theQA Glossary [QA-GLOSSARY] and used by all documents of the QA Framework.
What does it mean? Specifications use different styles to convey conformance requirements:RFC 2119 [RFC2119] keywords, imperative voice, descriptive assertions, etc. Tell the readers what styles are used, especially when the specification uses different styles for different parts of the specification.
Why care?It is important for readers to be able to differentiate requirements in the specification from non-requirements in order to either implement or review them.
UsingRFC 2119 [RFC2119] Keywords (MUST, SHOULD, MAY, ...) makes it easy to spot conformance requirements. According to the RFC itself, they should beused only to establish interoperation [WIKI-RFC-KEYWORDS]. They are usually written with distinctive formatting, such as upper case or bold. It is a good idea to create a specific markup for them too. It will be easier to extract conformance requirements and better for accessibility (SeeThe Manual of Style: RFC 2119 Key Words [MANUAL-STYLE]).
A good conformance requirement using RFC Keyword is of the form:subjectrfc_keywordoperation, wheresubject is one of the classes of product,rfc_keyword one of MUST, SHOULD, MAY, andoperation a verb describing one of the operations the classes of product can do (e.g. “send a message”, “process a request”).
Using one of these styles does not preclude using another one in adifferent part of the specification, provided the reader is adequately informed. For instance, when defining a language, it is a good ideato define first its semantics using the descriptive style, and then thebehavior of one (or more) type of implementations using RFC Keywords.
SVG 1.1 [SVG11] Recommendation, wherethe semantics are defined in descriptive style, and the implementationsrequirements with RFC Keywords in theSVG 1.1 Conformance section.
What does it mean? Depending on the way conformance requirements are specified, it may ormay not be clear if an implementation needs to implement all of them oronly part of them. Try to make sure the readers can easily distinguish the different types of requirements.
Why care?If implementers do not have the same understanding of what is required,interoperability is likely to suffer in the end.
What does it mean? If an existing formal language (e.g. DTD, Schemas, ...) is expressive enough to describe the technical requirements of the specification, use it and when the English prose and the formal language overlap, make it clear which one takes precedence in case of discrepancy.Taking such a position doesn't relieve the WG from dealing with any discrepancies aserrata [PROCESS-DOC] as defined in the Process Document.
Why care?When possible, there is an immediate benefit of using a formal language to describe conformance requirements. It minimizes ambiguities introduced by the interpretation of the prose. There is also the possibility of using existing tools for the given language to facilitate testing and validation.
However, prose remains necessary to allow implementers to understand the specification, as well as to express additional requirements the formal language cannot express; this means that there are possible overlaps between the prose and the formal language, in which case, it is important to define which one is the main point of reference in case of disjunction.
Related
XQuery Formal Semantics [XQUERY-SEMANTICS] section 1.1 defines where the document is normative over the grammar specs (separate for XPath and XQuery) and where the grammar specs are normative.
What does it mean?Atest assertion is a measurable or testable statement of behavior, action, or condition. It is contained within or derived from the specification's requirements and provides a normative foundation from which one or more test cases can be built.
Why care? Test assertions facilitate the development of consistent, complete specifications and promote the early development of test cases. Developing or extracting test assertions helps uncover inconsistencies, ambiguities, gaps, and non-testable statements in the specification. It can provide early feedback to the editors regarding areas that need attention. An added benefit is that the assertions are usable as input to test development efforts.
Related
Example 1:SOAPversion 1.2 Test Assertions [SOAP12-TA]
Assertion x1-conformance-part2
Location of the assertion: SOAP 1.2 Part 1, Section 1.2
Text from the specification: The implementation of an Adjunct MUST implement all the pertinent mandatory requirements expressed in the specification of the Adjunct to claim conformance with the Adjunct.
Comments: This statement applies to all assertions in part 2 and as such will not be tested separately.
Example 2:HTML 4.01 Test Suite [HTML401-TEST]
Assertion 6.14-1
Reference: Section 6.14
(must) Script data ( %Script; in the DTD) can be the content of the SCRIPT element and the value of intrinsic event attributes. User agents must not evaluate script data as HTML markup but instead must pass it on as data to a script engine.
Tests: 6_14-BF-01.html
Example 3:XML Test Suite [XML-TEST]
Section: Documents
Type: Well_Formed
Purpose: A well formed document must have one or more elements.
Level 1
Specifications allow for variation between conforming implementations for different reasons, e.g., adaptation to hardware capacities and extensibility. Variability, while it can provide for broader usage of the technology, may impede interoperability. Watch out for excessive variability – that which goes beyond the necessary. Look for a balance between what is needed to allow for flexibility while still achieving the desired interoperability.
This section gives advice on finding the right balance; the readerwill also benefits from reading,Variability in Specifications[VIS] which goes into more details on the analysis ofthis variability.
Subdividing the technology should be done carefully. Too many divisions complicates conformance and can hinder interoperability by increasing the chances of conflict with other aspects of the specification (e.g., other subdivisions). Be smart when dividing the technology so that it is not excessive and provides a positive impact on implementation and interoperability. The benefits of subdividing should outweigh the drawbacks.
Benefits: Subdividing can
Drawbacks: Too many divisions can
What does it mean? It may make sense to subdivide the technology into related groups of functionality to target specific constituencies, address specific capabilities or hardware considerations, provide for incremental implementation, facilitate usability, etc., but consider carefully thecosts/benefits analysis before doing so.
If the technology is subdivided, indicate what subdivisions exist; if it is not, state it in the conformance section.
Figure 2: One possible organization of Profiles, Modules and Levels
Why care? For some specifications (e.g., huge, multi-disciplined), bundling functionality into named or anonymous packages can
RelatedVariability in Specifications [VIS] contains additional information on three methods to subdivide technologies, Profiles, Levels and Modules.
Profile: Mobile SVG Profiles: SVG Tiny and SVG Basic [SVG-TINY] is a profile aimed at mobile phones.
Profile:XHTML Modularization [XHTML-MOD] in section 3 andSynchronized Multimedia Integration Language (SMIL 2.0) Specification [SMIL20] specifications define rules for profiles.
CSS andDOM technologies are examples where levels are the result of progressive historical development and technology enrichment realized in a series of specifications .
Profile/Level combination:Mobile SVG Profile: SVG Tiny, Version 1.2 [SVG-MOBILE] define three profiles - Tiny, Basic, Full - which are nested, like levels, each targeted a specific hardware communities.
Modules:XHTML Modularization [XHTML-MOD] andSynchronized Multimedia Integration Language (SMIL 2.0) Specification [SMIL20] gives good examples of modules usage for a technology.
What does it mean? Regardless of the subdivision technique (i.e., profile, level or module) used, state whether one or more of the subdivisions is required for conformance.
Why care? Subdividing the technology affects and can complicate conformance with all the various combination of choices it provides. Thinking about the various possibilities helps to structure the conformance model, taking into account how the subdivision can affect various classes of products. Implementers as well as users need to know what is mandatory, optional, prohibited or conditional with respect to choosing what to implement and still be conforming.
In the conformance clause, list the subdivisions that are mandatory for conformance. To help build this list, consider the following questions for each subdivision:
Content can be required to conform to one of the subdivisions (e.g., profiles) or it may be conformant to the specification independently of a subdivision. The question arises for a producer (of content): is it conforming if it generates content that is otherwise valid but does not conform to the subdivision.
XHTML Modularization [XHTML-MOD] defines minimal requirements for including certain basic modules when designing an XHTML Modularization-conformant document.
What does it mean? This is a corollary tothe Requirement above. Beyond being mandatory or not, subdivisions usually have conformance consequences due to minimal or new requirements, restrictions, interrelationships, and variability. As part of the conformance clause, describe the constraints associated with each subdivision.
Why care? Creating subdivisions can get complicated, not just for the specification editors but also for implementers who have to choose from the set of subdivisions. Well-designed subdivisions that convey the conditions, constraints, interrelationships, etc. can improve the clarity and understanding of the specification, conformance to the specification, and facilitate implementation and interoperability.
In the conformance clause, describe the conditions or constraints on subdivision usage. To help accomplish this, model or graph the subdivisions indicating the following that applies:
Synchronized Multimedia Integration Language (SMIL 2.0) Specification [SMIL20] has aSMIL 2.0 Language Profile for user agents (See section 13 [SMIL20]) but also provides aSMIL 2.0 Basic Profile for wireless and embedded devices (See section 14.3 in [SMIL20]). The SMIL 2.0 language Profile requires that a user agent implement theBasicAnimation
module but not theSplineAnimation
Module. The SMIL 2.0 Basic Profile on the other hand does not require implementation of any of the animation modules.
What does it mean? If the specification defines profiles of the technology and allows other profiles to be developed outside of the specification itself, then provide the rules for creating these derived profiles. These profile rules provide instructions for building profiles (e.g., requirements on structure, functionality, encoding, etc.). Derived profiles should not contradict predefined profiles, if there are any in the base specification.
Why care? Well-defined rules facilitate the creation of derived profiles that are well specified, implementable, testable, and can foster a better interoperability across profiles. If these rules are defined and followed, then the derived profile would conform to the specification.
Related
WebCGM 1.0 [WEBCGM10] definesrules to create Profiles (See section 1.2 in [WEBCGM10])
Options in specifications provide implementers the freedom to makechoices about
These choices, also calleddiscretionary items, give implementers of the technology the opportunity to decide from alternatives when building their applications and tools. They describe or allow optionality of behavior, functionality, parameter values, error handling, etc. They may be considered necessary because of environmental conditions (e.g., hardware limitations or software configuration), locality differences (e.g., language or time zones), dependencies on other technologies, or the need for flexibility.
Although there are perceived benefits to providing optional features, there is also a downside: optional features increase the variations that can exist amongimplementations. The greatest way to undo the utility of a specification is with too many optional features. Different implementations may use different combinations of optional features. This makes comparisons betweenimplementations difficult as well as complicates conformance testing andincreases the chance of non-interoperable implementations.
A conciseXSLT 1.0 [XSLT10] example: the specification grants implementers separate discretion about all of the following aspects of creating attributes in the output:
QName
.In each case, one prescribed behavior exists for an implementation that chooses not to raise an error. Thus, the six separate binary choices give rise to 64 different possible behaviors for conformant processors. Typically, an implementer would be content to make a more global choice about raising errors when there is an attempt to create non-well-formed XML results.
What does it mean? Examine the reason for the optional feature - is it to address a real, existing need? Should it really be optional or made a mandatory part of the specification? Be careful not to provide optional features in anticipation for something that sounds like a good idea but whose implementation is improbable - ask the implementers if they ever plan to need this. Think about the implications of both implementing the optional feature and of not implementing it. Do not make something an option just because the Working Group cannot decide on what to do or cannot reach consensus. As the specification progresses, consider removing unimplemented features.
Why care? A concise list of optional features helps to keep the specification focused and greatly increases the likelihood of obtaining interoperable solutions. Ensuring that only necessary optional features are contained in the specification also makes the job of the implementer easier and reduces costs.
As part of its exit criteria for Candidate Recommendation, a Working Group created a set of tests to "test the specification". The tests were able to show where there was need for optionality (e.g., diversity among implementations and flexibility justified) and where it was possible to narrow the choices (e.g., implementations used a much narrower set of values than those permitted).
What does it mean? When introducing an optional feature in the specification, label it as such, so that it is easy to find all the optional features defined in the specification. If there are no optional features, state so in the conformance section.
Why care? Options can be useful, but non-judicious use of optional features increases the variability among conforming implementations. In order to minimize the unnecessary optionality, it is a good idea to provide an easy way to identify them. The use of labels for optional features also helps in constructing pro forma conformance claims, comparisons between two implementations, reports to the W3C Director about implementations, etc.
There are many ways to tag options. Any technique that distinguishes the optional feature from the required feature is acceptable. Some possibilities include:
What does it mean? Provide as much information as possible to narrow the allowable choices and to increase predictability. For implementation dependent values orfeatures, if possible, provide a range or set of permitted values rather thanleaving it completely open.
Discuss the implications of either using the optional feature or not. It may be helpful to provide rationale for choosing one option over another or for not using the option at all. Consider the unintended consequence of the optional feature - on other optional features, other parts of the specification, on other specifications.
Why care? Narrowing choices and increasing predictability enhance the likelihood of interoperability since the implementer chooses from a reduced sample space. Narrowing choices, providing more information, and eliminating incorrect choices increases the chances of correct implementations. An enumerated list of values is one way to constrain the choice of optionality.
For optional features, especially enumerated lists, make sure to indicate the number of choices/options available for implementation. Specifically, can none, exactly one, or several of the allowable choices be implemented? Does this number depend on other parts of the specification or other chosen options?
Questions to consider include:
To accommodate changes in technology and information on the Web, aspecification can be designed for extensibility. A specification isextensible when it provides a mechanism to allow an external party to createextensions.Extensions incorporate additional features beyond those defined in the specification. However, extensions can compromiseinteroperability if there are too many differences between implementations.Features specifically designed to allow new functionality mitigate the impact of extensions. These features provide a "standard wayto be non-standard" by including hooks, conformance rules, or othermechanisms by which new functionality may be added in a conforming way, designated asextensibility mechanism.
What does it mean? Extensions might be encouraged or discouraged by the Working Group. There is a benefit to addressing the value or danger of using extensibility for the given technology. Formalizing the position of the Working Group by a clear defined section and prose removes ambiguities for the specification users about the possibility of developing extension or not. This section should at least address whether the specification is extensible or not.
Why care? Implementers will most likely want to extend the functionalities defined in the specification, if they have specific needs not covered by it. Defining clearly how to hook these extended functionalities into conformance implementations helps ensure consistency in the definition of extensions. This leads to predictable handling of extensions and minimizes issues such as interoperability problems, minimal support, and harmonious future development.
The Working Group may consider that the technology is complete, self-sufficient and does not need to be extensible. In this case, it is necessary to write this clearly in the specification and to explain why the technology is not considered extensible. It might be just for the social benefit of the community to ensure a maximum interoperability.
Related
Extensions.
The specificationCSS3 module: Syntax [CSS3-SYNTAX] has addressed the topic ofextensions for CSS 3. The specification clearly identifies extensibility in the table of contents and there is a specific section for it.
What does it mean? Extensions increase variability between implementations. Defining a mechanism helps to ensure the definition of extensions are consistent.This leads to predictable handling of extensions, including the ability to take appropriate actions (e.g., do the extension, ignore, or take a fallback behavior).
Why care? By planning for extensions and designing a specification for extensibility, there is less chance that extensions will interfere with conformance to the base specification and a better chance at achieving interoperability. Conversely, there may be areas in a specification that would not benefit from extensibility and extensions are strictly forbidden (e.g., permissible characters inXML 1.0 names for elements and attributes [XML10], most of the built-in data types inXML Schema Part 2 [XML-SCHEMA-2]). This is an example of strict conformance. Conformance of an implementation that employs only the requirements and/or functionality defined in the specification and no more definesstrict conformance .
Reasons for designing extensibility into a specification include:
Technology andapplication needs dictate the best strategy for enablingextensibility.
When designing for extensibility, it can get complicated. Points toconsider that can affect design decisions include, but are definitely not limited to, the following topics.
XSLT 1.0 [XSLT10] providesextension mechanisms that allow an XSLT style sheet to determinewhether a XSLT processor by which it is being processed:
It defines two Boolean functions:function-available (QName)
andelement-available (QName)
that must be present in every implementation. These functions inform the XSLT processor that there is an extension, therefore the XSLT processor can return a value of false and provides handling instructions (e.g., signal an error, perform fallback and not signal error), if the extension is not available.
WSDL 2.0 [WSDL20] definesbinding extension elements which are used to provide information specific to a particular binding. It is a two-part extensibility model based on namespace-qualified elements and attributes. It provides the syntax and semantics for signaling extensions. Extension elements can be marked as mandatory, meaning that they must be processed correctly by the WSDL processor - i.e., either agree to fully abide by all the rules and semantics signaled by the extension or immediate cease processing (fault).
CC/PP exchange protocol based on HTTP Extension Framework[CCPP-EXCHANGE] defines a HTTP extension to exchangeCC/PP descriptions effectively. The CC/PP exchange protocol conforms toHTTP/1.1 and is a generic extension mechanism forHTTP 1.1[HTTP11] designed to inter-operate with existing HTTP applications. The CC/PP exchange protocol uses an extension declaration to indicate that an extension has been applied to a message and possibly to reserve a part of the header namespace. It provides rules for which of theHTTP Extension Framework [HTTP-EXTENSION] extension declaration strengths and extension declaration scopes to use and defines the syntax and semantics of the header fields.
OWL Reference [OWL-REF] is a vocabulary extension ofRDF Semantics (Seesection 6 in [RDF-MT]). OWL imposes additional semantic conditions on RDF called semantic extensions of RDF. These semantic extensions conform to the semantic conditions for simple interpretations described in the RDF Semantics Recommendation. The OWL semantics is consistent with RDF semantics, but OWL when understood as RDF is "incomplete" versus the same OWL when understood as OWL. Thus, by understanding OWL, a processor learns more and nothing learned contradicts what the processor learnt by RDF alone.
What does it mean? Include in the specification a warning to those who are creating extensions that extensions should not contradict or negate conformance to the original specification. Extensions can be created in different contexts: directly by implementers, in other specifications, etc.
Why care? Conformance should be independent of whether there is an extension or not – if it conformed without the extension, then conformance should hold true with the extension.
Include statements in thespecification such as:
InXSLT 1.0 [XSLT10], extension attributes (from other namespaces) can be present on the official XSLT elements, but they are prohibited from changing the specified behavior within the detectability of conforming behavior. Thus, an extension attribute can cause the element to perform faster but cannot change the result.
TheCSS2.1 [CSS2.1] specification defines the notion ofvendor-specific extension.An initial dash or underscore is guaranteed never to be used in a property or keyword by any current or future level of CSS. Thus typical CSS implementations may not recognize such properties and may ignore them according to the rules for handling parsing errors. However, because the initial dash or underscore is part of the grammar, CSS2.1 implementers should always be able to use a CSS-conforming parser, whether or not they support any vendor-specific extensions.
What does it mean? For each class of product affected by an error condition, include error-handling instructions for when an extension is not available or understood.
Why care? When using a strict conforming application, users might have to deal with documents, data considered invalid because they contain errors, or extended syntactically. Developers need to know what is the expected behavior of the application in such context.
There are typically two approaches: (see section4.2.3 Extensibility from Architecture of the World Wide Web, Volume One [WEB-ARCH])
mustUnderstand
attribute; in this type of mechanism, a processor encountering a syntax token not defined in the specification is required to know how to process the said token or must fail for the whole unit where the token appearsmustIgnore
attribute), where a processor not knowing how to process an unknown syntax token must skip part or the totality of the unit where the token appearsA good way to handle these two approaches is to have a way in the syntax to distinguish which behavior is expected (e.g.,mustUnderstand
/mustIgnore
attributes in SOAP 1.2). Which policy to choose depends heavily on the importance of theprocessing of the data, the user experience of applications based on thesaid format, etc.
Do not forget to address all the classes of products. For example, an authoring tool and a rendering tool might behave in different ways.
Ruby Annotation [RUBY] Specification defines whatparts must be ignored and displayed (See section 1.2.2 in [RUBY]) when an unknown element is met.
HTML 4.01 [HTML401] defines the behavior of user agents with regards toinvalid documents (See section B.1 [HTML401])
The need for deprecation comes about when there are features (e.g., function argument, element, attribute) defined in the specification that have become outdated and are being phased out, usually in favor of a specified replacement. It may mean for instance that the feature is still there and functional, but
From a user point of view, a deprecated feature is one that should not be used anymore, since it may be removed from future versions of the specification. Deprecated features are no longer recommended for use and may become obsolete and no longer defined in future versions of the specification.
What does it mean? If the specified technology has already been published in a previous version of the specification, indicate the features from the previous version now deprecated or state in the conformance section that no features were deprecated.
Why care? It helps implementers as well as users know which features may become obsolete in future versions of the technology. This gives them the opportunity to adjust their implementation to phase out the relevant features, and provide new ways to accomplish the same task.
Related
HTML 4.01 [HTML401]: The specification has a full list ofelements andattributes. The deprecation status appears in both lists. There is an entry in the table of contents to these two lists. Each element/attribute has a link to its definition in the specification.
Namespaces in XML 1.1 [NAMESPACES11], Section 2.2.2Use of IRIs as Namespace Names discusses the deprecation of relative IRI references, although the information is difficult to find.
What does it mean? By deprecating a feature, the Working Group indicates its desire that the feature disappear from a future version of the specification. The motivation may be to convert an old feature to a newer one or to remove an old, dangerous, redundant or undesirable feature. Regardless of the reason, it is important to define the affect this has on implementations that may encounter this feature (e.g., consumer products such as user agents or producer products such as authoring tools). How will the user agents or producer products tolerate use of the deprecated feature? Will it signal an error or a warning? Typically, use of a deprecated feature would not affect a consumer (e.g. user agent), while a producer (e.g. authoring tool) should issue a warning.
Why care? Defining how deprecated features are handled, provides a smoother transition for the users of the specified technology and ensures more consistency of the behavior across implementations. It is also particularly important for implementations that need to support different versions of the specification.
For instance, the specification may require that an implementationsupports both the features of the new and the old specifications, orsuggest a converting mechanism.
InMathematical Markup Language (MathML) Version 2.0 (Second Edition) [MATHML20],MathML2.0section 7.2.1.2 describes deprecated MathML 1.x features in terms ofMathML-output-conformant authoring tools, MathML-input-conformantrendering/reading tools, and MathML-roundtrip-conformant processors.
HTML 4.01 [HTML401]:In the conformance section of HTML 4.01, there is the definition of deprecation and whatuser agents should do. The behavior for other kind of products is undefined.
User agents should continue to support deprecated elements for reasons of backward compatibility.
What does it mean? Deprecating a feature implies that its use is discouraged, often because there is a better technique available to achieve the same result. For each deprecated feature, it is necessary to explain how implementers and users can avoid using it. It might be helpful to give additional information providing insight into the deprecation motivation.
Why care? Examples and information about each deprecated feature help users smoothly evolve toward the new version of the technology and understand its benefits. This enables a faster adoption of the technology.
It helps implementers understand the rationale for implementing the new technology, to implement an alternative mechanism, and to tool tips or conversion scenarios to help users with the transition.
Namespaces XML1.1 [NAMESPACES11] deprecation of IRI references includes a link to thedeprecation ballot results,providing background information on the proposal to deprecate, what thismeans with respect to conformance to XML 1.0 and Namespaces as well as the affect on other specifications (i.e., DOM, XPath).
What does it mean? If the specified technology has been published in a previous version of the specification, indicate the features from the previous version now obsolete, or state in the conformance section that no features were made obsolete.
Why care? It gives a clear message to users and implementers that obsolete features are forbidden and not part of the specification anymore. It helps avoid the creation of documents mixing old and new techniques that would be invalid.
It also helps avoid name clashing. When creating an extension to a technology, implementers are likely to use syntax token for their extended features name. Giving the name of obsolete features helps implementers avoid using the names of previous features that are now obsolete.
Related
HTML 4.01 [HTML401]: The specification has a full list ofelements andattributes. The obsolete status appears in both lists. There is an entry in the table of contents to these two lists. Each element/attribute has a link to its definition in the specification.
HTML 4.01, Appendix A: Changes lists obsolete elements and suggests an alternative element for use.The following elements are obsolete:
LISTING
,PLAINTEXT
, andXMP
. For all of them, authors should use thePRE
element instead.
What does it mean? For each class of product affected by an error condition, address error handling. For instance: for a language, address what effect an error (be it syntactic orsemantic) in the input has to a processor of this language; for a protocol, address how a party to this protocol should behave whena bogus message is received; for anA.P.I., indicate what exceptions are raised.
Why care?There are many reasons a system may fail; to make a technology reliable,it is crucial to define how it should react to bogus input or conditions.Defining error handling also makes it possible for a user of thetechnology to react appropriately to the error condition.
Different methodologies exist to handle errors in a technology:
InHTML 4.01 [HTML401], the specification does not define an error handling policy, although it encourages a"mustIgnore" policy.
Cascading Style Sheets, level 2 (CSS2) Specification [CSS20], the specification relies on awell-defined "mustIgnore" policy.
Document Object Model (DOM) Level 3 Core Specification [DOM-CORE-3] useswell-defined exceptions and error values.
XML 1.0 [XML10] is well-known for itsstrictness with error conditions, where an ill-formed XML document must not be processed.
HTTP 1.1 [HTTP11] specification defines a set of well-known error, standardized through theirerror codes.
TheXSLT 1.0 specification [XSLT10] allows aprocessor to recover to some of the defined errors.
As all editors know, the work is not finished when the writing is completed. In fact, various review and checks of all W3C documents are required prior to their publication and advancement. Aside from the W3C Process and publication rules and before Last Call reviews, many other techniques allow for improvement of the quality and clarity of the document. Many of these things can be an integrated part of the specification development. Ensuring a quality document prior to external reviews can save time and energy in that the Working Group may get fewer comments and issues to resolve.
In 2004, QA Working Group documents entered Candidate Recommendation prior to a thoroughquality review, resulting in a huge number of issues to resolve and theeventual retreat back to Working Draft for major revisions. Many of thecomments could have been prevented, such as inconsistency and incompleteness of the document (e.g., links to supplementary materials that did not exist or were not complete, overlapping and conflicting requirements), undefined terminology, and unimplementable requirements.
Define (formally or not) an internal process for reviewing and developing new parts of the specifications, and how they appear in the drafts published as Technical Reports.
The more the specification work is organized, the more chances to move smoothly across W3C Process, and to have a better final product. Setting up an internal publication/review process allows avoiding recurrent errors in the document, and allows a wider participation to the editorial work, making it possible to develop the specification faster.
Make it fun to do quality control on the specification, by providing tools and templates. For instance, at the start of the work on the specification, create guidelines to help Working Group participants progress on the technology and write submissions for the specification.
QA Specification Guidelines: For editing each Good Practice and Requirement ofQA Specification Guidelines, atemplate and a method were developed to make the edition of each part easy to follow and discuss by the QA Working Group and easy to incorporate in the final document for the editor.
Not only should the Working Group review each part of the technology before publication, it should also review it during the editing phase. It helps the Working Group to identify missing pieces, spelling mistakes, ambiguities, dependencies. With a well-defined review process inside the Working Group, it should not be difficult to accomplish this task.
A Working Draft published with incomplete or very raw sections will probably cause the Working Group to receive many comments.At best, the Working Group will spend much time answering them, or at worst, the incomplete text will go unnoticed and appear in the final Recommendation. So when publishing a version with incomplete sections, make it clear
ForQA Specification Guidelines, atemplate ([QA-SPEC-TEMPLATE], archived mail) was produced to guide authors, ensuring that each requirement and good practice was written consistently and addressed the same set of information. Upon completion of a requirement or good practice, the text was circulated to the entire Working Group for comments. At the same time, a specific participant of the Working Group was assigned to review the text. This ensured that at least someone in the Working Group had the reviewing responsibility and it would not fall through the cracks. Multiple authors produced theQA Specification Guidelines, utilizing a template.
First and foremost, W3C specifications need to frame and definetechnologies that meet the requirements of the particulardeliverable, fulfill the charter of the Working Group, and advancethe Mission of the Consortium.
The Mission of the Consortium involves extending the exchange ofinformation through the Web to everyone. Thus the requirements ofAccessibility, Internationalization and Device Independence aregeneral requirements that must be considered in the specification ofall Web technologies.
TheW3C Web Accessibility Initiative (WAI is a Domain of the Consortium that pursues accessibility of the Web through technology, guidelines, tools, education and outreach, and research and development. Web accessibility depends on several components working together.Essential Components of Web Accessibility shows how the WAI guidelines address these components and shows the role specifications play in making the Web accessible. Specification developers should consult theTechnical Reports page for an up-to-date profile of W3C publications in all areas. In addition, theWAI Home Page is a helpful starting point.
For some further suggestions on how User Interface formats cansupport these requirements, authors may wish to consult the WorkingDraftXML Accessibility Guidelines [XAG].
Similarly, the Working Group should make sure the defined technology iscompatible with internationalization, i.e. is not specific to aparticular language or culture. The benefit of addressinginternationalization aspects in a specification is to ensure that thedefined formats and protocols do not create barriers for languages,writing systems, character codes, and other local conventions employedby end users of the technology.
For information on interoperable text manipulation for text defined in aspecification, refer to theCharacter Model for the World Wide Web [CHARMOD].For other information about specification "internationalization", referto theW3C Internationalization (I18N) Activity.
Finally, a specification of a Working Group should support deviceindependence to the maximum extent possible and appropriate, to providediversity of interaction with a technology by people. The benefit ofaddressing device independence in a specification is the increasedlikelihood that a specification can be accessed from any device, in anycontext by anyone.
For information about specification device independence, refer to theW3C Device Independence Summary.
For each of these considerations, a Working Group should considerdesignating a participant to monitor their applications to thespecification at the earliest point possible and to be the point ofcontact with the relevant W3C Working Groups to seek feedback on theadopted solutions.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY ", and "OPTIONAL" are used as defined in RFC 2119 [RFC2119] in this conformance clause. Occurrences of these words in bold lowercase have normative implications. A specific markup has been added to the text.
The conformance model of the QA Framework: Specification Guidelines is very simple.
The conformance requirements of this document found in the Requirements and in the Good Practices. The Requirements are written in the imperative voice and denote mandatory conformance requirements. The are equivalent to the familiar MUST statements in the RFC2119 style. In addition to Requirements, this document contains Good Practices. Good Practices use the same imperative voice, but areoptional. They are equivalent to SHOULD or RECOMMENDED statements in the RFC2119 style. Their implementation or non-implementation does not affect conformance to this Specification Guidelines document, but it is recommended to implement as many as possible, as the quality of the specification will benefit.
For a specification to be Specification Guidelines conformant, all Requirementsmust be implemented.
One way to satisfy the Requirements and Good Practices is to implement one or more of the suggested techniques given for each Requirement and Good Practice. Note that this is not the only way to satisfy the Requirement or Good Practice. An Implementation Conformance Statement (ICS) provides assistance in keeping track of implemented Requirements and Good Practices. It takes theform of a checklist [QA-SPEC-ICS]. If all the Requirements are checked on the ICS as being satisfied, then conformance can beclaimed as detailed below.
The Conformance section, the Normative References section, the Requirements, and the Good Practices are the normative parts of this specification. All the other parts are informative. The following list indicates the normativity of the guidelines subsections.
Part | Status |
---|---|
Requirement | Normative required |
Good Practice | Normative optional |
What does this mean? | Informative |
Why Care? | Informative |
Techniques | Informative |
Examples | Informative |
This specification is extensible. That is, adding conformance related information and structure to the document in ways beyond what is presented as Requirements in this specification, is allowed and encouraged. Extensions to this specificationmust not not contradict nor negate the requirements in this specification.
To claim conformance to theQA Framework: Specification Guidelines, Working Groupsmust specify:
You can claim conformance to this document by using this conformance claim and replacing the content holders delimited by square brackets by the appropriate values:
On[date of the publication], this specification[name of the specification] published at[URI of the specification], edited by[name of the publishing entity], is aSpecification Guidelines conformant specification, April 28, 2005 published at http://www.w3.org/TR/2005/WD-qaframe-spec-20050428/, as detailed in the Implementation Conformance Statement published at[URI of the completed ICS].
The following QA Working Group and Interest Group participants havecontributed significantly to the content of this document:
The following references have been inspirational to the ideas captured in this document.