[css-transforms] clarity of definitions of 3D rendering contexts

I was trying to use the spec text in
https://drafts.csswg.org/css-transforms/#3d-transform-rendering to
determine what the correct behavior in the testcase in
https://bugzilla.mozilla.org/show_bug.cgi?id=1201471 is, and found
the spec text generally not clear enough to do so.

In particular, I'm trying to use the spec to understand which
elements 'backface-visibility: hidden' applies to.  Based on
https://drafts.csswg.org/css-transforms/#backface-visibility-property ,
this depends on the element's accumulated 3D transformation matrix.
Based on
an element only has such a thing (I think) if it participates in a
3D rendering context, though that's not even explicit.

https://drafts.csswg.org/css-transforms/#3d-rendering-contexts is
then very unclear about which elements participate in a 3D rendering
context.  It's somewhat clear about which elements establish *new*
contexts (although that material is spread between 6.1.2 and 6.1.3,
even though 6.1.2 seems like it's going to explain the topic
completely), it's not clear which elements participate in the
context.  6.1.3
does suggest that only transformed elements participate when it
  # hierarchies of transformed objects that share a common
  # 3-dimensional space
but this isn't really explicit.

It seems like Gecko and Chromium have a different idea of whether
backface-visibility applies to a non-transformed element that is the
child of a transform-style:preserve-3d element that has been rotated
to be backwards-facing.  The spec should be clear about whether it
does, at least partly by being clearer about the topics above.


𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                          https://www.mozilla.org/   𝄂
             Before I built a wall I'd ask to know
             What I was walling in or walling out,
             And to whom I was like to give offense.
               - Robert Frost, Mending Wall (1914)

Received on Friday, 4 September 2015 23:40:53 UTC