Re: ISSUE-53: mediatypereg - suggest closing on 2009-09-03

Roy T. Fielding wrote:
> On Aug 25, 2009, at 7:28 PM, Ian Hickson wrote:
> 
>> On Tue, 25 Aug 2009, Roy T. Fielding wrote:
>>>>
>>>> No, by definition, every HTML5 implementation has, or must act like it
>>>> has, a DOM. The DOM is used in HTML5 as a model used to describe what
>>>> implementations must do even if they don't actually expose the DOM in
>>>> any black-box testable way.
>>>
>>> Hence my objection to how HTML5 has been defined in terms of DOM
>>> operations, which are neither present in nor understood by the vast
>>> majority of implementors of HTML.
>>
>> The overwhelming majority of implementors of HTML are very familiar with
>> the DOM concept. It's fundamental to CSS, scripting, and many aspects of
>> HTML itself. It's more or less equivalent to the concept of an Infoset,
>> which is similarly used as the basis of many XML specifications.
> 
> The DOM state as an infoset, yes.  HTML5 is not defined in terms of
> the DOM state.  It is defined in terms of operations on that state
> (i.e., behavior), including attributes of the DOM that are a side-effect
> of processing operations.  The difference is quite huge.

I'm going to try to recap my understanding; which may very well be 
significantly imperfect, but perhaps if you both can point out where I 
veer off into the weeds, it might be useful in furthering discussion.

First premise: there exist elements in the language that are widely 
discouraged (whether that is deprecated, obsolete, non-conforming, or 
whatever is immaterial to this particular discussion).  An example of 
such is the <plaintext> element.  However, even for such elements, it is 
important that the spec completely describes their behavior, and that 
conforming user agents have no observable behavior that differs from the 
behavior specified.

Second premise: there exists (in the past, present, and foreseeable 
future) HTML implementations that not only do not possess a DOM, they 
positively have no interest in possessing a DOM.  Within the scope of 
the functions that they perform, all that is important is that they do 
not differ in observable behavior from other implementations that may 
possess a DOM.  If they do that, such implementations can fully 
interoperate and participate in the ecosystem that we call the web.

I don't believe that either of these premises are in dispute, but I 
welcome anybody to indicate otherwise.

Now, let's try to anchor (no pun intended) the discussion with a 
concrete example expressed in terms of a HTML fragment:

   <table>
     <tr><td>foo</tr>
     <a name='bar'>x
     <plaintext>
     <a name='baz'>z

In that fragment, the behavior that HTML5 describes is that there exists 
exactly one anchor, and for any implementation for which it is important 
to define the precise location of that anchor, the correct placement is 
before the <table>.  Any implementation that can be observed to behave 
differently (e.g., ones that identify two anchors, or ones that identify 
the anchor as being placed within or after the table) may be of some 
utility, but can't be described as fully interoperable or conforming.

And I will note that all of the statements in the above paragraph are 
independent of the fact that the above fragment is itself non-conforming 
in a number of ways.

Now, expressing the full interoperable behavior desired in this case is 
a daunting task.  As a matter of editorial style, Ian has often chosen 
to define such behaviors in terms of the info-set that a DOM-possessing 
implementation would produce.  On matters of editorial style, people can 
and do differ, but as long as the document produced does not run afoul 
of the second premise above, the document may not be considered ideal by 
all, but it is acceptable.

Returning to the topic at hand, we are discussing a media type 
registration.  However imperfect or incomplete the current Working Draft 
may be at this point in time, I do believe that the common intent of 
this Working Group be that the Recommendation that is ultimately 
produced be consistent with both of the above two premises.  We've had 
orthogonal discussions on what's the best way to update the media type 
registration, and those discussions seem to have reached a resolution.

So where are we?  I believe that we are well on our way to closing issue 
53, though during the course of the discussion we may have identified a 
related issue, namely the concern that the current Working Draft does 
not contain the detail needed to enable non-DOM producers or consumers. 
  I would be hesitant to open an issue on that, however, in that it 
doesn't appear to be obvious how to identify those points of contention. 
  Specific bug reports would instead be much more productive.  It does 
occur to me that areas of the spec which describe obsolete or 
non-conforming markup are ones where a more careful review may be in order.

If I got any thing wrong, please let me know.  My only hope that this 
furthers the discussion.

> ....Roy

- Sam Ruby

Received on Wednesday, 26 August 2009 09:50:19 UTC