W3C Specification Editor Handbook

More details about this document
Latest published version:
https://www.w3.org/guide/manual-of-style/
History:
Commit history
Editors:
Philippe Le Hegaret
Coralie Mercier
Feedback:
GitHub w3c/guide (pull requests, new issue, open issues)
Mailing list
spec-prod@w3.org

Abstract

This guide contains best current practice, written for editors and authors of W3C technical reports. It is a companion to the W3C Style Guide that documents W3C-specific conventions, including terminology, tone, voice, and editorial preferences. It complements the requirements for W3C publications that are in W3C Technical Report Publication Policy.

Status of This Document

This is a preview

Do not attempt to implement this version of the specification. Do not reference this version as authoritative in any way.

This document is merely a W3C-internal document. It has no official standing of any kind and does not represent consensus of the W3C Membership.

1. Introduction

Written for editors and authors of W3C technical reports, this document assumes that the reader is familiar with the W3C Style Guide [when ready, add link via 'localBiblio']. It is a companion to the mandatory Technical Report Publication Policy [PUBRULES], called "pubrules" for short.

Bear in mind that our reports are used as world-class primary reference material. Readability across a wide variety of browsers and platforms is far more important than using jazzy features. At some point, what we write becomes history and is preserved on the web through the W3C Persistence Policy [PERSISTENCE].

2. Validation

Note

It is the editor's responsibility to ensure that documents are valid before requesting publication.

3. Accessibility

Follow the Web Content Accessibility Guidelines (WCAG) 2.2 [WCAG]. See also WCAG 2 Overview [WCAG-Overview] for an introduction to the guidelines. Can simpler words express your ideas? Is your text marked up with structural elements? Are alternatives provided for auditory and visual content? See also evaluation tools.

4. Internationalization

Follow the guidelines in Internationalization Best Practices for Spec Developers [INTERNATIONAL-SPECS] when producing your specification. You might also find it helpful to complete a self-review early in the development process. If your specification touches on more complex issues, you can also reach out to the Internationalization Working Group for guidance.

Internationalization terminology, particularly terms related to Unicode, can be rather precise. To help avoid problems with the need to define these, import the Infra Standard [Infra] standard and Internationalization Glossary [I18N-GLOSSARY]. Use the terms found in these documents instead of creating your own and link your use of these terms to the definitions found in these documents. Instructions on how to do this can be found in an appendix of the Internationalization Glossary.

4.1 Unicode

Use U+XXXX syntax to represent Unicode code points in the specification. These are space separated when appearing in a sequence. No additional decoration is needed.

Note

A code point may contain four, five, or six hexadecimal digits. When fewer than four digits are needed, the code point number is zero filled.

Use the Unicode character name to describe specific code points. Use of the character naming template is recommended.

Unicode assigns unique, immutable names to each assigned Unicode code point. Using these names in your specification when referring to specific characters (along with the code point in U+XXXX notation) will help make your specification unambiguous.

There are cases where doing this is overly pedantic and detracts from usability, but be cautious about being so informal as to impair meaning.

4.1.1 Character naming template

See also Codepoints in Editorial guidelines for i18n docs [I18N-GUIDELINES].

Internationalization specifications use (and we recommend the use of) this template for character references:

<span class="codepoint" translate="no"><bdi lang="??">&#xXXXX;</bdi>
<code class="uname">U+XXXX Unicode_character_name</code></span>
Note

The bdi element is used to ensure that example characters that are right-to-left do not interfere with the layout of the page. The lang attribute should be filled in with the most appropriate [BCP47] language tag to get the correct font selection (and other processing) for a given context. Examples in East Asian languages (such as Chinese, Japanese, or Korean) or in the Arabic script can sometimes require greater care in choosing a language tag.

4.2 Translations

W3C does encourage people to translate the technical reports and helps to track translators and translations.

Make your specification more readable by adding markup to distinguish common words from keywords in your language. Mark up every occurrence. Use translate="no" as an attribute to communicate to translators that the keyword is part of the vocabulary of a formal language rather than part of the natural language text of the document.

Do not invent elements to replace natural language. For example, do not use <must/> and a style sheet to render MUST. Other languages may need grammatical agreement with the sentence's subject, for example, in French, MUST will become DOIT if the subject is singular, or DOIVENT if it is plural. Use standard markup instead.

5. The parts of a Technical Report

5.1 Document title

The title of your document in the document head and on the technical reports index [TR] will read as follows. Optional elements are in square brackets.

Title [(ACRONYM)] ["Specification"] ["Part" Part_Number] [: Subtitle] ["Module"] [(nth "Edition")] ["Version" Version_Number]

See pubrules [PUBRULES] for information about the use of "version" and "edition". "Level" and "revised" are deprecated. Try not to invent a new titling convention.

[Placeholder for soon-published guidance or link to W3C Style Guide section on "titles for documents"]

Only use "W3C" to start the title of your document if it describes organizational aspects of W3C, not to confuse readers about the level of endorsement from W3C (for example, when a document is not meant to become a Recommendation or is still under development).

Note

There exist exceptions to the rule, either historical (such as W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures [XMLSCHEMA11-1]) or to repurpose an acronym (for example, W3C Accessibility Guidelines (WCAG) 3.0 [WCAG-3.0]).

5.2 Editors and authors

5.2.1 Managing changing affiliations

Editor/Author affiliations change over time. Here are examples that illustrate the suggested approach for managing them.

Still editor
Richard Ishida, W3C (and before at Xerox)
François Yergeau, Invited Expert (and before at Alis Technologies)
Jane Doe, MyCompany (and before at ThierCompany, and at HisCompany, and at HerCompany)
No longer editor
Martin J. Dürst (until Dec 2004 while at W3C)
Misha Wolf (until Dec 2002 while at Reuters Ltd.)
Tex Texin (until Dec 2004 while an Invited Expert, and before at Progress Software)
FitzChivalry Farseer (until Oct 2005 while at AnyCompany, and before at ThisCompany, and at ThatCompany)

5.3 Abstract

Give each document an Abstract (a few paragraphs at most) that summarizes what the document is about. The W3C Communications Team may use the Abstract as a whole or in part to publicize your work. Write it for a non-technical audience.

5.4 Status section

The "Status of This Document" section describes the document status and publication context on the publication date. Pubrules [PUBRULES] states the requirements for the status section of each type of technical report through use of customized and boilerplate text.

Since the status section does not change over time, express it in terms that will be valid over time. For example, avoid the word "new". Indicate the anticipated stability of the document while recognizing that the future is unknown. Readers are responsible for discovering the latest status information by following the latest version link, or visiting the W3C standards and drafts index [TR].

The custom paragraph is very important as it actually contains information! In it, you should explain where a part of the energy of the group has been invested. The custom paragraph should help a reader decide "I really should read this draft." This implies that you shouldn't paste it in from somewhere else. It should be very specific to this document.

W3C founder and Web inventor Sir Tim Berners-Lee expressed the goal of the custom paragraph this way, "Don't be afraid of being honest about the relevant techno-political situation." In the custom paragraph, make the case for why someone should read this draft.

In the custom paragraph, include what you would reply to a W3C Member or colleague who asked you such things as:

6. Errata

All Recommendations have errors in them. They link to an errata page that evolves over time. Since the errata page changes over time but a specific version of a Recommendation does not, place the errata page outside of the /TR hierarchy. There is an expectation that documents in the "TR zone" will not evolve over time [PERSISTENCE]. For example, locate errata pages in the portion of the web space dedicated to the relevant working group or activity.

Clearly indicate on the errata page:

On the errata page, list the newest entries nearer to the top.

6.1 Entries on an errata page

For each entry on the errata page, provide:

  1. a unique identifier
  2. the date it was added to the errata page
  3. a classification of the error (for example, editorial, clarification, bug, known problem with the document itself)
  4. a short description of the problem and what part of the Recommendation is affected
  5. any proposed corrections and whether those corrections would affect conformance of documents or software
  6. any normative corrections; see the section on Errata Management in the W3C Process Document ([W3C-PROCESS], section 6.2.4) for more information about normative corrections

Do not remove entries from the errata page; if a correction turns out to be incorrect, just add another entry (with a cross reference).

7. References

7.1 Bibliography extractor

The SpecRef tool, an open-source, community-maintained database of web standards & related references, contains an exhaustive list of references.

7.2 Citation

Reference links (for example, "[XML]") link at least the first mention of a source to the References section and take the form:

<cite><a href="http://www.example.org/example">Full Name</a></cite>
[<cite><a href="#ref-REFNAME">REFNAME</a></cite>]

Parentheses around square brackets can be omitted unless the parentheses would contain a section number.

Reference links occur at minimum at the first mention of the source. Spell out what the reference link refers to at least in the first occurrence. For example:

7.3 Citing a reference from within a document

When linking from a document to an external resource:

  1. ensure that the link text, title, and context indicate you are leaving the document, and
  2. after the link, link to the reference in the references section, and indicate section, page, or whatever is useful in the case where the link is unavailable (for example, when printed).

7.4 References section

7.5 Normative and informative references

See Normative References and considerations by the Team.

8. Revisions

See Revising a W3C Recommendation ([W3C-PROCESS], section 6.3.10) for instructions on modifying a W3C Recommendation.

Note

When a document is revised, the original publication date remains the same (and on the W3C standards and drafts index [TR] as well); see pubrules [PUBRULES] for more detail.

Be careful not to break links in revisions. If your document uses latest version URIs with a fragment identifier, unless those anchors are maintained across versions, links will break.

9. Editing tools

Though the HTML or XHTML version of your specification is always the definitive one, many editors find the use of a tool easier to work with.

The most popular editing tools are Bikeshed and respec.

For help with this process, you can ask the experts on the public mailing list spec-prod@w3.org [SPEC-PROD].

10. Normative material

10.1 Normative & informative sections

It is important that informative (non-normative) material is clearly distinguished from normative material. To this end:

10.2 RFC 2119 Keywords

Adhere to and credit Key words for use in RFCs to Indicate Requirement Levels [RFC2119] (such as "MUST", "MUST NOT", "REQUIRED").

When these key words are used in the RFC sense, make them UPPERCASE, enclose them in the em element, and style them with CSS class of rfc2119 to make the UPPERCASE readable.

Example 9: Using RFC 2119 key words
<em title="MUST in RFC 2119 context"
       class="rfc2119">MUST</em>

.rfc2119 {
  font-style: normal;
  font-size: 0.875em;
}

The author may give rationale if these keywords are not used in the RFC sense.

Where they are not required for interoperation or to limit behavior which has potential for causing harm these key words must not be used to try to impose a particular method on implementers where the method is not required for interoperability.

11. Editorial guidelines

Please refer to the companion W3C Style Guide [link@@] that documents W3C-specific conventions, including terminology, tone, voice, and editorial preferences. The following sections are specific to W3C specifications.

11.1 Linking

11.2 Using examples

11.3 Images

11.4 Markup

11.5 Large documents

Large single files that may be easy to print and search may not be easy to download. For large documents:

12. Internet media types

13. Acknowledgments

Thank you to Karl Dubost (until December 2009 while at W3C). Thank you to Philip Gallo and to Paul Harmon and to E.K. for artwork used in earlier versions. The following people contributed to this compilation:

A. References

A.1 Informative references

[BCP47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc5646/
[CHARMOD]
Character Model for the World Wide Web 1.0: Fundamentals. Martin Dürst; François Yergeau; Richard Ishida; Misha Wolf; Tex Texin et al. W3C. 15 February 2005. W3C Recommendation. URL: https://www.w3.org/TR/charmod/
W3C Link Checker. W3C. URL: https://validator.w3.org/checklink
[CLICK-HERE]
Don't use "click here" as link text. Aaron Swartz. W3C Quality Assurance Activity. 2001. URL: https://www.w3.org/QA/Tips/noClickHere
[css-ui-3]
CSS Basic User Interface Module Level 3 (CSS3 UI). Tantek Çelik; Florian Rivoal. W3C. 7 April 2026. W3C Recommendation. URL: https://www.w3.org/TR/css-ui-3/
[CSSVALIDATE]
W3C CSS Validation Service. W3C. URL: https://jigsaw.w3.org/css-validator/
[HTML]
HTML Standard. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[I18N-GLOSSARY]
Internationalization Glossary. Richard Ishida; Addison Phillips. W3C. 17 October 2024. W3C Working Group Note. URL: https://www.w3.org/TR/i18n-glossary/
[I18N-GUIDELINES]
Editorial guidelines for i18n docs. URL: https://www.w3.org/International/i18n-activity/guidelines/editing
[Infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[INTERNATIONAL-SPECS]
Internationalization Best Practices for Spec Developers. Richard Ishida; Addison Phillips. W3C. 16 July 2026. W3C Working Group Note. URL: https://www.w3.org/TR/international-specs/
[IPRFAQ]
Intellectual Property FAQ. W3C. 2024. URL: https://www.w3.org/copyright/intellectual-rights/
[PERSISTENCE]
Persistence Policy. T. Berners-Lee. W3C. 1999. URL: https://www.w3.org/policies/uri-persistence/
[PUBRULES]
Technical Report Publication Policy. The W3C Team. W3C. URL: https://www.w3.org/pubrules/doc
[REGISTER-1]
Register an Internet Media Type for a W3C Specification. Philippe le Hégaret. 2019. URL: https://www.w3.org/guide/editor/mediatypes
[REGISTER-2]
TAG Position on Use of Unregistered Media Types in W3C Recommendations. N. Mendelsohn. 4 August 2006. URL: https://lists.w3.org/Archives/Public/www-tag/2006Aug/0012
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc2119/
[RFC2606]
Reserved Top Level DNS Names. D. Eastlake 3rd; A. Panitz. IETF. June 1999. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc2606/
[SPEC-PROD]
Public archives of the spec-prod@w3.org mailing-list. URL: https://lists.w3.org/Archives/Public/
[TITLES]
Please use titles, not addresses, as link text. D. Connolly. 10 February 2000. URL: https://lists.w3.org/Archives/Public/www-html-editor/2000JanMar/0103
[TR]
W3C standards and drafts. W3C. URL: https://www.w3.org/TR/
[TRANSLATE]
Translations at W3C. W3C. URL: https://www.w3.org/Consortium/Translation/
[VALIDATE]
W3C Markup Validation Service. W3C. URL: https://validator.w3.org/
[W3C-PATENT-POLICY]
W3C Patent Policy. Wendy Seltzer. W3C. 15 September 2020. URL: https://www.w3.org/policies/patent-policy/
[W3C-PROCESS]
W3C Process Document. Elika J. Etemad (fantasai); Florian Rivoal. W3C. 18 August 2025. URL: https://www.w3.org/policies/process/
[WCAG]
Web Content Accessibility Guidelines (WCAG) 2.2. Michael Cooper; Andrew Kirkpatrick; Alastair Campbell; Rachael Bradley Montgomery; Charles Adams. W3C. 12 December 2024. W3C Recommendation. URL: https://www.w3.org/TR/WCAG22/
[WCAG-3.0]
W3C Accessibility Guidelines (WCAG) 3.0. Makoto Ueki; Alastair Campbell; Kevin White; Rachael Bradley Montgomery; Francis Storr; Charles Adams; Julie Rawe; Giacomo Petri; Hidde de Vries. W3C. 3 March 2026. W3C Working Draft. URL: https://www.w3.org/TR/wcag-3.0/
[WCAG-Overview]
WCAG 2 Overview. URL: https://www.w3.org/WAI/standards-guidelines/wcag/
[XMLSCHEMA11-1]
W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures. Sandy Gao; Michael Sperberg-McQueen; Henry Thompson; Noah Mendelsohn; David Beech; Murray Maloney. W3C. 5 April 2012. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema11-1/