- From: Ian Hickson <ian@hixie.ch>
- Date: Mon, 4 Jun 2012 22:50:21 +0000 (UTC)
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- cc: Rafael Weinstein <rafaelw@google.com>, Dimitri Glazkov <dglazkov@chromium.org>, Henri Sivonen <hsivonen@iki.fi>, public-webapps <public-webapps@w3.org>, Adam Barth <w3c@adambarth.com>, Erik Arvidsson <arv@google.com>, Yehuda Katz <wycats@gmail.com>
On Mon, 4 Jun 2012, Tab Atkins Jr. wrote:
> >
> > [...] We could do this by having the parser insert a fake node into
> > the stack of open elements just for this purpose, I think. That is,
> > when switching insertion mode in response to the first start tag
> > inside the template insertion mode, also insert something into the
> > stack so that the next time we reset, we reset correctly. We need to
> > do that in a way that doesn't match end tags, though... Maybe we have
> > to introduce a new kind of thing we push on the stack, which doesn't
> > get matched by anything but the reset algorithm?
>
> A "template context"? Sets the context for the rest of parsing, and
> gets popped by a </template> returning to its matching <template>.
Yeah, something like that could work. We'd have to make sure we defined it
as happening when </template> was popped, but if we force that to only
ever happen when we see a literal </template> (which the proposal seems
to, though I haven't verified that) that might work ok.
> > The proposal here doesn't support SVG (or MathML, but SVG seems more
> > important for <template>). Short of hard-coding a list of SVG
> > elements, which seems really bad for forwards compatibility, I don't
> > have a good proposal for dealing with this. I suppose we could go back
> > to having an attribute on <template>, this time setting the context at
> > a more coarse level of just HTML vs SVG vs MathML; that's more likely
> > to be understood by authors than what I was suggesting before ("in
> > table body", etc).
>
> It doesn't require any more hard-coding than HTML needs in order to
> create proper elements instead of HTMLUnknownElements. You have to know
> the list of valid HTML elements to produce a proper DOM, and update that
> as you add more, even if the rest of parser is unchanged. This is the
> same thing, except it needs the list of valid SVG and MathML elements.
I agree that it's the same. I don't think having a hard-coded list of HTML
elements is a good thing either, it's got the same forward-compatibility
problems. Unfortunately in the case of the existing lists we had no choice
because UAs already had them. Here, we have a choice.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Monday, 4 June 2012 22:50:46 UTC