web-dev-qa-db-ja.com

右側にドッキングされたサイドバーがあるウィンドウに最適なスクロールバーの位置は何ですか?

LibreOfficeでは、サイドバーが有効になっているとき、スクロールバーは画面の端(ウィンドウを最大化する場合)にありません。

LibreOffice window

画面の端はカーソル移動の重要なターゲットであるため、これはフィットの法則に違反します。

一方、スクロールバーは、それが制御する領域の近くに表示するのが最適です。

この状況はどのように解決できますか?

私は個人的に、画面の端にスクロールバーを常に表示することを好みますが、サイドバーを左に移動することはここではオプションではありません。

関連するバグ

2
mati

何よりも、私はLibreOfficeを1〜2回しか使用しなかったので、そのソフトウェアの専門家にはほど遠いので、この答えはスクリーンショットのような一般的なモデルに当てはまります。

上記のように、あなたの画像に表示されているアプローチは正しいと思います。ここでの問題は、ソフトウェア画面全体をスクロールバーの影響を受けるビューポートと見なしているように見えることですが、これは正しくありません。概念的、物理的、プログラミングのどちらの観点からこの問題を検討しても、編集領域は、それがどこに配置されているかに関係なく、どのツールバーとも異なります。したがって、それらには独自のコントロールのセットがあります。 効果的にフィットの法則を破る だけでなく、各ビューポートに予想されるアフォーダンスを無効にするだけでなく、あなたが言うことを実行することによって。これをよりよく説明するために、サイドバーが完全に収まらない点までスクロールして、スクロールする必要があります。エディションビューポートのスクロールバーをその場所に配置する場合、サイドバーのスクロールバーをどこに配置しますか?

要点は、編集ウィンドウはビューポートです。サイドバーは別のビューポートです。トップメニューは別です。等々。ビューポートはその境界によって制限され、それらの境界を超えると、そのビューポートに属し、そのビューポートのみに属するスクロールまたはオーバーフローが発生します。これはほとんどの場合に当てはまります。テキスト領域について考えてください。スクロールバーはページの横ではなく、要素の横にあります。 Webページのスクロール領域またはフレーム、選択、ドロップダウン、および考えられるあらゆるもの(常に、新しいアプローチや実験ではなく、デフォルトの動作について話している)についても同じです。

概念的な側面を見てみましょう。編集領域は、プレーンテキストの入力を受け入れる以外のアクションを保持しないゾーンです。つまり、これはcontentになります。ただし、サイドバーには、コンテンツまたはそのコンテンツを保持するキャンバスに影響するアクションがあります。それらはそれ自体では存在しませんが、コンテンツの存在によって制約されます(またはコンテンツが存在しない場合、変更するものがないため、これらのアクションは何も実行しません)。

これを物理的な世界の例えに例えると、長い紙に手紙を書いたとしましょう。書くとき、あなたはあなたの手を動かし、そしておそらく紙のシートさえも動かすでしょう。しかし、ページを書き留めるために机を移動することは絶対にありません。さて、あなたの机はメインプログラムのウィンドウであり、紙は編集ウィンドウであり、手はカーソルであると考えてください。手がシートの境界の内側に移動し、シートが机の境界の内側に移動します。何らかの理由で机を移動する必要があったとしても、部屋の境界の内側に移動しますが、紙のシートは独立したままです。その動きの。

簡単に言うと、スクリーンショットがあなたが問題として認識しているものである場合、そのスクリーンショットに表示されている動作は正しいものだと思います。

2
Devin