Summary

  • 写真集を送る指はぴったりした座標で止まらない。2015年の停止点案から、作業部会は写真の領域と実際に見える枠を合わせる設計へ進んだ。2015年と2016年の会議記録には、その変更の具体的な決定が残る。
  • 一度止まった写真が後から読み込まれた内容で動く場合、2021年の文書は同じ対象が残る限りそこへ再び合わせると定めた。ブラウザーが追うのは古い画素数より、読者が見ていた写真である。

横長の写真集で、ある写真は幅が狭く、次の写真は大きい。編集者がきれいに並べても、読者の指は定規ではない。2015年の最初の草案は、スクロールの後に窓が落ち着く停止点を提案した。軸上で繰り返す点や要素が供給する点がある。だが写真の大きさが違い、画面上部に固定見出しがあれば、単なる距離の目盛りより具体的な問いが生じる。どの写真のどの部分を、実際に見える窓のどこへ置くのか。

2015年12月2日のCSS作業部会議事録には、答えを組み立てる手つきが残る。Matt Rakowは領域と位置合わせの変更を統合中だと報告した。部会はscroll-snap-destinationをscroll-snap-paddingに、scroll-snap-coordinateをscroll-snap-alignと領域の組に替えることを決めた。コンテナー側に軸のキーワードを置く方針も記録した。Elika Etemadは、細部が残っていても実装者の進路になるよう決定を残したいと求めた。駐車場の座標を一つ示すだけの発想から、写真と枠の関係を表す仕組みへ移っていた。

2016年5月のサンフランシスコ会議では、都合の悪い写真が議題になった。窓より大きい要素、画面に見えない位置、そもそも到達できない領域だ。部会はscroll-snap-alignを背景の位置指定に似た考え方で扱い、これらの境界について節を加えることを決めた。EtemadとTab Atkins-Bittnerを編集者に加え、短い名称もcss-snappointsからcss-scroll-snapへ変えた。名称より大切なのは、紙の上で線が重なっても読者に見えないなら良い停止とは言えない、という扱いだった。

2016年6月の草案では、コンテナーのscroll-snap-typeと写真側のscroll-snap-alignが役割を分ける。編集者は写真の中心を枠に合わせたいと指定でき、指の速度を追う処理はブラウザーに任せられる。長いページの例はproximityの必要も示す。途中を読んでいる人まで次の区切りへ連れて行くmandatoryは、案内係としては熱心すぎる。停止の強さはコンテンツの読み方に合わせて選ぶ。

枠の側を動かすのか、写真の側に余裕を持たせるのか。2018年の候補勧告スナップショットは、前者をscroll-padding、後者をscroll-marginで扱う。固定見出しが画面上部を覆うなら、コンテナーの有効な窓を調整する。特定の写真の周囲に空間が要るなら、その写真の領域を調整する。scrollTo()などスクリプトからの移動もスナップの対象で、次の写真へ飛ぶボタンだけが別の駐車規則を持つわけではない。

停止したあとも試練はある。画像が遅れて読み込まれ、写真の位置が変わったらどうなるか。2021年の候補勧告スナップショットは、同じ対象が残るならそこへ再びスナップすると定める。重なっていた複数の対象が離れた場合は、フォーカスされた対象やリンク先の対象が優先される。読者が選んだ写真を追う規則だ。paddingとmarginはスナップを切った状態で要素を画面内に運ぶときにも効く。写真集のための窓の設計が、一般のスクロールにも役立つようになった。

W3Cの公開履歴には2015年から2021年までの節目が並ぶ。読みどころは発行日の列ではない。幅の違う写真、固定見出し、ボタンでの移動、遅れて現れる画像に遭っても、見ていた対象を画面に収めるための判断が増えたことだ。読者が写真集を送り、編集者が枠を決め、ブラウザーが写真の現在地を見失わない。