[whatwg] Question on Limits in Adaption Agency Algorithm

Adam Barth w3c at adambarth.com
Sat Nov 3 09:34:34 PDT 2012


On Fri, Nov 2, 2012 at 9:50 PM, Yasuhiko Minamide
<minamide at cs.tsukuba.ac.jp> wrote:
> This is about Adaption Agency Algorithm in 12.2.5.4.7 The "in body" insertion
> mode.
>
> Limits of loops in the adoption agency algorithm were introduced
> in http://html5.org/tools/web-apps-tracker?from=5641&to=5642.
> However, the limit for the inner loop introduces an unexpected behaviour for
> the following fragment of an HTML document.
>
> <b><i><a><s><tt><div></b>abc</b></div></tt></s></a>xyz</i>
>
> This document is parsed into the following DOM tree.
>
> <b>
>   <i>
>     <a>
>       <s>
>         <tt></tt>
>       </s>
>     </a>
>     "xyz"
>   </i>
> </b>
> <a>
>   <s>
>     <tt>
>       <div>
>         <b></b>
>         "abc"
>       </div>
>     </tt>
>   </s>
> </a>
>
> "xyz" is inserted as a child of <i> and the order between "abc" and "xyz" is
> reversed in the tree. We would like to know whether this is an intended
> behaviour of the specification.
>
> We are aware that the similar reversal occurs in markup-in-tables.

The DOM you get when you hit the limits in the adoption agency
algorithm don't make a lot of intuitive sense.  Unfortunately, the
limits are necessary so that implementations don't end up having to do
quadratic work.  If this behavior is causing you trouble, you might
want to run your content through some sort of pre-processor that
re-writes these cases into valid HTML, which should get parsed in
intuitive ways by user agents.

Adam



More information about the whatwg mailing list