対象外の請求書を支払いシステムに追加しようとすると、厄介な例外メッセージが表示されるWebアプリをテストしています。下の画像を参照してください。開発者はこれで問題はないと見ていますが、明らかに見苦しいようです。このようなメッセージがどのように設計されているかについて、現在の標準の良いリファレンスはありますか?常識的には、メッセージを予測可能なサイズに保つために、実際のデータタグを含まない一般的なメッセージを作成することをお勧めします。
tl; dr:
一部の請求書は支払いの対象外です。支払い処理から除外されました。 [ 詳細 ]
エラーメッセージでは、次の2つを分離する必要があります。
もちろん、開発者は彼らが望むものを望んでいるので満足しています。しかし、それはユーザーにとって有益ではなく、サポートリクエストを作成する可能性があります。
非常に非公式で統計的に重要でないエンドユーザーテストでは、驚くほど多くのユーザーにとって、
「doctorsoffice」を開くことができません。ファイルは読み取り専用です
そして
エラー: "doctorsoffice"を開けません。ファイルは読み取り専用です(コード5h)
非常に大きい:「怖い」または技術的なものを含めると、「エラーメッセージの失明」を引き起こす可能性がある、そしてむしろサポートを要求します(または単にあきらめます)。
このメッセージが失敗する2番目の側面は、ユーザーにそれが何を意味するかをユーザーに伝えることです。 [〜#〜] i [〜#〜]スクリーンショットを見てもわかりません。これは一般的な情報ですか?これは以前の操作の結果ですか?完全に失敗しましたか、それともソフトウェアが他の請求書を処理しましたか?
これらのようなエラーメッセージは、エラー、警告、情報などを含むアプリコミュニケーションの一部です。上記のメッセージは長すぎます。問題を説明する短いタイトルと、エラーを詳しく説明する本文コンテンツを使用することをお勧めします。本文のコンテンツは最大2行で、展開するオプションにする必要があります。また、行が長すぎる WCAGアクセシビリティ基準1.4.8 に違反しています。つまり、視覚障害や読書障害のある人は、80文字(スペースを含む)を超えるテキストを読むのが難しいと感じるでしょう。一行で。
エラーは2つのカテゴリに分類する必要があると思います。
ここで何かがうまくいかないときアプリケーションで、コードのエラーのようなもの、それの誤動作またはそのようなもの。この場合、ユーザーに関連する情報はそれほど多くないため、ここではエラーコードがいい考えです。
エラーコードを使用すると、ユーザーはアプリケーション開発者から何らかのサポートを得て、それを報告できるため、ユーザーは単純なnon sense情報(つまり stack trace )。
アプリケーションが失敗したことをユーザーに通知する必要があり、サポートに連絡してレポートするようにユーザーを促す 問題。したがって、ユーザーは自分にできることは何もないことを知っており、開発者はユーザーからいくつかの情報を得ることができます。
アプリケーションに問題があり、現在リクエストを処理できません。 report 問題を解決してください。この問題を支援できます。これを報告するときは、エラーコード[00001]を報告してください。
これらのエラーは、アプリケーションが実行しているときに発生します意図することですが、他の種類のエラー(ユーザーエラー、検証エラーなど)が原因でエラーが発生します。
その場合、適切な方法は、何か問題が発生したことをユーザーに通知することです(あなたの場合:一部の請求書は処理できませんでした)。その特別なケースでは、情報を通知し、できる限り多くの情報を提供する必要がありますユーザーに通知して、問題を修正できるようにします。
例(@peterchenの回答に基づいて、彼はこのケースについて非常に良い答えを出します)
一部の請求書は支払いの対象外です。支払い処理から除外されました。 詳細
詳細は次のようになります。
+=========+=================================+=============================================================+
| Invoice | Problem | Possible solution |
+=========+=================================+=============================================================+
| 00001 | Date is outside permitted range | Review the dates of your invoice, so it matches this period |
+---------+---------------------------------+-------------------------------------------------------------+
| 00002 | Price includes decimals | Use only integers for your price |
+---------+---------------------------------+-------------------------------------------------------------+