Description
There's a longstanding interoperability issue relating to overflow that I really thought we'd discussed before, but I can't find any record of it.
Scrollbars provide a user interface that allows scrolling to overflow extending past the inline-end and block-end sides of the box. However, overflow that extends past the inline-start and block-start sides of a box with overflow:scroll
or overflow:auto
is ignored.
Currently the spec says:
Due to Web-compatibility constraints (caused by authors exploiting legacy bugs to surreptitiously hide content from visual readers but not search engines and/or speech output), UAs must clip the scrollable overflow region of scroll containers on the block-start and inline-start sides of the box (thereby behaving as if they had no scrollable overflow on that side).
This was introduced in 01821f08744d, by fantasai, in January 2016.
This behavior description matches what Gecko and Edge do.
However, Chromium and WebKit have always done something different, which I believe is that if a box is entirely off of either the block-start or inline-start side of a box, that it makes no contribution to the box's overflow.
The difference matters when there's a box that is entirely before the inline-start (block-start) side of a box, but extends past its block-end (inline-end) side. In that case, Gecko and Edge show a scrollbar, but Chromium and WebKit do not.
I'd like us to explicitly agree that we should do one or the other of these behaviors, and have the spec reflect it.
See also Mozilla bug 1419142.