web-dev-qa-db-ja.com

一括アクション:すべてのアイテムがアクションをサポートしていない場合の対処法

次のシナリオを想像してください。ユーザーが一連のアイテムを選択すると、[一括操作]ボックスが表示されます。ユーザーがすべてのアイテムがサポートしていないアクションを選択しました(何らかの理由で)。

この場合、何をしますか?アクションをサポートするアイテムにアクションを適用しますか?アクションをまったく適用せず、エラーメッセージを表示しますか?

私の現在の考えはどちらかです:

  • アクションをサポートするアイテムにアクションを適用します。アイテムを非表示にするアクション(「アイテムの削除」など)では、問題のあるアイテムを選択したままにしておき、「一部のアイテムを削除できませんでした」というエラーメッセージを表示します。
  • allアイテムでサポートされていないアクションを無効にし、アクションの問題のあるアイテムの選択を解除する「修正」リンクを提供します。

また、関連する実際の例を教えていただけますか?

13
Dan Burzo

あなたからのより多くの情報(例えば、それはデスクトップまたはウェブアプリですか?)なしで、ここにアイデアがあります:

alt text

ユーザーが実行したいアクションを選択したとき、アクションがall選択されたアイテムに適用できる場合は、リストアイテムに対して何もしません。できない場合は、アイテムが適用されるものを太字(または別の色)で表示し、右側に説明文を添えてください。例:

alt text

リストは非常に長い可能性があるため、再配置できるアイテムの総数を必ず表示する必要があります。

もちろん、これは考えられるバリエーションの1つにすぎません。

6
Hisham

簡単な答えはユーザーが最初から間違えないようにするです。選択したすべてのアイテムに対してアクションを実行できない場合は、アクションを無効にする必要があります。そのアクションを実行できない理由をユーザーに説明し、解決策を提案します。

5
Antony Quinn

ほとんどのUIソリューションはコンテキストに依存していると思います。「削除」で機能するソリューションは「移動」で機能しない可能性があり、eコマースで機能するソリューションは産業用ツールで機能しない可能性があります。

つまり、抽象的には、引用した「表示ボックス」に数値インジケーターを追加して、ユーザーに「29アイテムをターゲット、5ロック」のように伝え、必要に応じて問題なく続行できるようにする、または「5ロック」の部分をクリックして、「警告項目」を確認してください。

いずれにしても、「エラーメッセージ」は避けます。それはユーザーの問題ではなく、あなたの問題です。 ;)

5
Folletto

以下の反例を基にして、特定のアイテムのみに(名前付き)アクションが適用されることを示すすべてのアイテムがポップアップされたリスト(およびリスト内で異なるマークが付けられたアイテム)を表示して、「確かに、先」と「キャンセル」アクション。

同様のリストを再表示するのは快適ではありませんが、先に進むために、これが私の最初の見方だと思います。

Microsoft Exchange 2010コンソールのように、少なくともそれを実行しないでください。アクションがサポートされていないすべてのアイテム(サイズ変更できない小さなモーダルポップアップウィンドウの長いリスト)に対してエラーをスローし、それを適用しません。それを支えるアイテム(原文)アイデアを完全にキャンセルしてPowershellを掘り下げるか、小さなモーダルエラーダイアログを相互参照して問題のあるアイテムを1つずつ手動で選択解除しない限り、状況から抜け出す方法はありません... ^^

3
Oskar Duveborn

この状況に対処するためのいくつかのアプローチを見てきましたが、どちらも特に満足できるものではありません。

  • サイレントに複数選択を拒否。たとえば、CorelDrawでは、読み取り専用の情報を表示するだけでも、ユーザーが編集可能なオブジェクトと編集できない(「ロックされた」)オブジェクトの組み合わせを複数選択できないようにすることで、この問題を回避しています。同様に、IronCADでは、特定の異なるクラスのオブジェクト(カメラやパーツなど)を複数選択することはできません。それは私にとって不必要な制限のようです。

  • サイレントにコマンドを拒否。 Windows XPは、異なるクラスの複数のアイテム(たとえば、マイコンピュータとpdfファイル)のプロパティウィンドウを開こうとすると、単にあなたを無視します。これは混乱を招き、イライラさせる可能性があります。

何かを複数選択できるようにすることでユーザーに最大の柔軟性を与え、選択されたものに対してできるだけ多くのことを実行したいようです。同時に、このページでOskar Duvebornが説明したメッセージボックスでユーザーを殺到させたくない場合。

ユーザーが間違いを犯しているのかどうかは議論の余地があります。おそらく、コマンドXが適用されるウィンドウ全体に散在するすべてのオブジェクトにコマンドXをコミットし、特定のオブジェクトには適用されないことを十分に理解したかったのです。したがって、Ctrl-Aを入力してCommand Xを選択します。この「トリック」をサポートすると非常に便利です。または、コマンドXを適用してからコマンドYを適用するために、複数の項目を複数選択した可能性があります。再選択したり、コマンド間の複数選択を調整して、オブジェクトを除外する必要がない場合に役立ちます。適用されません。

ここにいくつかのアイデアがあります:

  • 最初に、メイン/親ウィンドウで関連情報を示して、ユーザーが一部のアクションが特定の選択されたオブジェクトに影響を及ぼさないと推測できるようにします。たとえば、読み取り専用オブジェクトに、おそらく選択時のみに異なる外観を与えます(CADタイプのアプリのハンドルに小さな南京錠を想像しています)。オブジェクトの各クラスは、おそらくそれぞれに特定のアイコンでタグ付けすることにより、異なる外観を持つ必要があります。このようにして、ユーザーは複数選択すると、コマンドが何をするのかを予測でき、意味がありません(たとえば、このアイテムはカメラなので、移動することはできますが、サイズを変更することはできません)。

  • ダイアログが開かれるまで、アプリが何に何が何に適用されるのかわからない場合は、アクションが適用されないオブジェクトの選択の外観を変更する可能性があります。たとえば、ユーザーがプロパティ値を変更すると、そのプロパティを持たないすべてのオブジェクトは、親ウィンドウで「セカンダリ」選択の外観になります。

  • アクションの適用基準が明確でない場合は、テキストによる手がかりが必要になることがあります。アクションを呼び出すボタンのメニュー項目には、そのキャプションに、影響を与える項目の数または影響を与える項目が含まれる場合があります(「シートメタルのみ」など)。 [プロパティ]ボックスでは、プロパティの列の横に、各プロパティが適用される、または変更できる多くの項目を示す列を含めることができます。

  • これはスペースを大量に消費する可能性がありますが、影響を受けるのはsomeオブジェクトのみであることを示す必要があるだけです(正確な数、ID、または比率ではありません)。その場合は、ダイアログで脚注を使用できます。 「部分的」、つまり半分塗りつぶされた円を意味するシンボルを作成しますか? (アスタリスクは使用しないでください。これは、しばしば「必須」を意味します)。選択のサブセットに影響を与える任意のコントロールによってこのシンボルを配置します。ダイアログの下部に、「=は一部の選択されたアイテムにのみ適用されます」というテキストが付いたシンボルを表示します。ダイアログを使用しないアクションの場合は、メニューアイテムまたはコマンドボタンのキャプションで同じ記号を使用します。これには、その意味を説明するツールチップも含まれます。

  • 理想的には、ユーザーがアクションをコミットする前に、アクションが部分的にのみ適用されることを示す必要がありますが、フォールバックとして、アクションの後にフィードバックを提供できます。一般に、親ウィンドウのオブジェクトでアクションの効果を視覚的に明らかにしたいので、それで十分な場合があります。ただし、ユーザーが混乱するのをまだ心配している場合は(たとえば、後でスクロールして見えなくなったオブジェクトが、変更されていないことに気付いたため)、「 [アクション済み] [n]個の[n]個の選択された項目]アクションが完了したとき。ユーザーが理由を理解できない場合に備えて、ヘルプリンクを提供する場合があります。

これらが実際にどのように機能するかはわかりません。そのため、ユーザーに決定したことをすべてテストすることをお勧めします。

1

簡単な答えはユーザーが最初から間違えないようにするです。選択したすべてのアイテムに対してアクションを実行できない場合は、アクションを無効にする必要があります。そのアクションを実行できない理由をユーザーに説明し、解決策を提案します。

1
Antony Quinn

現実世界の例として、ジラが思い浮かびます。そして、それは非表示のアクションの少なくとも1つの可能なマイナス面を示しています。人々が特定のアクションが利用できないことに気付かないとき、それはかなりイライラすることができます。クローズされている問題は移動できませんが、最初はそれを知りませんでした。以前に問題を移動したと確信していたときに、突然移動アクションが発生しなかった理由を見つける前に、私は長い間懸命に検索しました。

そのため、毛布を隠すのは最善の方法ではないと思います。すべてに使用できないアクションにマークを付けることができます。できれば、その理由を説明してください。関係なくそれを選択して「利用可能なもの」に適用させれば、非常にうまくいくと思います。そうでない場合は、アイテムを無効にする方が非表示にするよりも良いと思います。 (その一方で、無限に長いアクションのリストが作成されないように注意する必要があります。)

1
Inca

多くの統合開発環境のプロパティ/オブジェクトインスペクターで何をしませんか?フォームで選択したすべてのオブジェクトに共通のプロパティのみを表示しますか?

シナリオ:選択したすべてのアイテムでサポートされている一括アクションのみを提供します。また、選択/選択解除された各アイテムを使用して、すべてのバルクアクションの可用性(有効な外観)と非可用性(無効な外観)を更新します。このようにして、ユーザーはフィードバックを受け取り、どのアイテムでどのバルクアクションが利用可能であるか(そしてどのアイテムがどのバルクアクションに共通しているか)をすばやく選択します。

1
Marjan Venema

質問自体で提供されている2番目のソリューションが最も効果的であるようです。

選択したすべてのアイテムがアクションをサポートする場合にのみアクションを有効にします。

横に説明を表示するか、ツールチップに表示して、このアクションが無効になっている理由をユーザーに知らせることができます。

ユーザーはテキストを読まないであるため、事実が機能しなくなる可能性がある前または後で通知する場合でも、ユーザーが選択の一部にのみ影響するアクションを実行できるようにするのは非常に混乱する可能性があります。

したがって、可能性としては、警告や説明があっても、ユーザーがボタンをクリックするだけで、すぐに通知ダイアログを閉じることができないわけではありません。

そうは言っても、それはアクションとアプリケーションに依存します-アクションがオブジェクトのライフサイクルの変更をトリガーし、その状態に影響を与える場合など。「選択したすべてのアイテムがそれをサポートする場合にのみアクションを許可する」を適用します。ミッションクリティカルではないものについては、精度よりもフローの方が良い場合があります。

1
Dan Barak

それを受け入れるアイテムにアクションを適用して、残りを残すにします。私はユーザーは十分賢いで、アクションが他のアイテムに適用できないことを知っていると思います。

ユーザーがこれを直接理解できるように残りのインターフェイスを作成する場合、それは問題にならず、特別なメッセージなしで他のアイテムを残すことができます。

これは、たとえばGmailで行われている方法でもあります。未読と既読の2つのメッセージを取り、両方を選択し、既読にするを選択します。未読メッセージは既読になり、既読のメッセージは変更されません。残りのインターフェイス(太字のテキストとその他の背景色)は、既読メッセージが既に既読であることを明確にします。

(Gmailは、2つのメッセージが既読としてマークされたとさえ言っています。これは少し奇妙に見えますが、大丈夫です。)

1
Lode

私のアプローチ:

ユーザーが必要なアイテムを選択できるようにし、少なくともアイテムがアクションの影響を受ける可能性がある場合はユーザーが必要なアクションを選択できるようにし、アクションが行われた後に情報メッセージを返します:「アイテムx、y、zはサポートしていません* *モチーフだからアクション」

少なくとも1つの選択されたアイテムに適用できるアクションをフィルタリングするのは少し難しいかもしれません。

0
Bobby Tables

私は次のようなことをします:すべてのアイテムが削除/編集/移動/などできる可能性があるわけではないというメッセージを投稿します。エンティティのフィールド値を後で定義するリストがあります。または、多くの人が一時的ではない場合。リストの上部にあるn/aアイテムを強調表示して並べ替えます。

0
Billy