[css-transforms] How should overflow be calculated for perspective transforms?

Take the following example: 
https://bug1198135.bmoattachments.org/attachment.cgi?id=8684006

In Firefox, you can scroll well beyond the end of the content. This is 
because we're computing the overflow area of the elements (with 
perspective transforms included) as they exist at scrollTop == 0. This 
doesn't take into account that the perspective transform is dependent on 
scroll position, and the 'real' overflow area actually shrinks as you 
scroll.

In both Safari and Chrome you can't scroll the entire orange element 
into view. This appears to be because overflow is being computed without 
the perspective transforms applied, and perspective is just a rendering 
effect. Commenting out the perspective rule from the css helps show this.

The Transforms spec says:

 > Therefore, if the value of the overflow property is scroll or auto, 
scrollbars will appear as needed to see content that is transformed 
outside the visible area.

Should the spec be updated to reflect what Safari/Chrome are 
implementing? Or should it remain as is (probably with some 
clarification), and the browser behaviour be fixed?

The latter seems to make more sense to me (why single out perspective as 
not contributing to overflow?), though it is admittedly considerably 
harder to implement. I'm not sure how this change would affect web-compat.

David Baron and I have drafted a plan for fixing this in Firefox [1], if 
we decide to go that route.

Thanks!

- Matt


[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1198135

Received on Tuesday, 10 November 2015 02:23:48 UTC