web-dev-qa-db-ja.com

コンボボックスのタブキーの正しい動作は何ですか?

ユーザーがキーボードを使用してコンボボックス内のアイテムをスクロールし、Tabキーを押すとどうなりますか? Enterキーのように動作し、現在ハイライトされているアイテムを選択して、次のコントロールに移動しますか? (GoogleアプリケーションなどのWebページでこれを確認しました)または、Escキーを押してコントロールを閉じ、次のコントロールにジャンプするように動作する必要がありますか? (Java)の組み込みのルックアンドフィールでこれを確認しました。)タブを押すと、行っている選択が失われることが多いため、自分に偏っています。習慣によって、しかしそれを使用して値をコミットすることをサポートするアクセシビリティガイドラインを見つけることができません。また、Java swingと seems醜いハックが必要です

答えがアプリケーションが実行されているプラ​​ットフォームに依存している場合、それは複雑な答えになる可能性があります。私は、クロスプラットフォームのデスクトップJavaアプリケーション(大部分はMac、かなりの数のウィンドウとLinuxの人口を持つ))に取り組んでいますが、最終的にはWebに移行する予定です。

3
Joshua Goldberg

まず、アクセシビリティの理由から、タブキーがフォーム内の次のアイテムに即座に移動することが非常に重要です(意味のあるタブの順序に基づいて-左から右、上から下)これはあなたの質問ではないことを知っていますしかし、私は、TABキーの登録やそのような意味のないことを防ぐように人々が勧めないようにしたかったのです。

コンボボックスにフォーカスがあり、「T」という文字を入力して「テキサス」が強調表示されている場合、この時点でEnterキーまたはTabキーを押すと、同じ結果が得られます。

これについて公式なものを見つけることはないと思いますが、そうでない場合はバグレポートを見つけることができます。

2
DaveAlger

最小の驚きの原則による設計。

ユーザーが99.999%の確率でタブキーを押したが、これはエラーではなかった。それで彼らは何を期待していますか?

一貫性のヒューリスティックは、ユーザーが最も使い慣れたプラットフォームと同じ動作を期待することをガイドします-実際にそのプラットフォームでの動作を知っている場合。マイノリティになるこの微妙な何かのために。

ユーザーはビックリ

  • データが失われている(つまり、現在の選択入力が失われている)
  • 何も起こりません(なぜキーを押すのですか?)

アクションは「不可逆的」ではないため、「可能な限り驚くべきこと」を実行しても害はありません。つまり、現在の値を受け入れて、次のコントロールに移動します。

1
Jason A.

Enterキーの模倣とエスケープキーの模倣の2つの可能な動作をリストしました。何もしないことを考えましたか?現在の状態(option-list-showing)の特定のコントロール(コンボボックス)には不適切なキーストロークを破棄するだけです。

コンボボックスがフォーカスを取得したときにオプションリストが自動的に表示されない限り、タブキーを無視して、ユーザーが別のキーストロークが必要になるのをキャッチするのを待つだけで問題ありません。

コンボボックスがフォーカスで自動的に開く場合、ユーザーがコンボボックスを通過して次のコントロールに移動しようとしていることを示している可能性があるため、タブを破棄しないでください。

0
Henry Taylor