In this section, we begin the specification of HTML 4.0, starting with the contract between authors, documents, users, and user agents.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. However, for readability, these words do not appear in all uppercase letters in this specification.
At times, the authors of this specification recommend good practice for authors and user agents. These recommendations are not normative and conformance with this specification does not depend on their realization. These recommendations contain the expression "We recommend ...", "This specification recommends ...", or some similar wording.
We recommend that authors write documents that conform to the strict DTD rather than the other DTDs defined by this specification. Please see the section on version information for details about the DTDs defined in HTML 4.0.
A conforming user agent for HTML 4.0 is one that observes the mandatory conditions ("must") set forth in this specification, including the following points:
However, for recommended error handling behavior, please consult the notes on invalid documents.
User agents should continue to support deprecated elements for reasons of backward compatibility.
Definitions of elements and attributes clearly indicate which are deprecated.
This specification includes examples that illustrate how to avoid using deprecated elements. In most cases these depend on user agent support for style sheets. In general, authors should use style sheets to achieve stylistic and formatting effects rather than HTML presentational attributes. HTML presentational attributes have been deprecated when style sheet alternatives exist (see, for example, [CSS1]).
HTML 4.0 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language SGML (defined in [ISO8879]).
Examples in the text conform to the strict document type definition unless the example in question refers to elements or attributes only defined by the transitional document type definition or frameset document type definition. For the sake of brevity, 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.
DTD fragments in element definitions come from the strict document type definition except for the elements related to frames.
Please consult the section on HTML version information for details about when to use the strict, transitional, or frameset DTD.
Comments appearing in the HTML 4.0 DTD have no normative value; they are informative only.
User agents must not render SGML processing instructions (e.g., <?full volume>) or comments. For more information about this and other SGML features that may be legal in HTML but aren't widely supported by HTML user agents, please consult the section on SGML features with limited support.
HTML documents are sent over the Internet as a sequence of bytes accompanied by encoding information (described in the section on character encodings). The structure of the transmission, termed a message entity, is defined by [RFC2045] and [RFC2068]. A message entity with a content type of "text/html" represents an HTML document.
The content type for HTML documents is defined as follows:
The optional parameter "charset" refers to the character encoding used to represent the HTML document as a sequence of bytes. Legal values for this parameter are defined in the section on character encodings. Although this parameter is optional, we recommend that it always be present.