it-swarm-eu.dev

Warum sollte man "Geben Sie den Namen des Projekts zur Bestätigung ein" verwenden?

Wenn Sie ein langjähriger GitHub-Benutzer sind, haben Sie wahrscheinlich Folgendes gesehen:

(

Dies geschieht jedes Mal, wenn Sie eine potenziell zerstörerische Aktion in einem Repository ausführen, z. B. den öffentlichen/privaten Status ändern oder es archivieren/löschen.

Die Eingabeaufforderung wird nach dem Klicken auf die Aktionsschaltfläche in einem Modal angezeigt. Dies ist also eine zusätzliche Maßnahme, um versehentliche Aktionen zu verhindern.

Für mich ist dies jedoch entweder unwirksam, um "eine weitere Barriere zu setzen", oder als "zusätzliche Bestätigung" zu umständlich. Man kann den Repository-Namen einfach von der URL oder direkt über dem Eingabefeld (der fette Text oben) kopieren, aber dies ist immer noch komplexer als nur das Klicken auf eine zusätzliche Schaltfläche.

Meiner Meinung nach ein extra Modal mit einem leuchtenden Rot button das nicht auf Tastaturaktionen reagiert (wie die Eingabetaste) würde ausreichen. Man müsste die Maus auf die leuchtend rote Taste bewegen, um darauf zu klicken, um zusätzliche Vorsicht walten zu lassen. Dies ist weniger umständlich und die Behinderung, einfach die Eingabetaste zu drücken, ist sowohl einfach als auch effektiv.

Kann jemand erklären, wie dieses "Projektname eingeben" ein gutes UI-Design ist?

48
iBug

Es geht nicht unbedingt um "gutes UI-Design", sondern vielmehr darum, alle Maßnahmen zu ergreifen, um ein versehentliches Löschen zu verhindern und sicherzustellen, dass der Benutzer genau weiß, was er löscht .

Dieser Blogeintrag hier fängt es ganz gut ein:

Anstatt den Benutzern eine Bestätigungsschaltfläche zu geben, die sie versehentlich drücken könnten, geben Sie ihnen ein Textfeld und bitten Sie sie, das Wort "Löschen" zur Bestätigung einzugeben. Wenn der Benutzer "Löschen" in das Textfeld eingibt, besteht kein Zweifel daran, dass er löschen möchte. Es erfolgt kein versehentliches Drücken der Löschtaste. Es gibt kein Bedauern, wenn der Benutzer löscht, da das Bestätigungstextfeld sicherstellt, was er tun wird, bevor er es tut.
So stellen Sie sicher, dass Benutzer nicht versehentlich löschen - UX-Bewegung

Sicher, das Drücken einer Taste ist einfacher, aber das lässt immer die Möglichkeit, dass Sie den Namen falsch lesen und das falsche Element löschen.
Wenn Sie den Namen eingeben (oder sogar kopieren und einfügen) müssen, können Sie zu 99% sicher sein, dass ein Benutzer dies nicht versehentlich tut. Sie würden es spätestens erkennen, wenn sie den Namen für das Kopieren und Einfügen markieren.

Außerdem wird dies normalerweise nur für sehr kritische Löschvorgänge verwendet. Diese kommen sehr selten vor, so dass das Argument, es einfacher oder weniger nervig zu machen, dort nicht wirklich zutrifft.


Hier sind einige verwandte Fragen:

168
Big_Chair

Nur um klar zu sein, dass "gutes" UI-Design nicht bedeutet, dem Benutzer das zu geben, was er will. Es bedeutet oft, dem Benutzer zu helfen, eine bessere Version von sich selbst zu sein.

Zusätzlich zu dem, was bereits erwähnt wurde, ermöglicht dieses Muster (und einige ähnliche) der Benutzeroberfläche, die Geschwindigkeit zu reduzieren. Allgemein muscle memory -> speed -> mistakes -> sad path.

Stellen Sie sich vor, Sie arbeiten im Gesundheitswesen. Wenn Benutzer bei allgemeinen Aufgaben zu viel "Fluss" aufbauen, können sie möglicherweise einen einfachen Fehler machen, der jemanden tötet. Obwohl dies nicht intuitiv ist, ist es oft gut, den Benutzer durch Interaktion aus dem Fluss zu ziehen (mehr als ein einfacher Bestätigungsdialog, der immer an derselben Stelle angezeigt wird und dem Muskelgedächtnis hinzugefügt werden kann).

Die Eingabe von Text ist nur ein Beispiel dafür. Ich habe auch gesehen:

  1. hinzufügen einer Zeitüberschreitung zu Schaltflächen, bevor diese verfügbar werden.
  2. Zufällige Platzierung von Prozessfortsetzungsschaltflächen.
  3. Hinzufügen einer Sperre (z. B. Prozess als Administrator mit Kennwort ausführen)

Alle diese Muster sollen den Benutzer so sehr stören, dass er aufhört, den Prozess mental zu bewerten, bevor er fortfährt.

51
Bryce Howitson

Dies soll sicherstellen, dass:

  1. Sie verstehen die Gefahr dessen, was Sie tun.
  2. Am wichtigsten ist, dass Sie tatsächlich das richtige Repo löschen.

Wenn ein Benutzer viele Repos mit langen Namen hat, kann es leicht sein, sie durcheinander zu bringen. Das Eingeben des Namens ist ein guter Weg, um sicherzustellen, dass Sie nicht den falschen nuklearisieren, was wirklich sehr, sehr schlecht wäre.

15
frodo2975

Ich ordne eine nicht verwendete Tastaturtaste (über AutoHotKey) zur zeitweiligen Verwendung als Linksklick neu zu, um die Belastung durch Überbeanspruchung meines Maushandgelenks zu verringern, und drücke diese Taste beim Multitasking manchmal (selten) an der falschen Stelle. Ich habe auch gelegentlich die Maus selbst gestoßen und ungewollt auf eine Schaltfläche in einem Dialogfeld geklickt.

Während "Lass mich nicht nachdenken" eine sehr gute Regel ist, ist es sinnvoll, dem Benutzer zu helfen, sich genau auf das zu konzentrieren, was das Ausführen eines seltenen, destruktiven Befehls tatsächlich bewirkt. Ich würde sogar in Betracht ziehen, den Benutzer einen vollständigen Satz des Formulars "Bitte löschen Sie das iBug-/Beispiel-Repository-Repository einschließlich seines Wikis, seiner Probleme und Kommentare" wörtlich eingeben zu lassen, um die Absicht des Benutzers zu verdeutlichen, sich selbst = in dieser Situation, da der Benutzer dies nur einmal in diesem Repository tut.

Jeder, der tatsächlich Code schreibt, muss sehr häufig vollständige, klare und korrekt geschriebene Textzeilen eingeben, sodass eine weitere Zeile zur Bestätigung der destruktivsten Aktion, die Sie für ein Projekt ausführen können, nicht unangemessen ist.

9
user117529

Meiner Meinung nach würde ein zusätzliches Modal mit einer leuchtend roten Taste, die nicht auf Tastaturaktionen reagiert (wie die Eingabetaste), ausreichen. Man müsste die Maus auf die leuchtend rote Schaltfläche bewegen, um darauf zu klicken, um zusätzliche Vorsicht walten zu lassen. Dies ist weniger umständlich und die Behinderung, einfach die Eingabetaste zu drücken, ist sowohl einfach als auch effektiv.

(Betonung hinzugefügt)

Sind Sie sicher, dass sie "ihre Maus bewegen" müssten? Jedes Mal? Selbst wenn sie sich auf einem Gerät mit einer anderen Auflösung befinden, wo richten sich die Dinge möglicherweise nicht wie erwartet aus? Oder wenn sie vergrößert sind? Was ist mit Berührungseingabe? Was ist mit Leuten, die keine Maus benutzen (aufgrund unterschiedlicher Fähigkeiten/etc)? Jetzt müssen Sie sicherstellen, dass die Tastatur so reagiert, dass die Barrierefreiheit nicht beeinträchtigt wird, aber kein versehentliches Löschen möglich ist.

Zwar gibt es Argumente gegen wahllos Befolgen von Best Practices einfach, da es sich um Best Practices handelt (im Gegensatz dazu, ein Verständnis dafür zu entwickeln, warum sie vorhanden sind) oder zumindest " was alle anderen tun ", besonders wenn sie nicht immer tatsächlich so großartig sind, möchte ich darauf hinweisen, dass sie normalerweise zu einer bewährten Methode geworden sind, weil es unvorhergesehene Probleme gibt, die auftreten werden und zu versuchen, gegen sie vorzugehen, nur weil man den Sinn von ihnen nicht sieht, ist normalerweise eine schlechte Idee. Wenn Sie sich etwas ansehen, das eine weit verbreitete/weit verbreitete Best Practice ist, gehen Sie von der Annahme aus, dass es sinnvoll und bedeutsam ist und wahrscheinlich starke Gründe hat, die sich im Laufe der Zeit entwickelt haben (und wahrscheinlich bei mehr als nur einem Menschen und sicherlich auch bei einem überprüft von mehr als nur einer Person) als Sie allein haben sich wahrscheinlich den gleichen Problemen gewidmet (und nur mit Ihrer eigenen Perspektive, die Sie führt). Ganz zu schweigen von den globalen Konsistenzproblemen.

@ BigChairs Antwort neben @ Bryce Howitsons Antwort beide Erforschen Sie, warum dies eine bewährte Methode für nicht behebbare Aktionen im Allgemeinen ist. Beim UI-Design ist es wichtig, Reibung für kritische Aktionen zu erzeugen, die nicht wiederhergestellt werden können. Beide behandeln das Thema in diesem Kontext recht gut.

Wenn möglich , würde ich jedoch empfehlen, in jedem Fall einen anderen Weg einzuschlagen, wenn es möglich wäre, Folgendes umzusetzen:

Vermeiden Sie in erster Linie, dass Aktionen nicht wiederhergestellt werden können

Wenn dies gesagt ist, ist der beste Weg, um vorwärts zu kommen, dass Benutzeraktionen nicht zu nicht wiederherstellbaren Softwarezuständen führen an erster Stelle. Denken Sie daran, dass das, was eine Benutzeroberfläche der Person, die Software verwendet, ausgesetzt ist, nicht mit dem internen Status der Software in einem 1: 1-Verhältnis verwandter Semantik übereinstimmen muss. Es ist in Ordnung, wie etwas für die Person dargestellt wird, die es verwendet, um nicht mit der technischen Implementierung dessen übereinzustimmen, was passiert, wenn sie eine verwandte Aktion aktiviert.

Löschen Sie keine Dinge in Ihrer Software-Darstellung, die nur auf Benutzereingaben beruhen. Mark Sie wurden in Ihrer Speicherdarstellung gelöscht und bieten eine Möglichkeit, sie abzurufen (einen Papierkorb/usw.). Lassen Sie nicht zu, dass eine Person, die Ihr Produkt verwendet, sich in eine Ecke zurückversetzen kann, aus der sie sich nicht zurückholen kann. Es ist UX nicht nur besser, die Notwendigkeit solcher Bestätigungen zu vermeiden, wo immer dies möglich ist, sondern es reduziert auch die Supportanforderungen und die damit verbundenen Reibungspunkte bei verwandten Supportproblemen (die auch UX-Aspekte sind). Wenn jemand etwas "löscht", machen Sie deutlich , dass er auch die Aktion rückgängig machen kann, die er sowohl während der Aktion als auch danach ausgeführt hat (Wenn sie also haben versehentlich etwas "gelöscht" haben, ohne Bildschirme bis einschließlich der Aktion zu lesen, können sie jetzt sehen, wohin sie gehen müssen, um es rückgängig zu machen).

9
taswyn

Ich habe bereits das gemacht, was ich zufällige Fehler nenne:

  • meine Hand bewegte sich in der Sekunde, in der ich den Knopf drückte (wollte "Abbrechen", bekam "OK"). Alternativ: Eine Anzeige ist aufgetaucht und hat die Seite verschoben.
  • die Anweisung war so verwirrend, dass ich den falschen Knopf gedrückt habe (natürlich nicht den weniger zerstörerischen).
  • Ich war "oh nein nein nein" und drückte panisch den falschen Knopf
  • Ich kann oder kann nicht sein Juan Pablo Davila

Deshalb bevorzuge ich es wirklich, in solchen Fällen einen Prozess zu haben, der mich dazu bringt, anders zu handeln als es das Muskelgedächtnis vorschlägt.

5
WoJ

Was Github hier versucht, ist, Benutzerfehler zu vermeiden, aber speziell "rutscht", wie Don Norman sie in "Das Design alltäglicher Dinge" erwähnt.

Ausrutscher treten auf, wenn Benutzer beabsichtigen, eine Aktion auszuführen, am Ende jedoch eine andere (häufig ähnliche) Aktion ausführen. Wenn Sie beispielsweise ein "i" anstelle eines "o" eingeben, gilt dies als Beleg. Das versehentliche Auftragen von flüssiger Handseife auf die Zahnbürste anstelle von Zahnpasta ist ebenfalls ein Ausrutscher. Ausrutscher werden normalerweise gemacht, wenn Benutzer sich im Autopiloten befinden, und wenn sie ihre Aufmerksamkeitsressourcen nicht vollständig der jeweiligen Aufgabe widmen.

Ich betone den letzten Teil des Zitats als besonders relevant.

Der folgende Artikel von nngroup beschreibt, wie Sie Ausrutschen verhindern können

fehler vom Typ Slip werden häufig von erfahrenen Benutzern gemacht, die mit dem vorliegenden Prozess sehr vertraut sind. Im Gegensatz zu neuen Benutzern, die noch lernen, wie man das System benutzt

https://www.nngroup.com/articles/slips/

In Anbetracht der Arten von Personen, die Github verwenden würden, würden Sie sie als sehr hoch in Bezug auf die GDS Digital Inclusion Scale betrachten, was bedeuten würde, dass sie erfahrene Benutzer sind, die eher Ausrutscher machen.

Setzen Sie dann die beiden zusammen und fühlen Sie sich in einen erfahrenen Github-Benutzer hineinversetzt, der Hunderte von Stunden in ein Projekt gesteckt hat, aber müde ist, vergessen hat, in welchem ​​Projekt sie sich befanden, und dann auf Löschen drückt, wenn er es nicht wollte. Wie fühlen Sie sich?

Viele Github-Benutzer haben eine hohe Anzahl von Repositories und auf der Löschseite gibt es nicht viel zu unterscheiden, wenn Sie nicht aufpassen. Vielleicht wollten Sie das Repo "Millionen Pfund Projekt - Entwurf" löschen, aber Sie waren dabei "Millionen Pfund Projekt".

Dies ist, was sie tun und ich würde es als effektives UI-Design dafür betrachten. Es ist empfehlenswert, hilfreiche Einschränkungen für nicht behebbare Vorgänge festzulegen.

3
dougajmcdonald