今までに色々なシステムを見てきましたが、私が気になる事柄の一つにエラーメッセージがあります。特に一般向けでない業務システムでは、不適切なエラーメッセージが多々見受けられるように思います。そこで、今回はエラーメッセージをどのようにすればよいか考えてみます。
例えばWebシステムで、メールアドレスを利用者に入力してもらう画面があるとします。この入力フォームに利用者が間違えて全角で入力した場合に、今まで見てきたシステムで出力されたエラーメッセージを挙げ、その問題点を考察してみたいと思います。
例1: 「内部でエラーが発生しました」というメッセージが画面に表示される
このエラーメッセージは問題です。利用者がこのメッセージを読んで、どうすればいいのでしょうか。
このようなエラーメッセージは、あまり詳細な設計がされたいないシステムや、あまりテストされていないシステムでよく見受けられます。プログラマが想定していないエラーが発生した場合のエラー処理として、このようなエラーメッセージが使われることが多いように思います。例えばJavaですと、ServletクラスでExceptionをキャッチしたら、とりえあえず上記のようなエラー画面に飛ばす等です。
個人的には、プログラマが想定していないエラーが発生したら、それはもう不具合と同じだと思っています。
例2: 「バリデーションエラー(mail)」というメッセージが画面に表示される
あまり利用者のことを考えていないプログラマがシステムを作った時に、こういうメッセージを表示していました。製作者は、利用全員が「バリデーション」の意味を分かると思ったのかもしれませんが、私はそうでないと思います。
エラーメッセージは、あくまでも利用者の言葉で書くべきです。
例3: 「メールアドレスが不正です」というメッセージが画面に表示される
よくあるエラーメッセージだと思いますが、このメッセージには解決策がありません。利用者は、「メールアドレスが間違い」だと理解することはできると思いますが、どのように直してよいか分からない場合があるはずです。例えば全角と半角の間違いの場合、プロポーショナルフォントでは違いが分かりにくいため、間違いに気づかないかもしれません。
例4: 「メールアドレスは@(アットマーク)を含む半角英数字で入力してください」というメッセージが画面に表示される
私は、このエラーメッセージが一番わかりやすいと思いました。間違いの場所と解決策が書かれています。
例5: 全角で入力した文字が半角に自動変換され、エラーが発生しない
この方法は場合によっては最良かもしれませんが、私はこの方法の使用には慎重になるべきだと考えています。例えば、将来マルチバイトのドメインが一般的に使われ始めた場合はどうするのでしょうか。
この話題は今回の記事とは少し離れてしまいますので、別の機会に考えたいと思います。
結論として、私はエラーメッセージは次のようなことに気をつけるべきだと考えています。
・エラーの発生原因を示す
・エラーの解決策を示す
・メッセージには利用者が理解できる言葉を使う
上記のポイントの他に、エラーメッセージの出し方を有名なサイトで研究するのもオススメです。例えばGoogleでキーワードに一致するサイトがない場合に、どのような画面になるでしょうか。色々なサイトでエラー画面を出して比較してみるのも面白いかもしれません。
機会があれば、このブログでやってみたいと思います。
例えばWebシステムで、メールアドレスを利用者に入力してもらう画面があるとします。この入力フォームに利用者が間違えて全角で入力した場合に、今まで見てきたシステムで出力されたエラーメッセージを挙げ、その問題点を考察してみたいと思います。
例1: 「内部でエラーが発生しました」というメッセージが画面に表示される
このエラーメッセージは問題です。利用者がこのメッセージを読んで、どうすればいいのでしょうか。
このようなエラーメッセージは、あまり詳細な設計がされたいないシステムや、あまりテストされていないシステムでよく見受けられます。プログラマが想定していないエラーが発生した場合のエラー処理として、このようなエラーメッセージが使われることが多いように思います。例えばJavaですと、ServletクラスでExceptionをキャッチしたら、とりえあえず上記のようなエラー画面に飛ばす等です。
個人的には、プログラマが想定していないエラーが発生したら、それはもう不具合と同じだと思っています。
例2: 「バリデーションエラー(mail)」というメッセージが画面に表示される
あまり利用者のことを考えていないプログラマがシステムを作った時に、こういうメッセージを表示していました。製作者は、利用全員が「バリデーション」の意味を分かると思ったのかもしれませんが、私はそうでないと思います。
エラーメッセージは、あくまでも利用者の言葉で書くべきです。
例3: 「メールアドレスが不正です」というメッセージが画面に表示される
よくあるエラーメッセージだと思いますが、このメッセージには解決策がありません。利用者は、「メールアドレスが間違い」だと理解することはできると思いますが、どのように直してよいか分からない場合があるはずです。例えば全角と半角の間違いの場合、プロポーショナルフォントでは違いが分かりにくいため、間違いに気づかないかもしれません。
例4: 「メールアドレスは@(アットマーク)を含む半角英数字で入力してください」というメッセージが画面に表示される
私は、このエラーメッセージが一番わかりやすいと思いました。間違いの場所と解決策が書かれています。
例5: 全角で入力した文字が半角に自動変換され、エラーが発生しない
この方法は場合によっては最良かもしれませんが、私はこの方法の使用には慎重になるべきだと考えています。例えば、将来マルチバイトのドメインが一般的に使われ始めた場合はどうするのでしょうか。
この話題は今回の記事とは少し離れてしまいますので、別の機会に考えたいと思います。
結論として、私はエラーメッセージは次のようなことに気をつけるべきだと考えています。
・エラーの発生原因を示す
・エラーの解決策を示す
・メッセージには利用者が理解できる言葉を使う
上記のポイントの他に、エラーメッセージの出し方を有名なサイトで研究するのもオススメです。例えばGoogleでキーワードに一致するサイトがない場合に、どのような画面になるでしょうか。色々なサイトでエラー画面を出して比較してみるのも面白いかもしれません。
機会があれば、このブログでやってみたいと思います。