大量のデータを持つテーブルで構成される企業を構築しています。テーブルに対する私たちのソリューションは、「さらに読み込む」ボタンを備えた無限のスクロールを持つことです。合計データエントリと表示されたエントリの情報があります。上部のヘッダーは修正されます。
重要な機能の1つは、すべてのエントリを選択できるようにすることです。そして、これが私たちの闘いです-ユーザーが40のエントリをロードし、[すべて選択]ボタンをクリックした場合-40のエントリすべてが選択されます。
download bmml source – Balsamiq Mockups で作成されたワイヤーフレーム
SELECT ALLがアクティブな状態でユーザーが[もっと見る]をクリックするための最良のオプションは何だと思いますか?
すべき:
ユーザーがこれを使用するのは、主に複数のアカウントを無効にしたり、レポートを印刷したりする場合です。
編集
ページネーションバージョン-ユーザーがページ1のすべてのエントリを選択し、ページ2に移動した場合:
考えられる解決策は2つあります。
最初の解決策:
新しく表示されたエントリも選択されています。
ユーザーが「すべて選択」を選択したので、プログラムがすべてを選択するのが良いでしょう。それがボタンが呼び出すものだからです。
2番目の解決策:
GoogleからGmailのように「もっと読み込む」の代わりにページを試してみませんか。
注:先に述べた「さらに読み込む」機能と「すべて選択」機能は、現在yahooのメールサービスで機能しています。誰かがすべてのメールを選択すると(すべて選択ボタンで)、最初の50のメールが選択されます。しかし、彼/彼女が下にスクロールすると、より多くのメールが読み込まれます。この新しいメールは選択されていませんが、以前の50は選択されたままなので、ユーザーはもう一度[すべて選択]をクリックしてすべてを選択解除し、後でもう一度[すべて選択]を押して最後にすべてのメールを選択します。
現在のモックアップis改ページ、実装が不十分です。
さらに読み込む/無限スクロールは、本質的に無限(Facebookのニュースフィード、eコマースサイトの製品結果など)のデータセットに適用されます。結果の数が限られている場合、「さらに読み込む」は機能的に「次のページ」と同じですが、「前のページ」および「ページNに移動」機能がありません。
ただし、投稿された質問に回答するには、「もっと読み込む」で読み込まれたアイテムがデフォルトで選択解除されて読み込まれる必要があります。
「すべて選択」はステートレスである必要があります。
切り替え動作、つまりオン/オフ状態で実装しないでください。この方法で実装された1つのケースを思い出すことはできません。良い例がGmailです。Gmailがどのように機能するかをご覧ください。
そのため、現在テーブルにあるアイテムで機能し、この場合は[すべて選択解除]ボタンも追加する必要があります。
「すべてをロード」と「すべてを選択」が一緒に機能しないことがわかりました。今、それらを一緒に機能させる方法について行き詰まっています。あなたが見ているすべてのオプションは、ユーザーエクスペリエンスをさらに低下させています。デザインが損なわれているため、デザインを再検討することをお勧めします。
エンタープライズアプリケーションを設計してから20年近く経ちますが、エンタープライズデータを操作するためにLoad Allが機能することを示す良い例はまだありません。
このLoad Allパターンは、時間ベースの会話コンテンツに最適です。 TwitterやFacebookのようなソーシャルメディアですが、ユーザーの目的が特定のタスクを実行することであるデータの確認や操作にはほとんど役立ちません。
モックアップのデータを見ると、これは従業員のリストのように見えます。なぜ従業員の長いリストを閲覧したいのですか?
ユーザーが従業員に対して何をしたいのかを理解し、この知識を使って設計に知らせる必要があると思います。
2つのボタンを与える
SELECT ALLがアクティブな状態でユーザーが[もっと見る]をクリックするのに最適なオプションは何だと思いますか
多くのUXの質問と同様に、実際の答えは、「ページ分割されたデータテーブルがあるので、どのように機能するのか」という単なる事実よりも、コントロールのコンテキストと目的に依存します。 「すべて選択」オプションは何に役立つのですか。ユーザーがそのボタンをクリックしたいのはなぜですか?
(この場合、機能は「主に複数のアカウントを非アクティブ化し、レポートを印刷するなど」であると述べましたが、完全を期すために、他のいくつかの潜在的な目的も実行します)
選択の目的が個々のエントリを編集することである場合、「すべて選択」は役に立ちそうにありません(さらに言えば、あらゆる種類の複数の選択は不要です。ユーザーが個々のエントリを編集できるようにしてください-できれば選択->編集->テーブルワークフローに戻るのではなく、テーブル自体のコンテキスト。)これを決定する際に、ユーザーが行っている編集のタイプが従業員のグループに適用される可能性が高いかどうか、またはそれらが一度に1つのエントリに集中する可能性が高くなります。
並べ替えられていない、または任意に並べ替えられた(姓など)テーブルは、特に多数のエントリがある場合、ここでの最善のアプローチではない可能性があります。アルファベットの終わりに近い従業員は、不必要に手間がかかります。
ユーザーは名前を見つけるためにリストを参照する必要があるでしょうか?あるいは、彼らが誰を見つけようとしているのかをすでに知っている可能性が高く、彼らを見つける必要があるだけでしょうか?もしそうなら、検索ベースのインターフェースは、ブラウズ可能なリストよりも適切です。
(ユーザーがヘッダーをクリックしてテーブルをソートできるようにすることも可能であり、場合によっては役立つかもしれません-しかし、これはページネーションとの組み合わせが非常に不十分であり、本質的に「すべて選択」の質問と同じ問題の多くを抱えています:並べ替えは、画面上にあるものだけでなく、完全なデータセットに適用する必要があります。つまり、改ページ位置を変更するかどうか、および既に選択されている項目をどうするかを決定する必要があります。)
目的がエントリのコレクションを一括編集することである場合(たとえば、13人の異なる従業員を選択し、1回の操作で役職をCEOに変更する場合)、複数選択のインターフェースは理にかなっていますが、ページネーション戦略を再検討する必要があります(従業員の1人がリストの末尾に近い場合、ユーザーは希望する従業員が表示されるまで「さらに読み込む」をクリックし続ける必要があります。)
ページ分割された、または無限負荷のデータ表示は、本質的に順序付けられたデータ(すべてのエントリを時系列で表示する)または事実上無限のデータ(ハッシュタグ#foo
ですべてのツイートを表示する)に役立ちます。従業員リストなど、非線形の順序でアクセスされる可能性のある固定データセットにはあまり適していません。
前のケースと同様に、ユーザーが選択する必要があるエントリを見つけられるように、テーブル自体の検索ベースのフィルターを使用する方がよいかどうかを検討します。単一エントリの場合と比較して、複数の選択はこれを複雑にします。ユーザーが行った選択を別のテーブルに引き出して、ユーザーが以前の選択を失うことなく、別の検索を行ってリストに追加し続けることができるようにする必要があります。 (つまり、AbelとZagatの従業員が必要であることを知っています。Abを検索し、結果からAbelを選択すると、「選択された」テーブルに移動します。検索をクリアしてZaを探し、Zagatを選択すると、必要な両方の従業員がいます。次に進みます。これは、「Abelを選択し、「さらに読み込む」を数十回クリックして、Zagatを選択するよりも望ましい方法です。」
「すべて選択」の動作について:
この場合、「[存在するものすべてを選択]」がまったく役に立たない可能性が高く(すべての従業員エントリに対して同じ編集を行う必要が生じることはまれです)、ユーザーがそうすることを許可すると、潜在的に危険です。 「複数のアカウントを無効にする」と「すべてを選択する」を組み合わせて考えてください。
「すべての[このページ分割されたテーブルに表示されるもののすべてを選択]」は、ページ分割されたリストで役立つ可能性がさらに低くなります。これは、ユーザーがそのテーブルに表示されるものをいつでも実際に制御できないためです。ページサイズとテーブルの順序を設定したので、偶然にのみ、ユーザーの希望するグループ選択に近い場所に移動できます。
対照的に、ソートされた+ページ付けされたテーブルではなく、検索ベースのテーブルでは、「[すべてを表示]を選択する」がveryと便利です。タイトルが「ウィジェットマネージャー」であるすべての従業員を編集する必要がある場合は、ウィジェットマネージャーを検索し、結果を「すべて選択」すれば完了です。
ユーザーが定期的にデータセット全体に対してアクションを実行する可能性がある場合(これは「レポートの生成」の場合です)、「[存在するものすべてを選択]」が役立ちます。[[表示されているものすべて]を選択します」ではなく、テーブルの存在はまったく必要ない場合があります。
ユーザーが完全な従業員リストのサブセットに関するレポートを生成する必要がある場合は、おそらく同じサブセットを定期的に再利用することになります。リスト全体を調べて、レポートを作成する必要があるたびに個々のユーザーを選択するのではなく、それらのサブグループを事前定義して名前を付けることを許可することを検討してください。そうすれば、次回Fooチームに関するレポートを作成する必要があるときに、従業員リスト全体を調べて、毎回必要な各個人を選択する代わりに、Fooチームを選択できます。
(それが定期的な報告状況ではなく、含まれる従業員のリストが間違いなく毎回変更される場合でも、ここでソートされた+ページ分けされたリストよりも検索ベースのインターフェースの方が良いかもしれません。)
すべての選択が解除されますか
いいえ、これはユーザーとして怒ります。 「もっと読み込む」ボタンはもう信用できません。
新しく表示されたエントリも選択されます
いいえ、「より多くの結果をロードする」という私の望みは、結果を選択したいという私とは正反対です。繰り返しになりますが、私はユーザーとして、「もっと読み込む」ボタンを信頼しなくなりました。
表示されているものは選択されたままで、新しいものは選択されていません
これは私が期待するものに近いです。ただし、他の回答が指摘しているように、ページ付けは十分に実装されていないと思います。 「もっと読み込む」というアイデアを使い続ける場合は、「すべての結果を読み込む」オプションを設定することもお勧めします。このようにして、ユーザーは「すべての結果をロード」をクリックしてから「すべてを選択」をクリックできます。しかし、それは「すべての結果をロード」が10,000件の結果をロードしようとするのは悪い考えかもしれません。その場合は、ページ分割の戦略を考え直す必要があるかもしれません。
私は現在、b2bエンタープライズソフトウェアソリューションの類似した長いテーブルで作業しています。ページングを使用していますが、要件に対応しましょう。
表示するレコードが何千もある可能性があり、可能なアクションの1つが印刷であることを考えると、大量のバッチ印刷ジョブが誤って開始されると、さらに心配になります。
ユーザーが[すべて選択]をクリックすると、ユーザーに50件しか表示されていなくても、3000件のレコードが選択されます。言い換えると、すべて選択とはすべて選択を意味します。つまり、ユーザーがさらに行をロードすると、これらの行も選択されます。
実際には、「注意:3000レコードを選択しました。現在450レコードが表示されています」のように、十分な行を選択したことをユーザーに通知するための特別な警告を継続的に保持することをお勧めします(統計によってしきい値を決定します)。
行が1つでも選択されていない場合、[すべて選択]チェックボックスをオフにする必要がありますか?はい、すべて選択すると、割引なしですべて選択されます
それでも十分な数の行が選択されている場合、警告を保持する必要がありますか?はい、警告はすべて選択ボタンとは異なる役割を果たします
不注意なユーザーが多数の複数のレコードを操作しないようにする必要があることに注意してください。手動で元に戻すことができないジョブ。 3000個のレコードが印刷されるという警告は、十分な数を超えるレコードが選択されているときにユーザーがアクションボタンをクリックしようとしたときにポップアップになる可能性があります。