スクロールの進捗バー、そしてそれを犬にすべき理由
長いページはいつも同じことを訊いてきます。あとどれくらい残っているのか。進捗の表示はそれに答えますが、たいていは二段落目には気づかなくなるやり方で答えます。
バーは何のためにあるのか
スクロールバーは、原理上はもう現在地を教えてくれています。実際には幅が数ピクセルで、マウスを動かすまで隠れ、読みながら画像を読み込むページでは、つまみの大きさが読んでいる途中で変わります。拡張機能が進捗バーを足し直すのは、ブラウザ自身の答えが静かに設計から外されたからです。
そこで、ページの上端にスクロールで満ちていく細い色の線が付きます。ちゃんと働きます。そして、ページの中でいちばん簡単に見えなくなるものでもあります。まっすぐな線で、目が無視するよう訓練された帯の中にあり、長くなるほかは何もしません。
位置、そして速さ
バーが運ぶ数はちょうど一つ、どれだけ下にいるかです。二つ目の数はただで手に入るのに、どのバーも見せません。どれだけ速く動いているかです。
scrolldog は両方を運びます。ウィンドウの端に沿ったペットの位置がスクロールの深さです。ページの上端では左にいて、下端では向こう側に着いています。歩き方はスクロールの速度です。ホイールを弾けば全力で走り、一段落ずつ下りればゆっくり歩きます。
手を止めれば座ります。そこがバーにはできない部分です。静止したバーは、注意して読んでいるときも、3時間前にタブを開いたまま離れたときも、まったく同じに見えます。座ったペットは、このページが静かになったと教えてくれます。しかも読む手間はかかりません。読んだのではなく、視界の隅で捉えただけで、それが進捗表示にふさわしい唯一の注意の量です。
その代償
飾りの拡張機能に向けられるお決まりの反論は、ブラウザを悪くするというものです。これはスクロールを passive で聞き、押し寄せるイベントをアニメーションの1フレームにつき1回の書き込みにまとめ、大きさゼロの固定レーンの中で要素を一つ動かします。ページのレイアウトを読むことも変えることもなく、読んでいるページからネットワーク要求を出しません。
ポップアップのスイッチ一つで、開いているすべてのタブから一度に消えます。
仕組みを見る