[whatwg] Update to the Adoption Agency Algorithm

* Ian Hickson wrote:
>> Well, if you approach the problem by asking whether it's possible that 
>> things become non-compliant, you'll either have to analyze any and all 
>> dependencies like server-side scripts and workflows or you'd generate 
>> false negatives, since adding some external data to the document is very 
>> likely to generate errors if the external data is non-compliant. The 
>> right approach here is to extend implementations to perform validation, 
>> e.g. after each mutation event.
>That still wouldn't work. Take this document:

Yes, as we both point out, you can only approximate a result.

>        if (Math.random() > 0.5)
>          document.write('<div>');
>        else
>          document.write('<\/div>');

>Is it conformant?

Well, as I understand your suggestion you have

  for all possible states s for document d
    if s is an invalid state
      generate error

While I have

  for some possible states s for document d
    if s is an invalid state
      generate error

The most sophisticated implementation of your approach would end up
saying things like

  The document is invalid if and only if the user manages to click
  on 500 rects placed at random positions within two seconds provided
  that some remote resource as specified by the user had a Last-
  Modified header set to some date in 2036. Beware the robots.

If you combine my approach with code coverage analysis you'll probably
end up after some testing with the result that you could not generate
an invalid state but there are unexercised code paths. I'm just saying
that my approach is easier to implement and more relevant to developers
looking for advise how to improve their code.

If the concern here is what the specification should say, then that's
what a valid state is, not what a valid document is, since the class
of "predictably valid" documents does not cover many dynamic documents.
Bj?rn H?hrmann ? mailto:bjoern at hoehrmann.de ? http://bjoern.hoehrmann.de
Weinh. Str. 22 ? Telefon: +49(0)621/4309674 ? http://www.bjoernsworld.de
68309 Mannheim ? PGP Pub. KeyID: 0xA4357E78 ? http://www.websitedev.de/ 

Received on Saturday, 4 February 2006 01:01:58 UTC