it-swarm-eu.dev

Progressive Validierung und Offenlegung

Ich versuche ein Beispiel für eine progressive Validierung zu finden. Wir haben eine Benutzeroberfläche für einen visuellen Editor, in der ein Benutzer beispielsweise Dimensionen in Pixel oder Prozent angibt.

Die Editor-Eigenschaften befinden sich in mehreren Registerkarten, sodass nicht alle Felder gleichzeitig sichtbar sind. Wir haben diskutiert, wie und ob wir in dieser Benutzeroberfläche eine Validierung durchführen.

Ich komme aus der Perspektive, dass: a) Validierung nützlich ist, weil sie einen Kommunikationskanal schafft, in dem der Benutzer die Erwartungen an die Software lernen und "besser" werden kann, was erforderlich ist. b) Es ist immer besser, Validierungsfehler in Eingabefeldern direkt anzugeben (unabhängig davon, ob eine Zusammenfassung an anderer Stelle verwendet wird oder nicht), damit Benutzer einen visuellen Hinweis darauf haben, was geändert werden muss.

Mein Kollege, dem ich nur äußersten Respekt entgegenbringe, ist anderer Meinung. Seine Logik lautet wie folgt: a) Es ist zweckmäßiger, entweder bestimmte Arten von Einträgen zu verhindern oder sie bei einigen Einträgen auf einen angemesseneren Wert zu ändern, wenn sie ungültig sind. Wenn beispielsweise jemand einen Prozentwert größer als 100 verwendet, setzt die Benutzeroberfläche den Wert bei einem Ereignis mit verlorenem Fokus auf 100 zurück. b) Da wir uns in einer Registerkartenumgebung befinden, sind einige der Fehler für den Benutzer nicht sichtbar. Die Verwendung einer Zusammenfassung ist zwecklos, da möglicherweise "viele" Validierungsfehler auftreten können.

Ich dachte, eine Lösung hierfür könnte eine fortschreitende Offenlegung ungültiger Werte sein. Wenn ein Benutzer Werte eingibt, die möglicherweise falsch sind, werden sie in einer Art Zusammenfassung gekennzeichnet. In der Zusammenfassung können Benutzer auch zu den betreffenden Feldern navigieren, ohne dass diese sichtbar sind.

Ich wünschte, ich wäre eine originelle Person, aber ich bin sicher, dass es hier Präzedenzfälle gibt. Meine Fragen lauten wie folgt:

  1. Gibt es etwas, das die Perspektiven von mir oder meinem Kollegen erweitert?

  2. Gibt es Beispiele für eine solche Benutzeroberfläche mit einem komplexen Eintrag, der eine progressive Validierung durchführt?

11
David in Dakota

Wir haben derzeit mit dem gleichen Problem für eine Desktop-App zu kämpfen, jedoch nicht auf Registerkarten. Sie können einen Ansatz wie diesen versuchen:

alt text

wo ein kleines Symbol erscheint, wenn etwas die Aufmerksamkeit des Benutzers erfordert. Verwenden Sie möglicherweise sogar zwei Farben: Gelb für Warnungen und Rot für Dinge, die müssen behoben werden müssen, bevor der Benutzer weiter gehen kann.

7
Hisham

Das Beste, was Sie in dieser komplexen Situation tun können, ist , einen Prototyp von so viel Benutzeroberfläche wie möglich zu erstellen und ) Testen Sie es auf Ihrer Benutzerbasis , um zu sehen, was passiert. Sie können HTML in Kombination mit einer jQuery-Benutzeroberfläche verwenden, um schnell viele interaktive Steuerelemente verfügbar zu machen und schnell zum Testen bereit zu sein.

Ihr Tab-System klingt kompliziert, daher muss ich zur Vereinfachung einige Dinge vorschlagen:

  • Erstellen Sie auf jeder Registerkarte "Anwenden" -Schaltflächen, damit der Status nur für die Eigenschaften gespeichert werden kann, die der Benutzer gerade sehen kann. Wenn dies zu einem ungültigen Anwendungsstatus führen würde, gestalten Sie Ihre Registerkarten neu, sodass Benutzer Eigenschaften gruppiert haben, die können unabhängig voneinander gespeichert werden.
  • Wenn Sie dies nicht tun können, können Sie Registerkarten mit einem "ungültigen" Symbol und einer Farbe markieren, um anzuzeigen, dass die Eigenschaften auf dieser Registerkarte beachtet werden müssen. Während alle Registerkarten ungültig sind, ist die Schaltfläche "Anwenden" deaktiviert. Sie können der Schaltfläche eine Benachrichtigung hinzufügen, wenn darauf geklickt wird, um eine Meldung anzuzeigen, dass immer noch Fehler vorliegen. Zusammenfassungen für das, was falsch ist, werden auf jeder Registerkarte angezeigt, anstatt eine übergreifende Zusammenfassung zu haben.
  • Eine globale Zusammenfassung könnte funktionieren, aber ich zögere, sie vorzuschlagen, da es anscheinend keinen sofort offensichtlichen Ort gibt, an dem sie abgelegt werden kann. Wenn dies nicht der Fall ist, werden die Benutzer dies bemerken?
  • Wie werden Eigenschaften gruppiert? Wahrscheinlich funktional? Versuchen Sie, sie aus einem anderen Blickwinkel zu betrachten, z. B. nach Verwendungswahrscheinlichkeit. Dies ist ein Teil dessen, wie Microsoft das Ribbon-Design für seine Office 2007-Produkte angegangen ist. Möglicherweise können Sie Ihre Registerkarten so gestalten, dass die meisten Benutzer nur mit den Eigenschaften der ersten oder sofort sichtbaren Registerkarte herumspielen müssen, und die anderen Registerkarten können als "erweitert" oder kontextbezogen betrachtet werden.

Testen Sie Ihr Design, und das habe ich bereits gesagt! :-)

In Bezug auf die Behandlung von Fehlern habe ich die Erfahrung gemacht, dass Benutzer verwirrt sind, wenn Sie bestimmte Eingaben verhindern. Wenn beispielsweise aus einem Eingabefeld nicht hervorgeht, dass nur Zahlen zulässig sind, Sie jedoch andere Zeichen nicht zulassen, ist dies für den Benutzer frustrierend - er wird es nicht als intelligente Form erleben, die versucht, ihm zu helfen . Ich schlage daher vor, dass Sie durchgehend eine klare Mikrokopie verwenden, wenn Sie sich dafür entscheiden, Ereignisse und die Erkennung von Eingaben zu verwenden, um Dinge automatisch zu korrigieren.

Aber das alles ist anekdotisch - ich habe in diesem Bereich keine Nachforschungen angestellt. Anstatt mein Wort dafür zu nehmen, lesen Sie in Luke Wroblewskis Buch Web Form Design: Ausfüllen der Lücken und seiner Forschung zur Fehlerbehandlung nach, um nützliche Einblicke in den Umgang mit solchen Situationen zu erhalten (z Beispiel: In diesem Beitrag auf Apples Neugestaltung des Checkout-Formulars wird erläutert, wie Fehler im Detail behandelt werden.

4
Rahul

Ich habe kürzlich an einem Projekt gearbeitet, bei dem ein ähnliches Problem aufgetreten ist. Einen Screenshot davon, wie wir es gelöst haben, finden Sie in meinem Artikel " Minimizing Complexity " aus dem letzten Jahr.

1
Tyler Tate

Ich dachte an einen Fall, in dem eine Zusammenfassung für viele Fehler verwendet wird und vielleicht funktioniert.

In jedem IDE wie Visual Studio) können endlose Fehler auftreten, wenn statische Analysewerkzeuge beim Schreiben von Code erstellt oder verwendet werden. Im Allgemeinen sind Dutzende oder Hunderte von Dateien vorhanden, von denen viele geöffnet sind Registerkarten, von denen jeweils eine oder zwei sichtbar sind,

Die Fehler werden dann in einer scrollbaren Liste mit veränderbarer Größe aufgelistet, die (standardmäßig) unter der Hauptbenutzeroberfläche angezeigt wird. Dies kann erfolgen, sobald ein Fehler aufgetreten ist. Wenn ein Fehler angeklickt oder doppelt angeklickt wird, gelangen Sie an die richtige Stelle und konzentrieren sich darauf, ihn zu korrigieren. Der Fehler verschwindet aus der Liste, wenn er nicht mehr gültig ist.

(In der Realität erfordern viele dieser Fehler eine vom Benutzer initiierte Aktion, um erneut bewertet zu werden. Es gibt jedoch zahlreiche Add-Ins für die statische Analyse, die dies im Hintergrund tun und die Fehlerliste beim Bearbeiten des Codes dynamisch aktualisieren.) .

0
Oskar Duveborn

a) Wenn beispielsweise jemand einen Prozentwert größer als 100 verwendet, setzt die Benutzeroberfläche den Wert bei einem Ereignis mit verlorenem Fokus auf 100 zurück.

Guter Punkt, aber dann müssen Sie sicherstellen:

  1. Der Benutzer erkennt, dass seine Eingabe korrigiert wurde.
    Lassen Sie beispielsweise das Feld für eine Sekunde blinken, wenn Sie den Wert festlegen.

  2. Sie können sich vorstellen, was der Benutzer wirklich gemeint hat.
    Nehmen Sie zum Beispiel einen Farbwähler, mit dem ich gestern gerungen habe. Ich wollte, dass ein paar Elemente mit denen einer anderen Site übereinstimmen, also habe ich mir die Hex-Werte besorgt und sie in die winzigen Ad-hoc-Textfelder kopiert. Der erste Wert war #202040, Aber aus irgendeinem Grund habe ich nur #20204 Eingefügt, was sofort auf #020204 "Fixiert" wurde. Der zweite Wert, den ich eingefügt habe, war #BCD (Abkürzung für #BBCCDD), Der ebenfalls auf ... #000BCD "Fest" gesetzt wurde. Seufzer.
0
badp