Features listed in this section will trigger warnings in conformance checkers.
Authors should not specify a border attribute on an img element. If the attribute is present, its
value must be the string "0". CSS should be
used instead.
Authors should not specify a language attribute on a script
element. If the attribute is present, its value must be an ASCII case-insensitive match for
the string "JavaScript" and either the
type attribute must be omitted or its value
must be an ASCII case-insensitive match for
the string "text/javascript". The attribute
should be entirely omitted instead (with the value "JavaScript", it has no effect), or replaced with use of
the type attribute.
Authors should not specify the name attribute on a elements. If the attribute is present, its
value must not be the empty string and must neither be equal to the
value of any of the IDs in the element's home subtree other than the element's own
ID, if any, nor be equal to the value of any
of the other name attributes on a elements in the element's home subtree. If this attribute is present and
the element has an ID, then the attribute's value must be equal to
the element's ID. In earlier versions of the language, this
attribute was intended as a way to specify possible targets for
fragment identifiers in URLs. The id attribute should be used instead.
Authors should not, but may despite requirements to the contrary
elsewhere in this specification, specify the maxlength and size attributes on input elements whose type attributes are in the Number state. One valid reason for
using these attributes regardless is to help legacy user agents
that do not support input elements with type="number" to still render the text field with a
useful width.
In the HTML syntax, specifying a DOCTYPE that is an obsolete permitted DOCTYPE will also trigger a warning.
Elements in the following list are entirely obsolete, and must not be used by authors:
appletacronymUse abbr instead.
bgsoundUse audio
instead.
dirUse ul instead.
frameframesetnoframesEither use iframe and CSS instead, or use
server-side includes to generate complete pages with the various
invariant parts merged in.
isindexUse an explicit form and text
field combination instead.
listingnextidUse GUIDs instead.
noembedplaintextUse the "text/plain" MIME type instead.
rbProviding the ruby base directly inside the ruby element is sufficient; the
rb element is unnecessary. Omit it
altogether.
strikeUse del instead if the element is marking an edit,
otherwise use s instead.
xmpUse pre and code instead, and escape "<" and "&" characters as
"<" and "&" respectively.
basefontbigblinkcenterfont
marqueemulticolnobrspacerttUse appropriate elements and/or CSS instead.
Where the tt element would have been used for marking up
keyboard input, consider the kbd element; for variables, consider the
var element; for computer code, consider the
code element; and for computer output,
consider the samp element.
Similarly, if the big element is being used to denote a heading,
consider using the
h1 element; if it is being used for marking up important
passages, consider the strong element; and if it is being used
for highlighting text for reference purposes, consider the
mark element.
See also the text-level semantics usage summary for more suggestions with examples.
The following attributes are obsolete (though the elements are still part of the language), and must not be used by authors:
charset on a elementscharset on link elementsUse an HTTP Content-Type header on the linked resource instead.
coords on a elementsshape on a elementsmethods on a elementsmethods on link elementsUse the HTTP OPTIONS feature instead.
name on a elements (except as noted in the previous
section)name on embed elementsname on img elementsname on option elementsUse the id attribute instead.
rev
on a elementsrev on link elementsUse the rel attribute instead, with an opposite
term. (For example, instead of rev="made",
use rel="author".)
urn
on a elementsurn on link elementsSpecify the preferred persistent identifier using the
href attribute instead.
accept on form elementsUse the accept attribute directly on the
input elements instead.
nohref on area elementsOmitting the href attribute is sufficient; the
nohref attribute is unnecessary. Omit it
altogether.
profile on head elementsWhen used for declaring which meta
terms are used in the document, unnecessary; omit it altogether,
and register the names.
When used for triggering specific user agent behaviors: use a
link element instead.
version on html elementsUnnecessary. Omit it altogether.
usemap on input elementslongdesc on
iframe elementslongdesc on img elementsUse a regular a element to link to the description, or (in the
case of images) use an image map to provide a link from the image to the
image's description.
lowsrc on img elementsUse a progressive JPEG image (given in the src attribute), instead of using two separate
images.
target on link elementsUnnecessary. Omit it altogether.
scheme on meta
elementsUse only one scheme per field, or make the scheme declaration part of the value.
archive on object elementsclassid on object elementscode on object elementscodebase on
object elementscodetype on
object elementsUse the data and type attributes to invoke plugins. To set parameters with these
names in particular, the param element can be used.
declare on object elementsRepeat the object element completely each time the
resource is to be reused.
standby on object elementsOptimize the linked resource so that it loads quickly or, at least, incrementally.
type on param elementsvaluetype on
param elementsUse the name and value attributes without declaring value
types.
language on
script elements (except as noted in the previous
section)Use the type attribute instead.
event on script
elementsfor on script
elementsUse DOM Events mechanisms to register event listeners. [DOMCORE]
datapagesize on
table elementsUnnecessary. Omit it altogether.
summary on table elementsUse one of the
techniques for describing tables given in the table section instead.
abbr on td and th elementsUse text that begins in an unambiguous and terse manner, and
include any more elaborate text after that. The title attribute can also be useful in
including more detailed text, so that the cell's contents can be
made terse.
axis on td and th elementsscope on td elementsUse th elements for heading cells.
datasrc on a, applet,
button, div, frame,
iframe, img, input, label, legend,
marquee, object, option, select, span, table, and textarea elementsdatafld on a, applet,
button, div, fieldset, frame,
iframe, img, input, label, legend,
marquee, object, param, select, span, and textarea elementsdataformatas on
button, div, input, label, legend,
marquee, object, option, select, span, and table elementsUse script and a mechanism such as XMLHttpRequest
to populate the page dynamically. [XHR]
alink on body elementsbgcolor on body elementslink on body elementsmarginbottom on
body elementsmarginheight on
body elementsmarginleft on
body elementsmarginright on
body elementsmargintop on
body elementsmarginwidth on
body elementstext on body elementsvlink on body elementsclear on br elementsalign on caption elementsalign on col elementschar on col elementscharoff on col elementsvalign on col elementswidth on col elementsalign on div elementscompact on dl elementsalign on embed elementshspace on embed elementsvspace on embed elementsalign on hr elementscolor on hr elementsnoshade on hr elementssize on hr elementswidth on hr elementsalign on
h1—h6
elementsalign on iframe elementsallowtransparency
on iframe elementsframeborder on
iframe elementshspace on iframe elementsmarginheight on
iframe elementsmarginwidth on
iframe elementsscrolling on
iframe elementsvspace on iframe elementsalign on input elementshspace on input elementsvspace on input elementsalign on img elementsborder on img elements (except as noted in the previous
section)hspace on img elementsvspace on img elementsalign on legend elementstype on li elementscompact on menu
elementsalign on object elementsborder on object elementshspace on object elementsvspace on object elementscompact on ol elementsalign on p elementswidth on pre elementsalign on table elementsbgcolor on table elementscellpadding on
table elementscellspacing on
table elementsframe on table elementsrules on table elementswidth on table elementsalign on tbody, thead, and tfoot elementschar on tbody, thead, and tfoot elementscharoff on tbody, thead, and tfoot elementsvalign on tbody, thead, and tfoot elementsalign on td and th elementsbgcolor on td and th elementschar on td and th elementscharoff on td and th elementsheight on td and th elementsnowrap on td and th elementsvalign on td and th elementswidth on td and th elementsalign on tr elementsbgcolor on tr elementschar on tr elementscharoff on tr elementsvalign on tr elementscompact on ul elementstype on ul elementsbackground on body, table, thead, tbody, tfoot, tr, td, and th elementsUse CSS instead.
The border attribute on the table element can be used to provide basic
fallback styling for the purpose of making tables legible in
browsing environments where CSS support is limited or absent, such
as text-based browsers, WYSIWYG editors, and in situations where
CSS support is disabled or the style sheet is lost. Only the empty
string and the value "1" may be used as
border values for this purpose. Other
values are considered obsolete. To regulate the thickness of such
borders, authors should instead use CSS.