Contents
This specification is divided into the following sections:
The brief SGML tutorial gives readers some understanding of HTML's relationship to SGML and gives summary information on how to read the HTML Document Type Declaration (DTD).
This document has been organized by topic rather than by the grammar of HTML. Topics are grouped into three categories: structure, presentation, and interactivity. Although it is not easy to divide HTML constructs perfectly into these three categories, the model reflects the designers' experience that separating a document's structure from its presentation produces more effective and maintainable documents.
The language reference consists of the following information:
What characters may appear in an HTML document.
Basic data types of an HTML document.
Elements that govern the structure of an HTML document, including text, lists, tables, links, and included objects, images, and applets.
Elements that govern the presentation of an HTML document, including style sheets, fonts, colors, rules, and other visual presentation, and frames for multi-windowed presentations.
Elements that govern interactivity with an HTML document, including forms for user input and scripts for active documents.
The SGML formal definition of HTML:
This document has been written with two types of readers in mind: authors and implementors. We hope the specification will provide authors with the tools they need to write efficient, attractive, and accessible documents, without over-exposing them to HTML's implementation details. Implementors, however, should find all they need to build conforming user agents.
The specification may be approached in several ways:
Read from beginning to end. The specification begins with a general presentation of HTML and becomes more and more technical and specific towards the end.
The front pages of the three sections of the language reference manual extend the initial table of contents with more detail about each section.
Element names are written in upper case letters (e.g., BODY). Attribute names are written in lower case letters (e.g., lang, onsubmit). Recall that in HTML, element and attribute names are case-insensitive; the convention is meant to encourage readability.
Element and attribute names are marked within the source HTML for the specification and may be rendered specially by some user agents.
Each attribute definition specifies the type of its value. If the type allows a small set of possible values, the definition lists the set of values, separated by a bar (|).
After the type information, each attribute definition indicates the case-sensitivity of its values, between "[]" marks. See the section on case information for details.
Informative notes are emphasized to stand out from surrounding text and may be rendered specially by some user agents.
All examples illustrating deprecated usage are marked as "DEPRECATED EXAMPLE". Deprecated examples also include recommended alternate solutions. All examples that illustrates illegal usage are clearly marked as "ILLEGAL EXAMPLE".
Examples in the text conform to the strict document type declaration unless otherwise indicated or unless the example in question refers to elements or attributes only defined by the loose document type declaration or frameset document type declaration. For convenience, most of the examples in this specification do not begin with the document type declaration that is mandatory at the beginning of each HTML document.
Examples and notes are marked within the source HTML for the specification and some user agents may render them specially.
Thanks to everyone who has helped to author the working drafts that went into the HTML 4.0 specification, and all those who have sent suggestions and corrections. A particular thanks to T.V. Raman (Adobe) for his work on improving the accessibility of HTML forms for people with disabilities.
The authors of this specification, the members of the W3C HTML Working Group, deserve much applause for their diligent review of this document, their constructive comments, and their hard work: John D. Burger (MITRE), Steve Byrne (JavaSoft), Martin J. Dürst (University of Zurich), Daniel Glazman (Electricité de France), Scott Isaacs (Microsoft), Murray Maloney (GRIF), Steven Pemberton (CWI), Jared Sorensen (Novell), Powell Smith (IBM), Robert Stevahn (HP), Ed Tecot (Microsoft), Jeffrey Veen (HotWired), Mike Wexler (Adobe), Misha Wolf (Reuters), and Lauren Wood (SoftQuad).
Thank you Dan Connolly (W3C) for thoughtful input and guidance as chairman of the HTML working group. Thank you Sally Khudairi (W3C) for your indispensable work on the press release.
Thanks to David M. Abrahamson and Roger Price for their careful reading of the specification and astute comments.
Of particular help from the W3C at Sophia-Antipolis were Janet Bertot, Bert Bos, Stephane Boyera, Daniel Dardailler, Yves Lafon, Håkon Lie, Chris Lilley, and Colas Nahaboo from Bull.
Lastly, thanks to Tim Berners-Lee without whom none of this would have been possible.