Skip to content

[cssom][css-overflow][css-overscroll-behavior] overscroll-behavior and underspecification of "not user scrollable but with scrolling mechanism" as "always considered to be at the scroll boundary" #2567

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jonjohnjohnson opened this issue Apr 14, 2018 · 0 comments

Comments

@jonjohnjohnson
Copy link

jonjohnjohnson commented Apr 14, 2018

In Overscroll Behavior

Scroll boundary refers to when the scroll position of a scroll container reaches the edge of the scrollport. If a scroll container has no potential to scroll, because it does not overflow in the direction of the scroll, the element is always considered to be at the scroll boundary.

In CSS-overflow

visible - There is no special handling of overflow, that is, the box’s content is rendered outside the box if positioned there. The box is not a scroll container.

With all other values making the element a scroll container, even if "not user scrollable".

In this test case, the *possible confusion may be what caused the buggy implementations in both currently supported vendors, with blinks is only an edge case.

Test only in chrome and firefox - http://jsbin.com/heledeg/2

  1. Make sure your window is taller than 550px and navigate to the demo.
  2. Scroll vertically, anywhere on screen, even the "fixed" block in the lower left.
  3. Resize your window to be smaller than 500px, now causing the fixed block to be "user scrollable".
  4. See how scrolling doesn't "chain" out.
  5. Now resize your browser, making it taller again.
  6. For chrome, if you then immediately try to scroll the fixed block, it's as if the scroll event is captured with e.preventDefault().
  7. For firefox, until you thrash the layout a few times, you're stuck without "scroll chaining" from the fixed block. Or you can bypass the resizing and just add the overflow: hidden to the fixed block, to see the bug.

Sidenote - Blink allows spatial keys to chain from focus within overscroll-behavior: contain, while firefox does not.

The terminology around "an element that provides user scrollability" is at worst, undefined, and at best, seemingly obtuse.

The lack of clear language for an element with "a scrolling mechanism" that cannot be scrolled by what would be non-programmatic user interactions leads to incompatibility, bugs, and developer confusion with regards to issues like #865 - "support position:sticky inside an overflow:hidden|auto on general parents" or #1522

(Also, beyond terminology, the spec has grammatical errors such as "A infinite scrollers loads more content as user reaches...")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants