Windowsのスクロールバーに隠されたShift+クリック、知った頃には誰も使わなくなっていた
A brief history of Windows scroll bar shortcuts
Windows 7でスクロールバーに右クリックメニューが追加され、「Scroll Here」で目的の位置へ直接ジャンプできるようになった。同時に、Shiftキーを押しながらクリックするとサムがその位置へ飛ぶ隠しショートカットも存在したが、筆者は最近まで知らなかった。しかしWin32スクロールバーは廃れ、ElectronやWPFは対応する一方、WinUIはどちらも実装しておらず、Qtはアプリ開発者次第。エコシステムの分断で、せっかく覚えたショートカットも当てにできない現状を嘆く。
素晴らしいことに、私がスクロールバーのショートカット(Shift+クリック)を知った頃には、エコシステムはあまりに断片化していて、それが機能することすら当てにできなくなっていた。
HNでの議論
113- bartread
> 悲しいかな、今ではほとんど誰もWin32のスクロールバーを使っていない。みんな独自のカスタムスクロールバーを提供するフレームワークを使っている。
そう、そして悲しいことに、それらのフレームワークの実装はどれも、作者のケア、注意、あるいは関心の欠如のせいで、いくらかのクソみたいなものにまみれている。そしてクソみたいなものというのは、挙動が違うか、できることが少ないかのどちらかだ。
でも、Windowsアプリケーション全体、いや他のOSのアプリケーション全体で一貫したUXがあった時代がとても恋しい。
アプリケーションにカスタムの見た目や操作感を持たせたいのは構わない。でも、あなたのウィジェットが同じ種類の他のウィジェットと同じように動かないのは、とても気になる。少なくとも、何か差異があるなら、それはOSレベルの機能のスーパーセットであるべきで、機能を削ぎ落としたサブセットであってはならない。
時が経ち、Microsoftがますます多くのUIフレームワークを渡り歩き、さらにCEFやElectronのようなものまで登場するにつれて、Microsoftがこれをどれだけ難しくしたかにはいつもイライラさせられた。WindowsのUI事情は2007年あたりから特に混沌とし始め、少なくともここ15年間はひどい混乱状態にある。
今どきWindowsデスクトップアプリを開発するのに何を使えばいいのか、正直まったく見当がつかないし、正直なところ、どの選択肢も私を熱狂させてくれない。最近のデスクトップの実験では、Windowsで動かしたいとは思っても主にWindowsで作業しているわけではないということもあって、Rust + Qtの道を選んだ。ネイティブのパフォーマンスが得られるし、どちらの作者からも近いうちに足元をすくわれるような気がしないからだ […]
- mrob
個人的には、「ここにスクロール」がスクロールバーをクリックしたときのデフォルトの動作であるべきだと思う。ページアップとページダウンのための良いキーボードショートカットはすでにあるが、「ここにスクロール」のためのキーボードショートカットは存在し得ない。マウス特有の機能から恩恵を受けられるのに、キーボードの機能を重複させるためにマウスの能力を無駄にしている。
GTKはこれを正しくやっていて、Qtはやっていない。
- butz
非常に憂慮すべき傾向は、ウェブサイトの細いスクロールバー、あるいはまれなケースではスクロールバーが完全に隠されていることだ。幸いなことにFirefoxにはabout:configに設定がある:layout.css.scrollbar-width-thin.disabled=true 。
- layer8
そろそろRaymond Chenが、増え続けるUIの不整合と、かつてどこにでもあった機能の喪失について怒りをぶちまけ始めてもいい頃だ。(あるいは以前の連載を見逃していたのかもしれない。)
- chrismorgan
Linux/GTKでは、ガターをクリックするとその位置に移動する。そして、Shift+クリックがPageUp/PageDownと同等であること、Firefoxでは右クリックもPageUp/PageDownと同等らしいが、LibreOfficeではボタンを押し続けると一定の遅いペースでスクロールし(Writerでは1画面あたり15秒、6fps)、Inkscapeでは(1画面あたり3秒、スムーズに)スクロールすること、そしてミドルクリックはほとんどPageUp/PageDownだがFirefoxでは何もしないことを、たった今発見した。そして、通常のスクロールバーを持つアプリはこれらだけだと思う(もしかしたらインストールしているのもこれだけかもしれない)。
ああ、もう一つ、QtのBibleTime:かなりWindows的で、クリックはPageUp/PageDown、右クリックはコンテキストメニュー(ここにスクロール、---、先頭、末尾、---、ページアップ、ページダウン、---、上にスクロール、下にスクロール)、Shift+クリックはクリックと同じ、ミドルクリックはここにスクロール。
(こういったことも、ウェブページで独自のスクロールバーを実装すべきでない理由の一つだ:プラットフォームによって挙動が異なり、すべてをまともに、時にはまったく合わせられないのだから。)
- badsectoracula
Raymond ChenでさえShift+クリックを知らなかったとは興味深い。何年か前にWin32コントロールで適当なことを試しているうちにいつか見つけたもので、プログラムが本物のWin32コントロールを使っているか独自のものを作っているかを見分けたいときにいつも試すことだった。Qt[0]を含め、ほとんどどのツールキットもこの挙動を持っていなかったからね :-P
[0] Qtはいつか追加したかもしれないが、WindowsをメインOSとして使って確認する気になるまでには何年も経っている
- zerr
> 誰もWin32のスクロールバーを使わない
なぜなら色を変更することが不可能だからだ。カスタム/ダークスキンのWindowsアプリで、醜い灰色のスクロールバーがこちらを見ているのを見るのは珍しくなかった/今でも珍しくない。今日でもLightとDarkテーマしかサポートされておらず、カスタムカラーを設定することは不可能だ。
- eviks
> スクロールバーをクリックしながらShiftキーを押すと、サムがクリックした場所に直接ジャンプする。
適切に設計されたバーでは、これはデフォルトか設定可能なオプションのどちらかだ。遠く離れたバーにマウスを移動してShiftを押し続けるのは、PgDn(またはショートカット)を押すよりもコストのかかる操作なので、その動作は単なるページ移動であってはならず、より価値があり再現が難しいものでなければならない
(上下端にあるさらに小さな矢印はもっとひどい)