質問: ユーザーエクスペリエンスの向上:エラーを強調表示するか、間違ったキーストロークをブロックしますか? テキストボックスに入力する情報があります。データは構造化されており、一部のシーケンスのみが有効です。たとえば、電話番号の場合、aなどの文字は無効です。キーボードイベントをインターセプトして、入力した文字がテキストボックスに届かないようにする必要がありますか。それとも、ユーザーに文字が受け入れられないことを知らせるために、赤い波線(または別の視覚的な合図)を描画する必要がありますか?どちらがより良いユーザー体験ですか?
回答: ほとんどのものと同じように..コンテキストに依存します。私はそのトピックについてより専門的な見解を持っています。私または私のグループが取り組んでいるアプリケーションのほとんどは、本質的に技術的であり、適度に訓練された人によってのみ使用されます。そのため、一般の人々よりも、ユーザーの手に多くの責任と自由を与えることができます。簡単に言うと、私たちが使用するガイドラインのいくつか... 無効なエントリは無視してください...無効なキーストロークをブロックします。 コントラストと色*で、すべてが不可能であるはずの状態である無効なフィールドを示します。 フォーカスは常にユーザーの制御下にあります。ユーザーを閉じ込めたり、フォーカスの変更を妨げたりしないでください。 モーダル警告/エラーボックスをスローしないでください。ずっと。 ユーザーに質問しないでください。ソフトウェアは人ではなくツールです。はい私は確信しています。 enter/returnキーは常に意味します:変更を受け入れて次に進みます。 enterのデフォルトとしてキャンセル/終了ボタンにフォーカスを使用してこれを変更しないでください。 エスケープキーは常に意味します。破棄して終了します。 可能な限りオートコンプリートを提供します。 最小/最大制限がある数値のショートカットエントリを提供します。例えば有効な値が0.12から100.387の間の場合、999のように100.387より大きいエントリは100.387として扱われます。 ユーザーが理解できる動作に関するルールを明確に設定します。これが過度に複雑になった場合は、考え直してください。 ほとんどすべての例はユーザーが要求したものであり、そうです...実装は本当のクマ/悪夢/キラーですが、ほとんど不可能です。警告:繰り返しますが、これらの例は、テクニカルユーザーベースの垂直システムのコンテキストで与えられています.... webの一般公開フォームなどではありません。あなたのマイレージはさまざまです。※赤を除く。私たちのビジネスの赤は、次のことを意味しています。