[css3-images] Remove all references to out-of-document elements and CSSElementMap?

The element() function currently allows an out-of-document element to
be selected and (in some cases) rendered, through a mechanism that is
host-language dependent.  There is an informative example of this
using the CSSElementMap API I proposed to be added to HTML for this
purpose.

There's been a relatively large amount of discussion and disagreement
over multiple aspects of this:

1. Some people don't like having id selectors refer to out-of-document
elements, as it's inconsistent with how the same selector would work
in other contexts.

2. The behavior of this for SVG fragments is underdefined currently,
because CSS in out-of-document trees is underdefined.

3. The existence of the CSSElementMap in HTML is contested.  Some
suggest that it should be part of CSSOM instead, or have a different
name, or have slightly different behavior (such as relying on the
element's own @id attribute, rather than using the key in the map as
an alternative id.

4. Some people think the current ability is too limited to really be
useful, and we should wait and combine it with the ability to
reference elements from external documents as well.  This would allow
things like making a paint-server gallery in an SVG file and then
referencing it in your CSS; right now you'd have to insert the SVG
into every page, either as direct markup or with script.

My proposal is to drop all references to this ability for now, and
resolve these issues either in Images 4 or another spec like CSSOM.
I'd remove all references to out-of-document elements from the spec.
This still leaves in useful abilities, like the ability to use a
non-rendered element; it would just require putting the element into
the document and giving it display:none.

This also lets us avoid the handful of issues around this subject
recorded in <http://wiki.csswg.org/spec/css3-images>.

Thoughts?

~TJ

Received on Tuesday, 20 March 2012 01:18:54 UTC