WPFデスクトップベースのアプリケーションには、発生するさまざまな種類のイベントについてユーザーに警告する要件があります。イベントは、ユーザーの現在のアクティビティに関連する場合と関連しない場合があります。ユーザーに各アラートを個別に確認してもらいます。
現在の実装では、イベントが発生するたびに最上位の非モーダルダイアログを表示します。また、ユーザーが確認する必要のあるイベントが複数ある場合は、これらすべての最上位のダイアログがカスケードされます(以下のモックアップを参照)。
もう1つの方法は、アラートタイプごとにウィンドウを用意し(最大5つのアラートタイプがある場合があります)、そのタイプのすべてのアラートをカスケードウィンドウとしてそのウィンドウに表示することです。
これらのアラートを表示する他のより良い代替策はありますか?
1990年代に呼ばれた!カスケードメッセージボックスを返してください!
警告システムは非常に複雑であり、正しく機能させるのは困難です。ある場合には微妙さが必要ですが、次の場合にはユーザーを正面から叩くよう要求します。うまくいかない場合は、毎回オオカミを鳴らすか(現在のデザインではこれを行っています)、角に隠れます。
エラーに対するユーザーのニーズとそれらを最適に設計する方法を分析するには、かなりのリソースを費やす必要があります。アラートのキャッチオールはありません。ユーザーとそのワークフローがユーザーのためにどのように機能するかを知る必要があります。
ポップアップ/アラートメッセージが多すぎる場合の代替案
タイトルは最初の問題を示しています。警告メッセージが多すぎます。
本当にアラートが必要なのは何ですか?ユーザーが非常に積極的に解釈される必要があるほど本当に重要なのは何ですか?
本当に警告する必要があるものを見つけるには、警告の監査が必要になる場合があります。
イベントは、ユーザーの現在のアクティビティに関連する場合と関連しない場合があります。
「タスクA」で作業していて、完全に無関係な現在のタスクに関する何かがポップアップした場合、どうすればよいですか?確認して作業を続けますか、それとも対処しなければなりませんか?
アラートプレゼンテーションは、アラートが私の現在のタスクにとって無意味であることを暗示しています。アラートが10件ある場合、まったく関係のないアイテムで[OK]を10回クリックします。それらすべての発言を思い出すことはできません。画面に10個のアラートが表示されるので、私はそれらを処理して画面から離すように処理します。
多くのユーザーはダイアログを読まずに確認しているだけだと思います。
ユーザーに各アラートを個別に確認してもらいます。
どうして?彼らはとても重要なので、ユーザーのワークフローを中断して、彼らがしていることとは何の関係もない可能性のある何かで「OK」ボタンを押すように要求しますか?
飛行機の翼が脱落しそうですか?ええ、それに対処する必要があります!
私が知って対処すべき問題はありますか...最終的には?そのために顔を叩かれる必要はありません。
現在の実装では、イベントが発生するたびに最上位の非モーダルダイアログを表示します。
あなたのコードはそれを「非モーダル」と呼びますが、ユーザーはそれを邪魔だと呼びます。これらは非モーダルダイアログではないため、ユーザーが何らかの方法でnowを使用するように要求しています。ユーザーには2つの選択肢があります。
ユーザーがそれを無視して作業を続ける方法はありません。それはあなたのコードがそれを呼び出すとは無関係に、それは彼らへのモーダル警告ボックスです。
ユーザーがメインウィンドウの背後にアラートを非表示にできる場合は、ダイアログを使用しない理由がさらにあります。準備ができたらユーザーが対応できる場所に置いてください。
また、ユーザーが確認する必要のあるイベントが複数ある場合は、これらすべての最上位のダイアログがカスケードされます(以下のモックアップを参照)。
アラートがユーザーを人質にしています!
ユーザーがタスクを完了することを許可していません。「OK」ボタンをクリックするように強制しています。
もう1つの方法は、アラートタイプごとにウィンドウを用意し(最大5つのアラートタイプがある)、そのタイプのすべてのアラートをカスケードウィンドウとしてそのウィンドウに表示することです。
これを見てみましょう:
download bmml source – Balsamiq Mockups で作成されたワイヤーフレーム
ユーザーは何に取り組んでいますか?わからない...そしてあなたのユーザーもおそらく知らないでしょう。あなたがワークフローからそれらを完全に削除し、それらを確認ロボットにすることを強いたからです。
これらのアラートを表示する他のより良い代替策はありますか?
まず、上で述べたように、ユーザーのワークフローを実際に調べ、それらを中断する(アラートを強制的に確認する)必要がある理由とタイミングを理解する必要があります。
アラートの重要性がわかったら、適切な場所と適切なプレゼンテーションを見つけることができます。すべてのアラートが必ずしも同じ量の注意を要求するわけではないため、アプリケーションによって異なるアラートスタイルが使用される場合があります。
通知エリア
通知領域を提供するGmailなどのWebアプリを見てください。
通知アイコンをクリックすると、アラートが一覧表示されます。ユーザーは必要なものを却下できますが、おそらく他の人を囲んで何かをするように促すことができます!
ベルアイコンに注意する必要があるものがあると、バッジが表示され、警告の数がわかります(現在、何もないため、空白になっています)。
アラートがアクションを要求しない場合は、アクションを強制しないでください。ユーザーに現在のタスクを完了させ、アラートが伝えている問題に対処できるようになったらアラートに対処します。
アラートポップアップ
すぐに行動を要求するかもしれない特定のことがあります!そのためにポップアップを使用しますが、ユーザーがそれによって割り込まれる必要があることを確認してください!
アラートバー
通知領域よりもアラートについてもう少し洞察が必要だが、ユーザーを正面から叩く必要がない場合、おそらくアラートバーの線に沿った何かが機能します。
アプリケーションの適切な場所(必ずしも下ではない)で、5つのタイプのそれぞれの最新のアラートを表示できます。アラートをクリックすると、通知領域と同様に他のアラートのリストが表示されるか、最新のアラートを確認して次のアラートを表示します(存在する場合)。適切なロジックは、ユースケースで発見する必要があるものです。
バーはユーザーの邪魔をするものではありませんが、システム上のアラートの状態を明確に示します。
繰り返しますが、ユーザーと協力して、アラートを表示する必要がある理由とタイミングを本当に理解する必要があります。ユーザーが強制的にしなければ強制しない限り、ユーザーをワークフローの外に出さないでください。オオカミをいつも泣かないで。そもそもなぜ非常に多くのアラートがあるのか(そしてそれらを減らす方法)を理解してください!