web-dev-qa-db-ja.com

例外メッセージが大きすぎるのはいつですか?

対象外の請求書を支払いシステムに追加しようとすると、厄介な例外メッセージが表示されるWebアプリをテストしています。下の画像を参照してください。開発者はこれで問題はないと見ていますが、明らかに見苦しいようです。このようなメッセージがどのように設計されているかについて、現在の標準の良いリファレンスはありますか?常識的には、メッセージを予測可能なサイズに保つために、実際のデータタグを含まない一般的なメッセージを作成することをお勧めします。

enter image description here

24
Mike D

tl; dr:

一部の請求書は支払いの対象外です。支払い処理から除外されました。 [ 詳細 ]


エラーメッセージでは、次の2つを分離する必要があります。

  • エンドユーザー向けの情報(エンドユーザーが「修正」するためにできること)
  • サポートおよび開発者向けの診断

もちろん、開発者は彼らが望むものを望んでいるので満足しています。しかし、それはユーザーにとって有益ではなく、サポートリクエストを作成する可能性があります。

非常に非公式で統計的に重要でないエンドユーザーテストでは、驚くほど多くのユーザーにとって、

「doctorsoffice」を開くことができません。ファイルは読み取り専用です

そして

エラー: "doctorsoffice"を開けません。ファイルは読み取り専用です(コード5h)

非常に大きい:「怖い」または技術的なものを含めると、「エラーメッセージの失明」を引き起こす可能性がある、そしてむしろサポートを要求します(または単にあきらめます)。


このメッセージが失敗する2番目の側面は、ユーザーにそれが何を意味するかをユーザーに伝えることです。 [〜#〜] i [〜#〜]スクリーンショットを見てもわかりません。これは一般的な情報ですか?これは以前の操作の結果ですか?完全に失敗しましたか、それともソフトウェアが他の請求書を処理しましたか?

50
peterchen

これらのようなエラーメッセージは、エラー、警告、情報などを含むアプリコミュニケーションの一部です。上記のメッセージは長すぎます。問題を説明する短いタイトルと、エラーを詳しく説明する本文コンテンツを使用することをお勧めします。本文のコンテンツは最大2行で、展開するオプションにする必要があります。また、行が長すぎる WCAGアクセシビリティ基準1.4.8 に違反しています。つまり、視覚障害や読書障害のある人は、80文字(スペースを含む)を超えるテキストを読むのが難しいと感じるでしょう。一行で。

1
Sooraj MV

エラーは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                            |
+---------+---------------------------------+-------------------------------------------------------------+
0
IAmJulianAcosta