Das verarbeiten von Formularen stellt im Internet den Kern der Interaktion zwischen einer Webseite und ihren Benutzern dar. Ein paar Schlüsse die ich nach fünf Jahren Erfahrung in dem Berich ziehe:
Optimale Benutzerfreundlichkeit
Die gesamte Interaktion zwischen Benutzer und System erfolgt über Formulare. Der Benutzer füllt sie aus, schickt sie ab und unser System muss sie mit bestmöglichem Komfort für den Benutzer verarbeiten. Auch hier gilt: Klicks sparen. Das Optimum für einen Formular-Verarbeitungs-Prozess ist erreicht, wenn der Benutzer nur einen Knopfdruck braucht um sein Formular abzuschicken. Das Formular selbst soll dabei möglichst aufschlussreich sein und darf auf keinen Fall erfordern, dass sich der Benutzer – unter der Annahme das er einen zielgruppenorientierten Wissensstand besitzt – näher darüber informieren muss, gar in externen Medien.
Erfolgsmeldung
Die gängige Praxis, eine Erfolgsmeldung anzuzeigen soll dabei erhalten bleiben, allerdings darf sie den Benutzer nicht aufhalten. Sie einfach anzuzeigen und den Benutzer dann auf „weiter“ klicken zu lassen hält ihn zwar nicht auf, mutet ihm aber einen weiteren unnötigen Klick zu.
Ihn nach zehn Sekunden automatisch weiterzuleiten wird ihn auch bald nerven, denn nach dem zehnten Post braucht er nicht mehr zu lesen was da steht – er wird es wissen.
Ich leite den Benutzer deswegen sofort weiter, zeige allerdings am Zielort am Beginn der Seite eine grüne Infobox mit der Erflogsmeldung an.
Ist etwas schief gelaufen, leite ich ihn gar nicht weiter, sondern zeige das selbe Formular nocheinmal an, mit all seinen bereits gemachten Angaben, allerdings am Beginn der Seite, jetzt mit einer roten Infobox wo die Fehler aufgelistet sind. Alle anderen Meldungen haben eine blaue Box. So erziehe ich meine Benutzer unterschwellig. Bald werden sie auf diese Boxen entsprechend reagieren:
Grün: richtig, alles OK.
Blau: Information, nicht unbedingt wichtig.
Rot: Problem, sorgfältig lesen.
Benutzer erziehen
Diesen Vorgang nennt man Konditionierung. Man bringt den Leuten bei, das gewisse Umstände bestimmte Darstellungsformen haben und optimiert damit den Umgang den die Benutzer mit dem System pflegen. Dabei gilt zu beachten, dass das System gar nicht mal möglichst viel selbst tun muss. Wenn man kurz und prägnant, aber nicht verwirrend erklärt was die Leute tun sollen, oder falsch gemacht haben, bauen die Leute eher eine persönlichere Beziehung zum System auf, als wenn sie einfache kalte Meldungen erhalten deren Bedeutung sie noch nachforschen müssen. Folgst du dem RTFM-Konzept wird dich niemand lieb haben (RTFM = Read The Fucking Manual = Ließ die scheiß Beschreibung).
Fehler melden, aber richtig
Die Auflistung der Fehler ist eine Optimierung die ich vieler Orts vermisse. Es ist nämlich Gang und Gebe, ein Feld nach dem anderen auf seine Gültigkeit zu überprüfen. Das ist nervig. Vor allem wenn das Formular lang ist und der Benutzer mehrere Fehler gemacht hat. Wenn er da fünf Mal aufgehalten wird, ist er bald gereizt. Stattdessen hätte man gleich beim ersten Fehlschlag alle Felder prüfen sollen und alle Fehler ausgeben. Das nenne ICH Komfort, und nicht wen ein JavaScript alles hübsch bunt macht wenn der Benutzer in ein Textfeld klickt.
Beschreibungen
Es schadet nichts die einzelnen Felder des Formulars kurz zu erklären. Tabellen sollte man für Formulare sowieso keine mehr verwenden, mittels Ebenen und CSS-Klassen kann man solchen Beschreibungen auch noch ein eigenes Aussehen geben und damit die Benutzer-Freundlichkeit erhöhen. Der alte Stil links die Bezeichnung und rechts das Feld zu haben, ist in Zeiten der Benutzer-Oberflächen-Optimierung nur mehr in Formularen für Involvierte erlaubt.
Aber auch bei Sachen die jeder kennt, wie zum Beispiel Name, Zuname Adresse usw. Bei Einstellungen allerdings, sollte zumindest ein kurzer Satz drin sein der schnell aussagt was da eingestellt wird. Beschreibungen im title Attribut zu verstecken – öfters „Tooltip“ genannt – ist auch nicht zu empfehlen, da der Benutzer drei Sekunden warten muss bis dieses erscheint. Das mag nicht viel sein, reicht aber bereits aus um ihn zu reizen.
Darstellung
Wie gesagt sollte man generell davon abgehen Formulare in Tabellen darzustellen. Allerdings ist dieser Tipp zielgruppenorientiert. Habe ich nämlich eine Tabelle mit Experteneinstellungen, ist nicht wirklich wichtig diese zu erklären, vermutlich übersteigt deren Erklärung sowieso den Umfang einfacher Beschreibungen. Es ist auch nicht nötig, Dinge zu erklären deren Bedeutung jeder kennen sollte, wie Name, Adresse usw. Sonst aber, sollten Formulare ihre Optionen untereinenader auflisten, sie optisch klar erkenntlich voneinenader trennen und möglichst zuerst die Bezeichnung nennen, optisch hervorgehoben, dann die Beschreibung liefern und dann das Eingabefeld. Die Idee dem Abschicken-Knopf ebenfalls noch eine kurze Beschreibung mit auf dem Weg zu geben, die sich auf das gesamte Formulare bezieht, gefällt mir besonders gut, zumal einleitende Texte vor dem Formular selten gelesen werden.
Schluss
Es kommt immer häufger vor, dass Formulare mit JavaScript und AJAX zugepflastert werden. Das führt zweitweise dazu dass man auf Seiten gerät wo 500KB (!) nur Skripte runtergeladen werden. Bitte ein Durchscnittlicher Rechner steht bei der Verarbeitung von solchen Scripts zwei volle Minuten. Formulare sind sehr einfach und gut. AJAX ist praktisch, sollte aber nur verwendet werden, wenn sein Einsatz wirklich sinnvoll ist, und nicht einfach nur um es zu verwenden, zu sagen es is Web 2.0 und es um 250 €uro teurer zu verkaufen.