Note that this is also an issue in Opera's current implementation

test case: http://www.rikkertkoppes.com/other/wf2-repetition-model/
note the legend element ending up halfway the fieldset. It occurs to that this is unwanted bahaviour, it follows directly from the current wd though

Regards,
Rikkert Koppes

Rikkert Koppes wrote:
Related is the movement of repetition blocks, section 3.6.3 step 3: http://www.whatwg.org/specs/web-forms/current-work/#movement
---
# If distance is negative: while distance is not zero and target's |previousSibling| is defined and is not a repetition template <http://www.whatwg.org/specs/web-forms/current-work/#repetition2>, set target to this |previousSibling| and, if it is a repetition block <http://www.whatwg.org/specs/web-forms/current-work/#repetition3>, increase distance by one (make it less negative by one).
---
blocks might move above previous siblings that are not repetition blocks (picture a legend element).

Regards,
Rikkert Koppes

Rikkert Koppes schreef:
the addition sequence, step 14 states (http://www.whatwg.org/specs/web-forms/current-work/#addition):
---
If the first argument to the method was null, then the template once again crawls through its previous siblings, this time stopping at the first node (possibly the template itself) whose previous sibling is a repetition block (regardless of what that block's template is) or the first node that has no previous sibling, whichever comes first. The new element is the inserted into the parent of the template, immediately before that node. Mutation events are fired if appropriate.
---

Furthermore, as I interpret correctly, this is also the case at initialisation, i.e. the addRepetitionBlock() method is invoked with null as it's argument (http://www.whatwg.org/specs/web-forms/current-work/#initial). (not quite sure whether this is indeed correct interpreted, see further)
---
For each element that has a |repeat <http://www.whatwg.org/specs/web-forms/current-work/#repeat>| attribute with the literal value |template <http://www.whatwg.org/specs/web-forms/current-work/#template>|, the UA must invoke the template's replication behaviour as many times as the |repeat-start <http://www.whatwg.org/specs/web-forms/current-work/#repeat-start>| attribute on the same element specifies (just once, if the attribute is missing or has an invalid value).[...] (Invoking the template's replication behaviour means calling its |addRepetitionBlock() <http://www.whatwg.org/specs/web-forms/current-work/#addrepetitionblock>| method).
---

If this is the case, at initialisation, when there are no repetition blocks, the first block is added as the very first child of the template's parent, which is not necessarily before the template. This doesn't seems to be desired very often. Picture a fieldset with a legend where the first replicated block ends up before the legend. Should the initial replication behaviour maybe call the addRepetitionBlock with the template's previous sibling as argument?

Regards,
Rikkert Koppes

Reply via email to