Re: [css3-2d-transforms] Various spec comments

On 24/06/2009, at 11:12 PM, Øyvind Stenhaug wrote:

> Following are some possible issues with the 2D Transforms spec (WD  
> dated 2009-03-20), and some inconsistencies with the implementation  
> as observed in Safari.
>
> 1) Section 1: "The object acts as though position: relative has been  
> specified[...]" should perhaps be specified more clearly. As written  
> it would have an effect on the interpretation of the  
> 'top'/'bottom'/'left'/'right' properties, but that doesn't happen in  
> Safari 4 or Minefield.

That part was badly worded. The important part was that transform  
creates a stacking context. I've removed the part about acting as if  
position:relative was specified.

> (As mentioned elsewhere, several parts of this section look like  
> they should be normative.)

Yeah.

>
> 2) Section 3: The definition of the 'transform-origin' property  
> doesn't specify what should happen when only one keyword/length/ 
> percentage is provided. Compare with the CSS2 definition of  
> 'background-position'.

I've added the similar text from background-position into transform- 
origin.

>
> 3) Section 3: The set of valid values doesn't allow for e.g.  
> "transform-origin: 0% left;", but Safari 4 does (actually it seems  
> to allow a lot of things). I guess this might be an issue with  
> Safari rather than the spec.

That should work the same as background-position.

> 4) Section 4: The list of allowed transform functions includes the  
> keyword 'none', but both Safari 4 and Minefield drop the declaration  
> if it's included along with other functions (e.g. "none rotate 
> (180deg)"). The value 'none' is already mentioned separately (in  
> addition to <transform-function>) in section 2.

I believe Safari/Minefield are doing what we intended. My suggested  
change is to remove "none" from the list of allowed transform  
functions, but leave the text in section 2 for now. That would make  
the "none rotate(1deg)" property invalid, and match current  
implementations.

> 5) Section 6: The (non-2D) transform function 'translateZ' is  
> mentioned in the first list item. On the other hand, 'skew' is not  
> mentioned.

Fixed.

> 6) Section 7.1: There is a description of the Point interface (which  
> other methods expect to be passed), but no way to retrieve/construct  
> such an object.

Correct, there should be a constructor.

> 7) Section 7.2: The functions (should perhaps say "methods" to be  
> consistent?) specified are "added to the Window interface", but it  
> seems the DOM specs use 'AbstractView' instead of 'Window'. The  
> HTML5 draft has Window, though.

I've changed to "methods". Not sure about AbstractView v Window. Which  
do you prefer?

> 8) Sections 7.3 and 7.4: "SYNTAX_ERR" should probably say  
> "DOMException SYNTAX_ERR". "NOT_SUPPORTED_ERROR" (occurs twice, note  
> the two extra letters) should probably say "DOMException  
> NOT_SUPPORTED_ERR".

Fixed.

> 9) Section 7.3: The description of the 'scale' method mentions a "z  
> component".

Fixed.


> 10) Section 7.3: There is no 'skew' method, it seems like this could  
> be an unintended omission.

Added.

> 11) Section 7.4: "CSSTranformValue" (in the Exceptions part) should  
> be "CSSTransformValue".

Fixed.

Dean

Received on Saturday, 31 October 2009 00:53:29 UTC