← Journal · Archiv

Abstract Dialogs

June 29, 2004

Bad error messages are, sadly, a nuisance. One of the most important criteria for being able to operate software “fluently” is meaningful dialogs. Exactly where the machine demands interaction between man and machine, the programmers fail. A dialog that holds the user up for more than a few seconds, or even makes it necessary to read the contents a second time, is dreadful. Using adverbs such as “Yes” or “No” as options is bad on top of that. Verbs like “Save”, “Don't save” or “Discard” should be used instead. Using adverbs makes it necessary to read the error message in full, holding the user up in the process. The user is forced to look for the sentence with the question mark and then read that one. And if, as in the examples below, the available options are assigned yet other meanings, the user even has to memorise abstract things before he can make his decision. I call such messages “abstract dialogs”.

Abstract dialog from Access 97

An example of an “abstract dialog”. The question in the dialog is “Do you want to replace the changes made by you or another user?”. Below it, the available options are abstracted. This would not be necessary if the options were “Replace” and “Save As”.

My version of the dialog

The user can size up the situation and decide within seconds. The options available to him support his decision, because they sum up the consequences in one or two words. The user can also select the options with the underlined letters or the “Enter” key.

Another abstract dialog from Access 97

Another example of an “abstract dialog”. Here the question is “Do you want to save the changes made to the SQL statement and update the property?”. Here only the “No” option is abstracted, while the “Yes” option does what it is supposed to.

My version of the dialog

My version simply takes the predicate, “Update”, from the question and replaces the “Yes”. For the “No” option I use “Discard” instead. “Close” would not be suitable here, since it says nothing about data being lost.
Unfortunately Microsoft's MsgDlg API only supports prefabricated options such as mbYes, mbNo, mbCancel and mbOK. So “abstract dialogs” are presumably a workaround for these limited possibilities. My suggestion would be to program your own dialog in a class of its own, but to model it visually on MsgDlg.

8 Kommentare

martzell ·

Sehr wichtig ist eine einfache klare Sprache. Keine Schachtelsätze wie von Microsoft vorgemacht. Kein Sätze mit und, oder bzw.

Verwerfen ist ein seltsames Wort. Im Alltag habe ich das noch nie gehört. Wegwerfen schon eher. Im Englischen heißt es Destroy. Das passt besser ist aber etwas extrem.

Wenn man gefragt wird ob man Änderungen sichern will, sollten die Knöpfe immer mit Speichern und Nicht speichern (Sichern auf dem Mac) beschriftet sein. Konsistenz ist wichtig. Wenn gleiche Befehle, gleich heißen kann man sie schneller benutzen.

Wenn man in Apple Vorschau ein Bild dreht und dann schließt, bekommt man nicht die Standardbeschriftung, die man von allen anderen Programmen gewohnt ist, angezeigt (Nicht sichern, Abbrechen, Sichern), sondern Änderungen verwerfen, Abbrechen, Änderungen sichern. Dies irritiert, weil ungewohnt.

Bei dem Dialog “SQL-Anweisung speichern?” verstehe ich aus der Ferne nicht warum die Anwendung den Benutzer überhaupt belästigt. Hier sollten die Knöpfe auf jeden Fall mit Speichern, Nicht speichern, Abbrechen beschriftet werden.

Die Formulierungen von Microsoft erscheinen mir sehr umständlich. Müsste es nicht heißen: “An dem Dokument ‘Crossover actions’ wurden seit dem letzten SPEICHERN von einem andern Benutzer Änderungen vorgenommen”?

Dass mit dem technischen Fachbegriff “Instanz”, gemeint ist Microsoft Word ein zweites Mal zu öffnen, verstehen nur die Programmier unter den Word Benutzern. Auf dem Mac ist es gar nicht möglich Word zweimal zu starten, da es keinen Sinn macht.

Hier hat Microsoft außerdem den Befehl Abbrechen vergessen.

Ich würde die Knöpfe beschriften mit Speichern unter (dies ist der Standardbefehl), Trotzdem speichern (damit sich der Benutzer den Text durchliest; der Text muss umformuliert werden damit er verständlich ist), Abbrechen.

martzell ·

Ich träume von Computern die den Benutzer nicht mit Fragen nerven sondern einfach das richtige tun. Modale Dialoge müssen unbedingt vermieden werden. Sie halten einen solange fest und verhindern dass man weiterarbeitet bis man sich um sie gekümmert hat.

Dass es auch anders geht zeigen ein paar Anwendungen: In iPhoto muss man bearbeitete Fotos und Fotoalben nicht sichern. In iTunes muss man keine Wiedergabelisten öffnen und sichern, sie sind einfach immer da. In Apple Mail werden E-Mail Entwürfe automatisch gesichert und man hat eine Volltextsuche über alle E-Mails ohne diese erst einzeln öffnen zu müssen.

Wir brauchen Anwendungen die Dokumente nicht traditionell öffnen und sichern, sondern die Dokumente werden verwaltet. Mitsamt Versionsverwaltung und eines Rückgängig-Schiebereglers mit dem man alle Änderungen am Dokument wie einen Film ablaufen lassen kann. Die Suche ist nicht beschränkt auf geöffnete Dokumente sondern geht über alle Dokumente.

Es sollte keine Anwendungen mehr geben sondern Häuser mit Räumen in denen sich Werkzeuge befinden. Betritt man ein Haus ist man im Eingang. Dort stapeln sich die Dokumente, die man nicht in Ordnern organisiert hat. Im Eingang stehen eine überschaubare Anzahl Werkzeuge zur Verfügung um seine Dokumente zu verwalten. Bearbeitet werden Dokumente im nächsten Raum. Ausgegeben oder exportiert im Raum Ausgang.

lemming ·

»Bei dem Dialog “SQL-Anweisung speichern?” verstehe ich aus der Ferne nicht warum die Anwendung den Benutzer überhaupt belästigt. Hier sollten die Knöpfe auf jeden Fall mit Speichern, Nicht speichern, Abbrechen beschriftet werden.«

Stimmt, ich habe nichts zum Ursprung dieser Dialoge gesagt. Dieser ist, wenn man in einem Steuerelement, in einem Formular, die Datensatzherkunft als SQL-Query beschreibt, anstatt in einer Abfrage/Tabelle, und diesen versucht mit dem eingebauten Abfrage-Editor zu edieren. Im eigentlichen bezieht sich das »speichern« einfach auf das ersetzen oder aktualisieren des SQL-Strings in diesem Steuerelement. Ich finde meine Wortwahl ist dazu dann passend. »Ersetzen« wäre in diesem Zusammenhang auch in Ordnung gewesen. »Zerstören« klingt etwas negativ, »Wegwerfen« ebenso, zudem abwertend. »Verwerfen« ist zwar kein gebräuchlicher Begriff, aber dadurch unbelastet von Gefühlen.

»Hier hat Microsoft außerdem den Befehl Abbrechen vergessen.« Richtig, der Stress-mich-nicht-jetzt-Button fehlt hier eindeutig.

»Trotzdem speichern« ist eine super Idee!

»Ich träume von Computern die den Benutzer nicht mit Fragen nerven sondern einfach das richtige tun(…)« Dann träumst du ungefähr den selben Traum wie Jeff Raskin. Sein Computer »Cat« war eine Maschine mit eben jener dieser Funktionen. Das Dateisystem Metapher gab es nicht. Es gab nur einen Speicehr der voll mit Text war. Ein Überdimensionaler Arbeitsraum indem alles geschah.Seiner Zeit um Jahrzehnte vorraus. Aber Dinge die Menschen noch nicht verstehen, lassen sich nicht verkaufen.

»(…)Häuser mit Räumen in denen sich Werkzeuge befinden(…)« Kais PowerGoo das ich dir abgekauft habe, ist eines dieser beeindruckenden Programme die genau so funktionieren. Eine Schere zum geradewohl darauf zuschneiden. Eine Schneidemaschine für’s gerade Zuschneiden, etc.

Btw. ich hab auf den Performa Mac OS 8.1 installiert.

martzell ·

Der SQL-Anweisung-Sichern-Dialog sollte ganz vermieden werden.

Man benötigt einen einheitlichen Änderungen-Sichern-Dialog der immer die Knöpfe “Speichern”, “Nicht Speichern” und “Abbrechen” bietet (auf dem Mac: “Nicht sichern”, “Abbrechen” und “Sichern”; man beachte die Reihenfolge). Der Befehl “Verwerfen” in der Apple Vorschau Anwendung hat mich äußerst irritiert, da ich “Nicht sichern” gewohnt bin. Ich betrachte mich in diesem Fall als repräsentativ.

Auch wenn spitzfindige Programmierer der Meinung sind es muss alles absolut korrekt bezeichnet werden, so ist Verständlichkeit wichtiger. Bei meiner Digitalkamera gibt es ein Motiv “Sonnenuntergang”. Das ist auch für Sonnenaufgänge zuständig. Da man aber Untergänge öfters fotografiert als Aufgänge, hat man es so genannt.

Daraus ist eine Usability und Texter-Regel ableitbar: Wähle die Bezeichnung die in den meisten Fällen zutrifft. Keine Schachtelsätze, keine seltsam klingenden Begriffe die in der Realität nicht üblich sind.

frank ·

ich wünsche mir manchmal einen “vielleicht”, “jetzt nicht” oder “mach mal” Knopf zum Drücken… da heisst es immer, die heutige Computer seinen Intelligent

martzell ·

“Jetzt nicht” wäre sicher der meistgenutzte Knopf. Noch besser wäre ein “Lass mich in Ruhe und mach immer das Richtige” Knopf, damit der Dialog nie wieder angezeigt wird.

lemming, du willst unbedingt einen “Verwerfen”-Knopf, da dir “Nicht speichern” nicht ausreicht. Meinst du der Benutzer sollte sich Gedanken machen müssen, den Unterschied zu erkennen ob es sich um Änderungen an einem Dokument oder Änderungen von Einstellungen handelt. Es sind beidesmal Änderungen, deshalb sollte es immer einheitlich heißen.

Techniker sehen Unterschiede wo keine sind. Man denke nur an das Kopieren von Dateien unter DOS mit “copy”. Um Ordner zu kopieren benötigte man “xcopy”.

lemming ·

»Immer einheiltich« ist nicht immer gut, Martzell. Man schaue sich die unnütze WinAPI MsgDlg an, die nur »Ja«, »Nein«, »Abbrechen« und »OK« kann, damit es einheitlich ist.

Wenn man »Speichern« verwendet, dann kann man auch »Nicht speichern« verwenden. Ich habe aber für »Speichern« das Wort »Aktualisieren« gewählt, da es in der Fragestellung als Prädikat auftaucht. Bei »Speichern« denkt der Benutzer, vielleicht (und vielleicht ist schon Zuviel), das er den SQL-String, den er im Abfrage-Editor ediert hat, nun als Abfrage in seine Datenbank speichern muss, was er ja nicht will. Sonst hätte er in der Steuerelementeigenschaft eine Abfrage ausgewählt statt einen SQL-String einzugegeben. Fazit: Somit ist »Verwerfen« vor »Nicht speichern« die bessere Wahl, da die Oppositionelle Option »Aktualisieren« ist und nicht etwa »Speichern«. An zweiter Stelle würde aber »Nicht speichern« kommen.

martzell ·

Bei dem Räume-mit-Werkzeugen-Konzept (wie in den Kai Krause Programmen Soap und GOO zu sehen) hat man nicht alle Werkzeuge zur Verfügung sondern muss erst in den jeweiligen Modus (Raum) wechseln. Das schafft Übersicht.

Jeff Raskin ist gegen solche modale Beschränkungen. Sein User Interface Konzept names THE (The Human Environment) bietet alle Befehle ohne Maus über eine Texteingabe an. Das ist auch ein sehr guter Ansatz.

Möchte man mit der herkömmlichen grafischen Oberfläche z. B. suchen, muss man ein Fenster öffnen und bürokratisch das Such-Formular ausfüllen und abschicken. In THE genügt das Halten einer Taste und die Eingabe von >test um zur nächsten Fundstelle von “test” zu springen. Die Return-Taste ist auch erlaubt um auf einheitliche Weise zum nächsten Absatz zu springen. Die grafische Oberfläche tut sich sehr schwer mit einer Text-Suche nach unsichtbaren Zeichen wie Tabulator und Zeilenumbruch.

In der grafischen Oberfläche gibt es Verbesserungen: Die Apple Vorschau Suche ist in einer Schublade angedockt und listet alle Fundstellen in einer Liste auf während man tippt.

Kommentar hinterlassen