The HTML language
exists in several variants and continues to
evolve, but the HTML 3.2 constructs
will most probably be usable in the future, too.
By learning HTML 3.2 and by sticking to it as far as possible,
you can produce documents which can be browsed by a large variety
of Web software now and in the future.
Later you may learn to add some
useful constructs defined in
HTML 4.0
(or future HTML standards as they are defined).
This does not exclude the possibility of using other features,
such as enhancements provided by
Netscape Navigator
or
Internet Explorer
or some other product, if it really serves
your purposes and you are willing to accept the consequences
(e.g. limitations on accessibility).
But it is wise to adopt the habit of
producing documents in a standardized language and using
extensions only when really necessary.
HTML 3.2 has been defined by the
World Wide Web Consortium, W3C.
It is supported by several browsers to a large extent, and it
will probably become the common basis understood by almost all
relevant Web software.
The next version of HTML,
an extension to HTML 3.2, is known as
HTML 4.0
(or the code name
Cougar).
It was
approved
as a
W3C
recommendation in December 18th, 1997,
but it takes time before there will be new browser versions which support
it and before users widely upgrade to such versions.
In particular, Netscape 4.0 and Internet Explorer 4.0 do
not support HTML 4.0 in general; see especially
Stephanos Piperoglou's
HTML
4.0 in Netscape and Explorer
(to which I have some minor
annotations).
Thus, for quite
a long time, netwise long, it will be
safest to use HTML 3.2, adding useful
HTML 4.0 features when needed. If possible, when using HTML 4.0 try to
do things so that they "degrade gracefully" on browsers which only
support HTML 3.2.
On the other hand, the HTML 4.0 specification makes
some
HTML 3.2
elements and attributes
"deprecated",
but they are mostly for presentational features and not recommended
in this document anyway; and in this document the note
"Deprecated in HTML 4.0" is given for them.
Moreover, there are
changes to the syntax of some elements which impose stricter rules
than HTML 3.2. Some of these stricter rules apply to "HTML 4.0 Strict"
only; the HTML 4.0 specification defines the Strict (and recommended)
syntax as well as the more permissive Transitional syntax, recommending
that new documents use Strict.
Therefore, and since such strictness requires just a little attention
from the author, appropriate notes
about the stricter syntax rules in HTML 4.0 are given
in the presentation of elements in this document.
An older standard,
HTML 2.0,
is supported to an even larger extent,
since HTML 3.2 is an extension of HTML 2.0.
However, to be exact,
the following HTML 2.0 features have
been removed in HTML 3.2:
- NEXTID element
- URN and METHODS attributes in A elements
- the escape notation for double quote,
" (notice that you can practically
always use just plain " as such,
using single quotes
around
attribute values
if they contain the " character)
- the occurrence of an IMG element within
a PRE element (it probably wasn't the
intention to allow that in HTML 2.0)
- the occurrence of a heading element within
an A element (notice that nesting an A element
within a heading element is allowed and was the
recommended way
in HTML 2.0)
- the use of the SAMP element to indicate
"a sequence of literal characters" in general; that element is
now reserved for presenting sample output only.
It might be a good idea to try to write your documents in HTML 2.0
if possible (avoiding the above-mentioned omitted features, of course).
For this reason, constructs
(e.g. tags, tag attributes, or attribute values)
which are legal HTML 3.2 but not HTML 2.0
are flagged in this document as follows: (Not in HTML 2.0!)
Notice that even by sticking strictly to HTML 2.0 you cannot
absolutely guarantee a proper rendering of your documents, since
there are deficiencies in browser implementations.
Date of last update:
2010-12-16.