Deprecated (was: remedy for click event)

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