23
Copyright © 2026 World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply.
This
manual
is
a
guide
containing
contains
best
current
practice,
written
for
editors
and
authors
of
W3C
technical
reports.
No
requirements
for
It
is
a
companion
to
the
W3C
publications
are
in
this
document.
All
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
.
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.
Written
for
editors
and
authors
of
W3C
technical
reports,
this
document
assumes
that
the
reader
is
familiar
with
the
W3C
Style
Guide
for
Online
Hypertext
[
STYLE-GUIDE
].
[when
ready,
add
link
via
'localBiblio'].
It
is
a
companion
to
the
mandatory
Technical
Report
Publication
Policy
[
PUBRULES
],
called
"pubrules"
for
short.
Following
the
advice
in
this
manual
has
benefits:
Non-native
English
readers,
native
English
readers,
and
translators
will
find
your
text
easy
to
read
and
implement.
All
audiences
can
concentrate
on
ideas
rather
than
the
mechanics
of
reading.
Polished
at
early
public
maturity
levels,
clean
copy
eliminates
multiple
"typo"
reports.
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 ].
It is the editor's responsibility to ensure that documents are valid before requesting publication.
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 .
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 .
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.
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.
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
>
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.
W3C
has
no
official
translations
of
its
technical
reports.
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,
e.g.
,
for
example,
in
French,
MUST
will
become
DOIT
if
the
subject
is
singular,
or
DOIVENT
if
it
is
plural.
Use
standard
markup
instead.
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.
Capitalize
title
words
following
U.S.
usage.
[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
(
e.g.
,
(for
example,
when
a
document
is
not
meant
to
become
a
Recommendation
or
is
still
under
development).
There
exist
exceptions
to
the
rule,
either
historical
(
e.g.
,
(such
as
W3C
XML
Schema
Definition
Language
(XSD)
1.1
Part
1:
Structures
[
XMLSCHEMA11-1
])
or
to
repurpose
an
acronym
(
e.g.
,
(for
example,
W3C
Accessibility
Guidelines
(WCAG)
3.0
[
WCAG-3.0
]).
Editor/Author affiliations change over time. Here are examples that illustrate the suggested approach for managing them.
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.
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
(
e.g.
,
through
use
of
customized
and
boilerplate
text).
text.
Since
the
status
section
does
not
change
over
time,
express
it
in
terms
that
will
be
valid
over
time
(
e.g.
,
time.
For
example,
avoid
the
word
"new").
"new".
Indicate
the
anticipated
stability
of
the
document
while
recognizing
that
the
future
is
unknown.
Readers
are
responsible
for
discovering
the
latest
status
information
(
e.g.
,
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:
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
working
group
or
activity.
Clearly indicate on the errata page:
On the errata page, list the newest entries nearer to the top.
For each entry on the errata page, provide:
Do not remove entries from the errata page; if a correction turns out to be incorrect, just add another entry (with a cross reference).
The SpecRef tool, an open-source, community-maintained database of web standards & related references, contains an exhaustive list of references.
Reference
links
(
e.g.
,
(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.
References
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:
occurrence.
For
example:
When
linking
from
the
middle
of
the
a
document
to
an
external
resource:
a
(if
available),
inside
cite
See Normative References and considerations by the Team.
See Revising a W3C Recommendation ([ W3C-PROCESS ], section 6.3.10) for instructions on modifying a W3C Recommendation.
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 URI s with a fragment identifier, unless those anchors are maintained across versions, links will break.
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
].
It is important that informative (non-normative) material is clearly distinguished from normative material. To this end:
Adhere
to
and
credit
Key
words
for
use
in
RFCs
to
Indicate
Requirement
Levels
[
RFC2119
]
(
e.g.
,
(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.
<em title="MUST in RFC 2119 context"
class="rfc2119">MUST</em>
.rfc2119 {
font-style: normal;
font-size: 0.875em;
}
The
author
may
explain
why,
give
rationale
if
these
key
words
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
implementors
implementers
where
the
method
is
not
required
for
interoperability.
This
section
refers
to
editorial
practice
at
W3C
.
It
touches
on
grammar,
spelling,
punctuation,
case,
linking,
appearance
and
markup.
11.1
Grammar
Delete
repeated
words.
Check
subject-verb
agreement.
Break
long
sentences.
11.2
Spelling
Spell-check
using
a
U.S.
English
dictionary.
Append
",spell"
to
a
W3C
URI
Please
refer
to
invoke
W3C
's
spell
checker.
Free
dictionaries
are
also
available
on
the
International
Ispell
home
page
[
ISPELL
]
for
UNIX
and
Mac
OS.
companion
W3C
uses
Merriam-Webster's
Collegiate
Dictionary,
Twelfth
Edition
[
M-W
]
on
the
web
as
the
spelling
arbiter
because
it
is
free,
online,
and
available
to
every
technical
report
author
and
editor.
Style
Guide
[link@@]
that
documents
W3C
uses
U.S.
English
(
e.g.
,
"standardise"
should
read
"standardize"
and
"colour"
should
read
"color").
Form
the
plural
of
abbreviations,
initialisms
-specific
conventions,
including
terminology,
tone,
voice,
and
acronyms
without
an
apostrophe
(
e.g.
,
the
plural
of
URI
is
URIs
not
URI's
).
See
the
FAQ
Infrequently
Asked
Questions
Concerning
the
Proper
Spelling
of
'DTD'
in
its
Plural
Form
[
PLURAL
].
11.3
Punctuation
Use
correct
punctuation.
A
hard
copy
of
The
Chicago
Manual
of
Style
[
CHICAGO
]
or
editorial
preferences.
The
Gregg
Reference
Manual
[
GREGG
]
may
be
of
some
help.
Exception:
Em
dash
Put
a
space
before
and
after
an
em
dash.
Remember
you
following
sections
are
typing
HTML
or
XML
not
TeX.
Use
quotation
marks
rather
than
grave
accents
and
apostrophes
specific
to
quote
text
(
e.g.
,
``value''
should
read
"value").
11.4
Case,
Combining
Words,
and
Hyphenation
Capitalize
W3C
entities
to
match
the
W3C
Process
Document
[
W3C-PROCESS
]
(
e.g.
,
Working
Group,
Recommendation).
Make
the
case,
number
of
words,
and
hyphenation
in
terms
match
chapter
13
.
11.5
Miscellaneous
Spell
out
acronyms
and
initialisms
in
their
first
occurrence
in
prose,
for
example,
"Internet
Engineering
Task
Force
(
IETF
)"
or
"Internationalization
(
I18N
)."
In
subsequent
occurrences
when
they
do
not
need
to
be
spelled
out,
use
abbr
elements,
and
give
them
title
attributes.
Check
references
(most
commonly,
for
no
full
stop
after
the
et
in
et
al.).
specifications.
href
attributes
should
have
the
same
value.
In general, one should not use material (text, photo, audio) in examples when the copyright is not held by W3C . If the group wishes to publish copyrighted materials, it should contact the Team legal staff (team-legal@w3.org).
Use
CSS
with
div
elements
to
mark
up
examples,
as
is
done
in
the
HTML
Living
Standard
([
HTML
],
section
4.2):
4.2).
width
and
height
(or
images
will
be
distorted).
alt
)
and
long
descriptions
(
longdesc
)
for
images.
Also,
don't
forget
to
spell-check
your
alternative
text.
blockquote
and
ul
and
li
elements
were
designed
for
quotations
and
lists
and
not
for
indentation.
Use
CSS
instead.
font
or
basefont
elements
in
your
document.
table
elements
in
your
document
are
real
data
tables,
not
tables
used
for
layout.
bgcolor
,
background
,
color
,
face
,
marginheight
,
marginwidth
or
size
attributes.
lang="en-US"
on
the
html
element
for
HTML
,
or
xml:lang="en-US"
lang="en-US"
on
the
html
element
for
XHTML
syntax.
span
element
and
lang
and
xml:lang
attributes
for
language
changes
within
a
page.
table
headers
with
th
not
by
bolding
a
td
.
Large single files that may be easy to print and search may not be easy to download. For large documents:
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:
spec-prod@w3.org
mailing-list
.
URL:
https://lists.w3.org/Archives/Public/