- From: Geoffrey Sneddon <foolistbar@googlemail.com>
- Date: Thu, 24 Sep 2009 12:00:46 +0100
- To: Henry S. Thompson <ht@inf.ed.ac.uk>
- Cc: Philip Taylor <pjt47@cam.ac.uk>, public-html-comments@w3.org
On 23 Sep 2009, at 21:48, Henry S. Thompson wrote:
> Philip Taylor writes:
>
>> In particular, the tokenizer state machine will result in a start tag
>> token with name "input" and with one attribute, which has name
>> "disabled" and value "banana". That feeds into the tree construction
>> algorithm, which will http://whatwg.org/html5#insert-an-html-element
>> which will http://whatwg.org/html5#create-an-element-for-the-token
>> which requires "the attributes on the node being those given in the
>> given token". No error recovery occurs while parsing this case. The
>> attributes in the DOM are (very nearly) always exactly what was in
>> the
>> input document.
>>
>> The only kind of error recovery in this case is that
>> http://whatwg.org/html5#concept-fe-disabled defines the element to be
>> disabled if the 'disabled' attribute exists on the element in the
>> DOM,
>> regardless of the attribute's value.
>
> Hmm. OK, I misunderstood. I thought that in general the DOM which
> resulted from parsing was 'conformant', i.e., would if serialized by a
> conformant document, but it appears I was mistaken.
This would make it impossible to degrade new stuff nicely. E.g.,
<input type=date>. I can in JS do something like:
var type = input.getAttribute("type") ?
input.getAttribute("type").toLowerCase() : "text";
if (input.type != type)
{
if (type == "date")
applyMagicJSDatePicker(input);
else if (type == "color")
applyMagicJSColourPicker(input);
[etc…]
}
If the DOM was always conformant, it would be impossible to do that,
and would make degrading gracefully in older UAs a lot harder.
--
Geoffrey Sneddon
<http://gsnedders.com/>
Received on Thursday, 24 September 2009 11:01:31 UTC