web-dev-qa-db-ja.com

ユーザーに「はい」の入力のみを許可するか、「いいえ」以外のすべてを許可するか

コンソールアプリケーションのようなもので、再試行するか、または別のオブジェクトを追加するかなどをユーザーに尋ねるとき、次のどれを受け入れるかを尋ねるときの方がよいでしょう(出力された最初の文字のみを小文字にした後)。

  • 続行するには「y」のみを受け入れます
  • 続行するには「n」以外を受け入れます

私が何を求めているかについてもう少し明確にする必要があるかどうか尋ねてください。

1
Ethan Brouwer

オープン質問とクローズ質問

A 3D character wondering where to go - given 5 possible paths

子供達

ここにあなたが子供の教育で時々見つけるであろうアドバイス:

自分でオプションを解決するのではなく、特定のオプションセットを子供に提供することをお勧めします。

たとえば、子供に「何を食べたいですか」と尋ねる代わりに彼女に「オムレツかご飯が欲しいですか?」と尋ねます。

主張は、子供たちがまだリハーサルされた認知的想起能力を発達させていないということです-ので、未解決の質問は彼らを困惑させ、そしておそらく彼らを恥ずかしがり屋に変えるかもしれません。

(とはいえ、創造的な思考と問題解決スキルを促進すると同時に、子供との多くの状況で未解決の質問が奨励されます:-「ミイラ、このボタンは何をしますか?」-「まあ、それは何をするだろうと思いますか?」そしてここからあなたはそれらを答えに導きます。)

大人

大人は、物事を思い出すのがはるかに上手でリハーサルされていますが、 ヒックの法則 に従って未解決の問題にも問題があります。

友人との会議を手配したいとします。次のどれがより迅速な意思決定をもたらす可能性があります。

  • いつ会いたいですか?
  • 午後5時、6時、または7時に会いましょうか。
  • 午後6時に会いましょうか。

私はあなたが最後のものを疑うことを望みます。一部の人々はこの概念をよく知っており、それを他の人をかじるためのテクニックとして使用するかもしれません。

インターフェイスで

したがって、ユーザーに質問を投げるが、考えられる答えを明確にしない場合、それは子供に未解決の質問をするようなものであり、(潜在意識の)応答は次のようになる可能性があります。「これに答えるために何を知っていると思いますか?私のオプションは何ですか?」.

質問で可能な回答を提供すると、この問題が解決します。

続行しますか[y/n]?

設計原則

設計者が以下の質問をすることを提案する設計原則と評価手法は多数あります(例 Cognitive walkthrough ):

ユーザーは、タスクを続行するために必要なアクションを指示できますか?

そしてまた:

これらのアクションはユーザーに表示されますか?

「続けますか?」両方の質問に対する答えが「いいえ」になることを意味します。

「続けますか[y/n]?」両方の質問に対する答えが「はい」になることを意味します。

制約

頭に浮かぶもう1つの問題は、constraintsの問題です。これは、ユーザーのエラーを防ぐためによく使用されます。

可能なオプションをリストアップしない場合[y/n]、答えが何であるかを推測するのはユーザー次第です。そして、彼らは間違っているかもしれません!入力を制限された値のセットに実際に制限しない限り、多数のエラーが予想されます。

もちろん、ynに加えて、yesnoも受け入れることができますが、エラーガードで、インターフェースのオプションのスペルは表示されません。

3
Izhaki

一般的には、次のうちどれがより重要かによって異なります。

  1. 続行を簡単/高速にする
  2. ユーザーが誤って処理を中止する

1の場合は2番目のオプションに進み、2の場合は最初のオプションに進みます。

どちらを選択するかに関係なく、アプリケーション全体で同じものを使用する場合、問題はないと言えます。ただし、私は通常、「y」で続行し、「n」で停止/キャンセルします。他のものは無視されます(おそらくメッセージが表示されます)。

0
Kvothe

可能であれば、少なくともどのような答えが期待される/受け入れられるかについての提案を提供することは、おそらくユーザーフレンドリーであろうと思います。これは[y/n]程度です。

そうでなければ、私の意見の後で、おそらくボタンをクリックすることに慣れているので、ユーザーがまったく答えないというリスクを冒すでしょう。しかし、それはもちろん、コンテキスト、アプリケーションのタイプ、および関連する対象者によって異なります。

0
tillinberlin

通常、この種のテキストベース(コマンドライン)ワークフローには、la (y/n)?、それはアプリケーションが期待することをかなり明確にします。このおなじみのパターンにこだわるといいでしょう。

内部的には、YesまたはNoの大文字小文字の違いや完全なスペルを説明できます(最初の文字を見てください)が、あまり遠くまでは行きません(Affirmativeは、おそらく許容できる入力ではありません=)また、入力でユーザーを実際にブリックウォールする必要がない場合は、デフォルトのオプションを提供します。通常、信頼できるコマンドラインアプリケーションが適切なデフォルトを提供していることがわかっている場合は、enterを最後まで押しても問題ありません。

0
Mark Hazlewood