- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 6 Apr 2016 17:55:25 -0400
- To: Florian Rivoal <florian@rivoal.net>
- Cc: CSS public list <www-style@w3.org>
https://lists.w3.org/Archives/Public/www-style/2016Jan/0296.html
* should "indirect scrolls" trigger snapping? moving through a document via tab index, scrolling to a target, etc.
- "yes" appears to be most reasonable answer, which means nothing needs to be done. These are just "explicit" scrolls.
On 01/27/2016 11:36 AM, Florian Rivoal wrote:
>
> Ok, here's an example:
>
> <div id=gallery>
> <img src=...>
> ...
> <img src=...>
> <img src=...>
> </div>
>
> body {margin:0}
> div {
> height: 100vh;
> overflow-y: auto;
> scroll-snap-point: mandatory;
> scroll-snap-padding: 10% 0; /* allowing for a semi
> transparent overlay or
> some such */
> }
> img {
> display: block;
> max-width: 100%;
> margin: 20px auto;
> scroll-snap-align: center;
> }
> img:first-child {
> scroll-snap-align: start;
> }
> img:last-child {
> scroll-snap-align: end;
> }
>
> With just the right combination of screen size (large, to make
> the 10% padding large), of a small last image (smaller than
> the 10% padding), and a large penultimate image (so that it
> fills the screen when snapped), depending on how the browser
> snaps, you may be unable to view the last image.
>
> I don't know how you define "the corridor". Is it finite in
> length, or extended infinitely along the direction of the scroll?
> I understand it as the later. So for me, in that example the last
> image is in the corridor, since it would enter the snap viewport
> if you kept scrolling along the same direction. But you can't
> because you hit the edge first, and when you do, due to a large
> snap padding, the image has not entered the snap viewport.
>
> This may have worked fine in the author's environment, but
> different images and different screen size change the game.
> And if we don't make sure that we make this snaps, the user
> will be the one having issues.
>
> Either normatively saying that that last image does not snap
> in this scenario, or allowing enough flexibility for browsers
> to disagree whether it snaps causes this problem to happen.
My intention was to handle this issue in this paragraph:
# If the most appropriate snap position is unreachable,
# such that aligning to it would require scrolling the
# scroll container’s viewport past the edge of its
# scrollable area, the scroll container must be scrolled
# as much as possible in each relevant axis toward the
# desired snap position. This is the used snap position
# corresponding to that snap position; that is, the UA
# must “snap” to this position just as it would have if
# it were the actual specified alignment.
In particular, the second sentence is redefining the effective
snap position for that last element, so a UA *must* treat it
as if it were reachable. However, since this wasn't clear,
we've tweaked the wording slightly to be more explict and
shifted it into the definition of 'scroll-snap-align':
https://drafts.csswg.org/css-scroll-snap/#unreachable
Let us know if that addresses your concerns.
~fantasai
Received on Wednesday, 6 April 2016 21:55:54 UTC