it-swarm.com.de

Massenaktionen: Was tun, wenn nicht alle Elemente eine Aktion unterstützen?

Stellen Sie sich das folgende Szenario vor: Der Benutzer wählt eine Reihe von Elementen aus, und das Feld "Massenaktionen" wird angezeigt. Der Benutzer wählt eine Aktion aus, die nicht alle Elemente unterstützen (aus dem einen oder anderen Grund).

Was tun Sie in diesem Fall: Wenden Sie die Aktion auf Elemente an, die sie unterstützen? Wenden Sie die Aktion überhaupt nicht an und zeigen Sie eine Fehlermeldung an?

Meine aktuellen Ideen sind entweder:

  • Wenden Sie die Aktion auf Elemente an, die sie unterstützen. Bei Aktionen, bei denen die Elemente verschwinden (z. B. "Element löschen"), würde ich die noch ausgewählten fehlerhaften Elemente mit der Fehlermeldung "Einige Elemente konnten nicht gelöscht werden" zurücklassen.
  • Deaktivieren Sie die Aktionen, die von all the items nicht unterstützt werden, und stellen Sie einen Link "Fix this" bereit, mit dem die Auswahl der betreffenden Elemente für die Aktion aufgehoben wird.

Können Sie mich auch auf relevante Beispiele aus der Praxis hinweisen?

13
Dan Burzo

Ohne weitere Informationen von Ihnen (z. B. eine Desktop- oder Web-App?) Ist hier eine Idee:

alt text

Wenn der Benutzer auswählt, welche Aktion er ausführen möchte, tun Sie nichts mit den Listenelementen, wenn die Aktion auf alle ausgewählte Elemente angewendet werden kann. Wenn dies nicht möglich ist, zeigen Sie in Fettdruck (oder in einer anderen Farbe) diejenigen an, für die der Artikel gilt, zusammen mit einem erläuternden Text auf der rechten Seite, z.

alt text

Sie sollten auf jeden Fall die Gesamtzahl der Elemente anzeigen, die verschoben werden können, da die Liste möglicherweise sehr lang ist.

Dies ist natürlich nur eine von mehreren möglichen Variationen.

6
Hisham

Die einfache Antwort lautet lassen Sie den Benutzer den Fehler überhaupt nicht machen. Wenn eine Aktion nicht für alle ausgewählten Elemente ausgeführt werden kann, sollten Sie die Aktion deaktivieren. Erklären Sie dem Benutzer, warum die Aktion nicht ausgeführt werden kann, und schlagen Sie eine Lösung vor.

5
Antony Quinn

Ich denke, dass die meisten UI-Lösungen kontextabhängig sind: Eine Lösung, die für "Löschen" funktioniert, funktioniert möglicherweise nicht für "Verschieben", und eine Lösung, die in einem E-Commerce funktioniert, funktioniert möglicherweise nicht in einem industriellen Tool.

In der Zusammenfassung würde ich wahrscheinlich einen numerischen Indikator in das von Ihnen zitierte "erscheinende Feld" einfügen, der dem Benutzer Folgendes sagt: "29 gezielte Elemente, 5 gesperrt", damit er problemlos fortfahren kann, wenn er möchte, oder Überprüfen Sie die "Warnelemente", indem Sie auf den Teil "5 gesperrt" klicken.

In jedem Fall würde ich jede "Fehlermeldung" vermeiden: Es ist Ihr Problem, nicht das Problem des Benutzers. ;)

5
Folletto

Aufbauend auf dem folgenden Gegenbeispiel - Ich würde gerne eine Liste mit allen Elementen sehen, in der angegeben ist, dass nur auf bestimmte Elemente die (benannte) Aktion angewendet wird (und die in der Liste anders gekennzeichnet sind) - und ein "Sicher, los voraus "und eine" Abbrechen "-Aktion.

Es fühlt sich nicht angenehm an, eine ähnliche Liste erneut anzuzeigen, aber im Interesse der Zukunft denke ich, dass dies meine erste Einstellung wäre.

Mindestens nicht so wie Microsoft Exchange 2010 Console - es wird ein Fehler für alle Elemente ausgegeben, für die die Aktion nicht unterstützt wird (eine lange Liste in einem kleinen nicht skalierbaren modalen Popup-Fenster), und es wird auch nicht angewendet die Gegenstände, die es unterstützen (sic). Es gibt keine Möglichkeit, aus der Situation herauszukommen, außer entweder die Idee vollständig abzubrechen und Powershell auszugraben oder zu versuchen, auf den kleinen modalen Fehlerdialog zu verweisen, um die beleidigenden Elemente nacheinander manuell abzuwählen ... ^^

3
Oskar Duveborn

Ich habe einige Ansätze gesehen, um mit dieser Situation umzugehen, von denen keiner besonders zufriedenstellend ist:

  • Mehrfachauswahl stillschweigend ablehnen. CorelDraw vermeidet beispielsweise das Problem, indem Benutzer eine Mischung aus bearbeitbaren und nicht bearbeitbaren ("gesperrten") Objekten nicht mehrfach auswählen können, selbst wenn nur schreibgeschützte Informationen angezeigt werden. Ebenso können Sie mit IronCAD keine Objekte bestimmter Klassen (z. B. eine Kamera und ein Teil) mehrfach auswählen. Das scheint mir eine unnötige Einschränkung zu sein.

  • Befehl stillschweigend verweigern. Windows XP ignoriert Sie einfach, wenn Sie versuchen, ein Eigenschaftenfenster für mehrere Elemente verschiedener Klassen (z. B. Arbeitsplatz und eine PDF-Datei) zu öffnen. Dies kann verwirrend und frustrierend sein.

Mir scheint, Sie möchten dem Benutzer die größtmögliche Flexibilität bieten, indem Sie die Mehrfachauswahl von allem zulassen und so viel wie möglich für alles tun, was ausgewählt wird. Gleichzeitig möchten Sie Ihren Benutzer nicht mit Meldungsfeldern überfluten, wie sie von Oskar Duveborn auf dieser Seite beschrieben wurden.

Es ist fraglich, ob die Benutzer einen Fehler machen: Vielleicht wollten sie Befehl X für alle Objekte festlegen, die im gesamten Fenster verteilt sind, für das Befehl X gilt, und wissen genau, dass er für bestimmte Objekte nicht gilt. Also geben sie Strg-A ein und wählen Befehl X. Die Unterstützung dieses „Tricks“ wäre sehr praktisch. Oder sie haben eine Reihe von Dingen mehrfach ausgewählt, um Befehl X und dann Befehl Y anzuwenden. Es wäre hilfreich, wenn sie die Mehrfachauswahl zwischen Befehlen nicht erneut auswählen oder anpassen müssten, um Objekte auszuschließen, die sich nicht befinden nicht zutreffen.

Hier einige Ideen:

  • Versuchen Sie zunächst, die relevanten Informationen im Haupt-/übergeordneten Fenster anzugeben, damit der Benutzer erraten kann, dass einige Aktionen bestimmte ausgewählte Objekte nicht beeinflussen. Geben Sie beispielsweise schreibgeschützten Objekten ein eindeutiges Erscheinungsbild, möglicherweise nur bei Auswahl (ich stelle mir kleine Vorhängeschlösser für Griffe für eine CAD-App vor). Jede Objektklasse sollte ein eigenes Erscheinungsbild haben, möglicherweise durch Markieren mit einem bestimmten Symbol. Auf diese Weise können die Benutzer bei der Mehrfachauswahl vorhersehen, welche Befehle ausgeführt werden, und keinen Sinn ergeben (z. B. handelt es sich bei diesem Element um eine Kamera, sodass sie verschoben, aber offensichtlich nicht in der Größe geändert werden kann).

  • Wenn die App bis zum Öffnen des Dialogfelds nicht erkennen kann, was für was gilt, ändern Sie möglicherweise das Erscheinungsbild der Auswahl von Objekten, für die die Aktion nicht gilt. Wenn der Benutzer beispielsweise einen Eigenschaftswert ändert, werden alle Objekte, denen diese Eigenschaft fehlt, im übergeordneten Fenster als "sekundär" ausgewählt.

  • Wenn die Kriterien für die Anwendung einer Aktion nicht offensichtlich sind, benötigen Sie möglicherweise einige Texthinweise. Der Menüpunkt der Schaltfläche, die die Aktion aufruft, kann in seiner Beschriftung enthalten, wie viele Elemente davon betroffen sind oder was davon betroffen ist (z. B. "Nur Blech"). In einem Eigenschaftenfeld können Sie neben der Eigenschaftsspalte eine Spalte einfügen, in der für viele Elemente angegeben ist, für die jede Eigenschaft gilt oder für die sie geändert werden kann.

  • Das mag zu platzintensiv sein, aber vielleicht müssen Sie nur angeben, dass nur einige Objekte betroffen sind (nicht die genaue Anzahl, Identität oder Proportion). In diesem Fall können Sie möglicherweise eine Fußnote im Dialogfeld verwenden. Erstellen Sie ein Symbol, das "teilweise" bedeutet, vielleicht einen halb gefüllten Kreis? (Verwenden Sie kein Sternchen - das bedeutet zu oft "erforderlich"). Setzen Sie dieses Symbol in ein beliebiges Steuerelement, das sich auf eine Teilmenge der Auswahl auswirkt. Zeigen Sie am unteren Rand des Dialogfelds das Symbol mit dem Text "= gilt nur für einige ausgewählte Elemente" an. Verwenden Sie für Aktionen, die keinen Dialog verwenden, dasselbe Symbol in Menüelement- oder Befehlsschaltflächenbeschriftungen, einschließlich einer QuickInfo, um zu erklären, was dies bedeutet.

  • Im Idealfall sollten Sie angeben, dass die Aktion nur teilweise angewendet wird, bevor der Benutzer diese Aktion festlegt. Als Fallback können Sie jedoch nach der Aktion ein Feedback geben. Im Allgemeinen möchten Sie den Effekt einer Aktion in Ihren Objekten im übergeordneten Fenster visuell sichtbar machen. Dies kann ausreichend sein. Wenn Sie jedoch immer noch besorgt sind, dass Benutzer verwirrt sind (z. B. wenn Objekte, die aus der Ansicht gescrollt wurden und später bemerkt wurden, dass sie nicht geändert wurden), können Sie möglicherweise eine modelllose Textbenachrichtigung (selbstentlassend) mit der Aufschrift „ [Aktion] [n] von [m] ausgewählten Elementen “, wenn die Aktion abgeschlossen ist. Geben Sie möglicherweise einen Hilfelink an, falls der Benutzer nicht versteht, warum.

Ich weiß nicht, wie eines davon tatsächlich funktioniert. Daher ist es eine gute Idee, zu testen, was Sie für Benutzer entscheiden.

1

Die einfache Antwort lautet lassen Sie den Benutzer den Fehler überhaupt nicht machen. Wenn eine Aktion nicht für alle ausgewählten Elemente ausgeführt werden kann, sollten Sie die Aktion deaktivieren. Erklären Sie dem Benutzer, warum die Aktion nicht ausgeführt werden kann, und schlagen Sie eine Lösung vor.

1
Antony Quinn

Als Beispiel aus der realen Welt fällt mir Jira ein. Und es zeigt mindestens einen möglichen Nachteil der versteckten Aktionen: Wenn Leute nicht erkennen, dass eine bestimmte Aktion nicht verfügbar ist, kann dies ziemlich frustrierend sein. Sie können geschlossene Probleme nicht verschieben, aber das wusste ich zuerst nicht. Ich habe lange und intensiv gesucht, bevor ich herausgefunden habe, warum es plötzlich keine Bewegung mehr gab, als ich mir sehr sicher war, dass ich Probleme auf diese Weise verschoben habe.

Ich denke aus diesem Grund, dass das Verstecken von Decken nicht der beste Weg ist. Sie können die Aktionen markieren, die nicht allen zur Verfügung stehen, vorzugsweise mit einer Erklärung, warum sie markiert sind. Ich denke, es könnte sehr gut funktionieren, wenn Sie den Leuten erlauben, es unabhängig davon auszuwählen und sie auf "die verfügbaren" anwenden zu lassen. Wenn nicht, ist es meiner Meinung nach besser, die Elemente zu deaktivieren, als sie zu verstecken. (Andererseits muss darauf geachtet werden, dass Sie keine endlos lange Liste von Aktionen erhalten.)

1
Inca

Warum nicht das tun, was die Eigenschaften-/Objektinspektoren vieler integrierter Entwicklungsumgebungen tun: Nur Eigenschaften anzeigen, die allen ausgewählten Objekten in einem Formular gemeinsam sind?

In Ihrem Szenario: Bieten Sie nur die Massenaktionen an, die von allen ausgewählten Elementen unterstützt werden. Aktualisieren Sie die Verfügbarkeit (aktiviertes Aussehen) im Vergleich zur Nichtverfügbarkeit (deaktiviertes Aussehen) aller Massenaktionen für jedes ausgewählte/nicht ausgewählte Element. Auf diese Weise erhält der Benutzer Feedback und kann schnell feststellen, welche Massenaktionen für welche Elemente verfügbar sind (und welche Elemente welche Massenaktionen gemeinsam haben).

1
Marjan Venema

Es scheint, dass die zweite in der Frage selbst angebotene Lösung am besten funktioniert:

Aktivieren Sie die Aktion nur, wenn alle ausgewählten Elemente sie unterstützen.

Sie können es deaktiviert anzeigen, mit einer Erklärung daneben oder in einem Tooltip, um den Benutzer darüber zu informieren, warum diese Aktion deaktiviert ist.

Ich glaube, es kann sehr verwirrend sein, dem Benutzer zu erlauben, eine Aktion auszuführen, die nur einen Teil seiner Auswahl betrifft, und sie sogar zu benachrichtigen, nachdem oder bevor die Tatsache möglicherweise nicht funktioniert, da Benutzer lesen keinen Text.

Daher besteht die Möglichkeit, dass Warnungen oder Erklärungen den Benutzer nicht daran hindern, einfach auf die Schaltfläche zu klicken UND den Benachrichtigungsdialog sofort zu schließen.

Dies hängt jedoch von der Aktion und der Anwendung ab. Wenn die Aktion eine Änderung des Lebenszyklus eines Objekts auslöst, sich auf dessen Status auswirkt usw., würde ich die Option "Aktion nur zulassen zulassen, wenn alle ausgewählten Elemente sie unterstützen" erzwingen. Für nicht geschäftskritische Dinge bevorzugen Sie möglicherweise einen besseren Fluss als die Genauigkeit.

1
Dan Barak

Ich würde die Aktion auf die Elemente anwenden, die sie akzeptieren, und den Rest lassen. Ich denke der Benutzer ist klug genug um zu wissen, dass die Aktion nicht auf die anderen Elemente angewendet werden kann.

Wenn Sie den Rest der Benutzeroberfläche so gestalten, dass der Benutzer dies direkt versteht, sollte dies kein Problem darstellen, und Sie können die anderen Elemente ohne eine spezielle Nachricht hinterlassen.

Dies geschieht beispielsweise auch in Google Mail. Nehmen Sie zwei Nachrichten entgegen, eine ungelesene und eine gelesene, wählen Sie beide aus und wählen Sie Als gelesen markieren. Die ungelesene Nachricht wird als gelesen markiert und die bereits gelesene ändert sich nicht. Der Rest der Benutzeroberfläche (fetter Text und andere Hintergrundfarben) macht deutlich, dass die gelesene Nachricht bereits gelesen wurde.

(Google Mail sagt sogar, dass 2 Nachrichten als gelesen markiert wurden, was etwas seltsam erscheint, aber in Ordnung ist.)

1
Lode

Mein Ansatz:

Lassen Sie Benutzer die gewünschten Elemente auswählen, lassen Sie Benutzer die gewünschte Aktion auswählen, wenn mindestens ein Element von der Aktion betroffen sein kann, und geben Sie nach Ausführung der Aktion eine Infomeldung zurück: "Die Elemente x, y, z werden nicht unterstützt * Aktion weil * Motiv. "

Das Filtern der Aktionen, die auf mindestens ein ausgewähltes Element angewendet werden können, kann jedoch etwas schwierig sein.

0
Bobby Tables

Ich würde so etwas tun: eine Nachricht posten, dass nicht alle Elemente die Möglichkeit haben, zu löschen/bearbeiten/verschieben/etc. und haben eine Liste mit ihrer Entität, die anschließend Feldwerte definiert. Oder wenn ihre nicht zu viele eine Zeit haben. Neuordnung mit den nicht zutreffenden Elementen oben in der Liste, hervorgehoben.

0
Billy