web-dev-qa-db-ja.com

F5などの既知のキーボードショートカットをキャプチャすることは悪いUXですか?

データが入った編集可能なテーブルがあるウェブサイトがあります。

キャプチャしています F5 ページ全体を更新するのではなく、データを更新する(データが更新されたことを明確に通知する)には、ユーザーエクスペリエンスの悪さはありませんか?

知っているユーザーが F5 また知っています CtrlR?次のような別のキーボードショートカットを思いついた場合 CtrlAltR 代わりに?

56
Hex

他のことをするために使い慣れたコントロールを転用することは、ユーザーが期待するとおりに動作しないことを単に意味するので、一般に悪い考えです。

コントロールセットを拡張する場合は、既存のコントロールを避けて新しいコントロールを追加するのが最善です。これにより、ユーザーが使い慣れているコントロールが期待どおりに動作します。

117
Andrew Martin

(ユーザーが作業しているアプリケーションの範囲内で)既存のキーボードショートカットを引き継ぐことは恐ろしい考えです。

あなたはそれを明示的に述べていませんが、あなたのアプリケーションはブラウザベースだと思います。ブラウザのコンテキストでは、 F5 は既存のキーボードショートカット(一般的なショートカット)ですが、お勧めできません。

個人的な経験から-Norton AVをインストールしていて、サブスクリプションの有効期限が切れていました。すぐに更新したくありませんでした。それが期限切れになった後、アプリが引き継ぎました F5 このようなショートカットを押すと、ノートンの更新広告で「常に最上位」のモーダルが読み込まれました。これは当時使用していたアプリに関係なくでした。これは標準的な動作に非常に煩わしかった期待していた、私はアンインストールしてしまい、会社とのすべてのビジネスを停止してしまいました。

この動作I expectedと実際に起こったことの間の不一致は、私が達成しようとしているタスクに対して摩擦の感覚を生み出します。私は、この種の摩擦が発生したときに身体からのエネルギー流出を物理的に感じることができるのような人々の1人です。

それは、ボリュームを増減する方法としてガスペダルを引き継いだ新しいカーステレオを車に追加するようなものです。極端な例だと思いますが、そういう感じで感じています。

別の例として... Chromeでは、以前はバックスペースボタンを使用して、ユーザーを表示していた最後のページに戻ることができました(ブラウザーの[戻る]ボタンを押すのと同じです)。彼らはそれを無効にし、適切な Alt+back arrow。数千人のChromeユーザー 抗議するためにサポートフォーラムを利用した

代わりに、おそらくテーブルの横(または上/下)に更新アイコンまたはボタンを配置して、ユーザーが単一の TAB 現在グリッドでフォーカス/作業しているときにキーを押します。集中すると、 Enter (またはマウスでクリックすると)トリガーされます。必要に応じて、新しいキーボードショートカットを作成してアクティブ化することもできます。これは、ブラウザーによって既に動作に割り当てられているショートカットではないことを確認します。

57
GWR

常に 最小の驚きの原則 に従ってください。の用法 F5 この状況では驚くべきものと考えられます。

最も驚くべき動作を提供するために、キーをオーバーライドする必要がある場合があります。一般的なケースは、従来はデスクトップベースでしたが、現在は薄いシェルとして機能するブラウザーウィンドウで実行されているアプリケーションです。この場合、オーバーライドするのが論理的です(ctrl/cmd/superO ブラウザ内ではなく、アプリケーションの一部としてドキュメントを開く。


あなたの特定のケースでは、ユーザーが手動でテーブルを更新する必要があるかどうか疑問に思います。常に最新になるように、データを自動的に更新する方がよい場合があります。ユーザーの変更を明示的にコミットする必要がある場合は、(ctrl/cmd/superS このアクションを実行することには意味があります。

21
Wes Toleman

私がこれを行ったのは、管理者ユーザーが生のSQLクエリを直接入力してデータベースに対して実行できる内部システム診断Webページを使用したときだけです。

ユーザーはF5ショートカットを使用してクエリを実行するSQL Server Management Studioを使用することに慣れていました。ユーザーは、F5を押すとページが更新され、クエリが失われると不満を訴えました。 F5を押すと、筋肉のメモリに埋もれてしまい、ページが更新されることがわかっていたとしても、そのキーを自動的に押してクエリを実行しました。

ページを更新してF5をキャプチャし、代わりにクエリを実行させた後、ユーザーはmuchがより快適になりました。

11
Bradley Uffner

ブラウザーが意図しない一般的なことを行うためにコントロールを「キャプチャ」することが許容される場合があります。しかし、それらは非常に限られています。それらは経験則ではなく、例外であるべきです。

たとえば、回答を追加しているときにF5キーを押すと、「本当によろしいですか?」ページから離れるナビゲート(更新)を "キャプチャ"することは一般に良くありませんが、この場合は良いことです。

他の本当に良い例は、複雑なWebアプリケーションの右クリックコンテキストメニューです。たとえば、「PDFとしてダウンロード」または「Excelとしてダウンロード」するために右クリックをインターセプトするレポート。 WYSIWYGテキストエディタが右クリックをキャプチャして置き換えます。

非常に注意深く使用すると、優れたツールになる可能性があります。虐待された場合、子犬を殺害する人食いよりもUXを悪化させる可能性があります。秘訣は、他に何も意味がないときにのみそれを行うことです。他に方法がなく、元のアクションがユーザーが実際に望むアクションではないことが100%確信している場合。

追伸この回答では、ダイアログがナビゲーションで発生し、キーを押したときに発生するのではなく、F5を押しつぶすとダイアログが表示されるということは考慮していません。

3
coteyr

他の答えは、期待された動作を壊すことは悪いUXであることを明確にします。ユーザーのキーボードがどのようなもので、既存のキーボードショートカットがどのようなものかわからないということを付け加えておきます。キーボードショートカットを定義する方法がなく、ショートカットを定義することも悪いUXです。

したがって、次のようにキーボードショートカットを実装することをお勧めします。

  1. Webアプリケーションは、「テーブルの更新」や「次のテーブルに移動」などのいくつかのアクションを定義します
  2. Webアプリケーションは、これらのアクションを適切なデフォルトキーにバインドします。 r 「テーブルの更新」と n 「次のテーブルに移動」。
  3. ユーザーは、Webアプリケーションの設定でキーバインドを調整できます。

2つの例:

  • ウクライナのユーザーは、「次のテーブルを移動」を д キー、дальший。
  • Vivaldiブラウザーのユーザーは、 r ( 'rectangle'の場合)既に[Capture Area to File]にバインドされています。現在は、スクリーンショットモードに入らないとテーブルを更新できません。彼らはあなたの設定を入力し、「Refresh table」をバインドします u (「更新」の場合)、代わりに。
2
Esteis

確立されたキーボードショートカットのアクションを変更することは悪いUXであることを確立したので、より良いUXの提案を次に示します。

ユーザーがF5またはCmd-Rを押してページをリロードしたことを検出し、「知っていますか?」カスタムキーボードショートカットを宣伝するポップアップ:

Ctrl Alt Rを押すと、いつでもテーブルデータをすばやく更新できます

#discoverability

また、このポップアップの煩わしさを軽減することもできます。1日に1回だけ表示するか、表のあるページのみに表示するか、またはユーザーがショートカットを数回使用するまでのみ表示します。

2
joeytwiddle

これは通常、不十分に実行されるか、何らかのDRM /「盗用」保護を実施しようとする試みで実行されます。ブラウザーでデフォルトのコントロールをインターセプトする場合、それは、ユーザーの表示を変更する複雑なAJAX駆動のレイアウトで時々現れるグリッチを修正することだけです。たとえば、マウスホイールまたは矢印が、スクリプトによってオーバーレイされたものではなく、ページの誤った部分をスクロールした場合。次に、通常はページの読み込みを中止し、GIFアニメーションを停止してオーバーレイでの読み込みを中止して閉じるだけのESCキーもフックしました。また、ドラッグ動作をデフォルトのドラッグアンドドロップからマップサイトに表示されるようなものに変更しました。スクロールを制御します。ただし、表示モードを選択するオプションをユーザーに提供し、これらのワイルド機能はデフォルトで無効になっています。

1
Zdenek

F5 /リロードの特定のケースでは、代わりに service worker をサイトに実装することをお勧めします。これにより、すべてのページのアセットのローカルキャッシュが処理されます。

この方法では、指定しない限りページは(サーバーから)更新されませんが、データは常に更新されます。

ユーザーにとっては、効果はまさにあなたが望むものです-データだけが更新されます。ただし、UX POVから提供されるはずの機能はそのまま残ります。

1
Patrick Nemenz