web-dev-qa-db-ja.com

暗黙的な意味で重複する可能性のあるエラーを表示するのがベストプラクティスですか、それとも1つのエラーだけですか?

フォームフィールド(数値フィールドなど)を検証する場合-別の検証をカプセル化する可​​能性がある検証に関して、ベストプラクティスと見なされるものは何ですか?

例:フォームの年齢フィールド。このフォームでは、年齢を入力し、値を18〜30にする必要があります。

私たちのチームは、フィールドが空の場合、要件の1つが暗黙的に他の要件を暗示すると考えられているため、2つのモードの思考の間で引き裂かれます。

キャンプAエラー:

  • 年齢が必要です
  • 年齢は18歳から30歳である必要があります

ここでの考えは、私たちのオーディエンスは通常、最も技術に精通したユーザーで構成されていないため、私たちが持っているオーディエンスに対して可能な限り説明的であることが最善であるということです。したがって、値IS必須であり、範囲内にある必要があります。

キャンプBエラー:

  • 年齢は18歳から30歳である必要があります

ここでの考え方は、値は2つの数値の間にある必要があると述べているため、ルールは基本的に値が必要であることを意味するということです。もう1つの考えは、エラーを少なくすることは、ユーザーにとって親しみやすく、怖くないということです。

検証設計の一般的な考え方は状況を説明するものであることは知っていますが、設計をシンプルで可能な限り単純に保つという原則もあります。この質問について他の感情/入力を検索してみましたが、適切なキーワードを使用していないようです。

4
tostringtheory

ほとんどの場合、同じ方法でエラーメッセージを生成することをお勧めします。

  1. なにが問題ですか
  2. 問題を適切に解決する方法

例にあるような検証が2つのエラーメッセージに対するものである場合でも、この問題に固執し、それらを要約してみてください。

年齢が必須フィールドであることをユーザーに伝えると、2番目のエラーメッセージが表示される可能性があるため、これはユーザーにとって本当に煩わしいことです。だからあなたの例では、私はこのようなエラーメッセージを書きます:

必須フィールド:18〜30歳の年齢を入力してください。

また可能:

あなたの年齢は必須です。 18歳から30歳までの年齢を入力してください。

また、マイクロインタラクションの検証は非常に便利ですが、すべてのコンテキストで可能とは限りません。

1
Björn Frieling

キャンプBの推論を使用することは、ユーザーが「年齢」を入力する必要があることをユーザーが直接理解することを意味します。一部のユーザーは理解できないため、これはユーザーベースの誤解につながる可能性があります(つまり、年齢は18歳から30歳でなければなりませんが、私が何もしなかった場合、それはどういう意味ですか?システムがこれは必須であると言いますか?).

キャンプAのロジックが最適です。ユーザーは何をすべきかを理解しているはずです(範囲内に入力してください)。

ボーナス:ある種の「インライン検証」を使用して、ユーザーが既に行ったかどうかについてユーザーにフィードバックを提供できます。彼らは数字を入れましたか? 「年齢が必要です」には、それが適合することを示す「ok」記号が付いています。数字を入力し、この数字は18から30の間ですか?どちらの推奨にも「OK」記号が付いており、必要に応じてボックスが完全に完成したことを示します。

8文字、記号、大文字、小文字などを必要とするパスワードを要求するWebサイトでそれを使用している人々を見て、条件が満たされるたびに「ok」を表示しました。このように、ほとんどの「マイクロインタラクション」検証を使用して、ユーザーがまだ何をする必要があるか、何をしたかをユーザーに示します。

0
Rhevan