- From: Doug Schepers <schepers@w3.org>
- Date: Sun, 20 Sep 2009 15:08:34 -0400
- To: www-dom@w3.org
Hi, Folks-
Maciej Stachowiak wrote (on 9/20/09 6:31 AM):
>
> http://www.w3.org/TR/html4/conform.html#deprecated
> "User agents should continue to support deprecated elements for reasons
> of backward compatibility."
Anne van Kesteren wrote (on 9/20/09 6:29 AM):
>
> Regardless, due to the HTML4 Transitional profile that is how many
> authors perceive it too. I just checked HTML4 and it says this about
> deprecated: "User agents should continue to support deprecated elements
> for reasons of backward compatibility." That does not seem to match what
> you want.
I think I see the source of confusion. Deprecation itself is not a
conformance criterion. Deprecation is a strategy for future
development, and individual specs define the tactics (behavior in
difference conformance categories) used to accomplish that strategy. [1]
Deprecation can mean different things under different circumstances.
The fact that HTML defines a conformance criteria related to
deprecation, which happens to be that UAs SHOULD continue to support
deprecated elements, does define the meaning of deprecation, it is a
particular application of deprecation. DOM3 Events defines a different
deprecation strategy [2], because the technology, circumstances behind
the spec, and development market are different than they were for
HTML4.01 a decade ago.
Many things have changed about the way we define specs at W3C in the
intervening years. I'm not using HTML4.01 as an exemplar in any other
way, I'm not sure why we should treat its particular deprecation tactics
as canonical.
But even assuming we do, neither do I want to use its definition of
"obsolete":
[[
Deprecated
A deprecated element or attribute is one that has been outdated by
newer constructs. Deprecated elements are defined in the reference
manual in appropriate locations, but are clearly marked as deprecated.
Deprecated elements may become obsolete in future versions of HTML.
...
]] [3]
[[
Obsolete
An obsolete element or attribute is one for which there is no
guarantee of support by a user agent. Obsolete elements are no longer
defined in the specification, but are listed for historical purposes in
the changes section of the reference manual.
]] [4]
So, deprecation is a warning that features may become obsolete, but are
nevertheless defined; obsolete means that they are no longer defined.
The phrase "no guarantee of support by a user agent" in "obsolete" does
matches part of our intent (though it's pretty weak, as you can't count
on support for many non-obsolete features of HTML4.01, either)... but in
fact, we still do have to define them in the spec, so that UAs that
continue to support them do so in an interoperable way. In the case of
DOM3 Events, we are also defining legacy features that were never
standardized before, so leaving them out leaves them undefined, which is
not good for authors.
I'm not particularly concerned about which word we use, except for one
thing: we're going to keep hitting this issue again and again for each
spec, every few years... what is the appropriate transition strategy
right now, for this technology, in this landscape, with this set of
implementers...? We don't need terminology proliferation, we simply
need to use the right term --deprecation-- and explicitly and clearly
define the specific implications for it in the context of that spec.
Or are you suggesting we deprecate "deprecate"? :)
[1] http://www.w3.org/TR/qaframe-spec/#deprecation
[2]
http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#glossary-deprecated
[3] http://www.w3.org/TR/html4/conform.html#deprecated
[4] http://www.w3.org/TR/html4/conform.html#didx-obsolete
Regards-
-Doug Schepers
W3C Team Contact, SVG and WebApps WGs
Received on Sunday, 20 September 2009 19:08:45 UTC