Usability Pattern Auto-Vervollständigung
Alias Auto-Completion
Problem Benutzer möchten Eingabewerte frei eingeben, die aus einer großen Menge möglicher Eingabewerte stammen.
Lösung

Schlage Benutzern während der Eingabe mögliche geeignete Eingabewerte vor.

Lasse Benutzer den Eingabewert zunächst frei eingeben. Zeige während der Eingabe automatisch Vorschläge für mögliche Eingabewerte an, die die bisherige Eingabe vervollständigen (z. B. durch Einblendung neben oder unterhalb des Eingabefelds).

Die vorgeschlagenen Werte sollten zum bisher eingegebenen Wert passen bzw. diesen vervollständigen. Auch Eingabewerte aus früheren Eingabeschritten (Eingabehistorie) sind ggf. sinnvolle Vorschläge. Die Vorschläge sollten dabei je nach Aufgabenstellung geeignet sortiert werden, so dass z. B. die als am wahrscheinlichsten angenommenen Vorschläge oben in einer Vorschlagsliste erscheinen. Vorgeschlagene Werte müssen in jedem Fall gültige Eingabewerte sein.

Erlaube Benutzern, einen der Vorschläge direkt als Eingabewert zu übernehmen.

Wenn das System auch frühere Eingabewerte vorschlägt, erlaube Benutzern, die Eingabehistorie zu löschen.

Illustration Eine Internet-Suchmaschine erlaubt Benutzern, Suchbegriffe frei einzugeben. Bereits während der Eingabe werden mögliche Vervollständigungen des bisherigen Eingabewerts eingeblendet, also Suchbegriffe, die eine große Zahl von Treffern versprechen.
Beispiele
Automatische Vervollständigung von Suchbegriffen in Safari
Vergrößern
Automatische Vervollständigung von Suchbegriffen in Safari

Apple Safari 5 (Web-Browser): Suche

Benutzer können in Safari über ein separates Suchfeld Suchbegriffe für eine Internet-Suche eingeben. Safari blendet dabei automatisch Vervollständigungen der Eingabe ein; zusätzlich werden auch die vom Benutzer zuletzt gesuchten Suchbegriffe vorgeschlagen (im Bild unten als „Letze Sucheinträge“). Benutzer können einen der vorgeschlagenen Suchbegriffe auswählen oder den gewünschten Suchbegriff weiter manuell eingeben.



Quellcode-Vervollständigung in Eclipse
Vergrößern
Vorschläge für die automatische Quellcode-Vervollständigung in Eclipse

Eclipse Java IDE: Automatische Vervollständigung von Java-Anweisungen

Die Entwicklungsumgebung Eclipse bietet Benutzern eine automatische Vervollständigung von Anweisungen im Java-Quellcode. Dabei zeigt Eclipse mögliche Ergänzungen der bisherigen Eingabe in einer Liste an, entweder auf expliziten Benutzerwunsch (Tastenkombination) oder automatisch nach einer kurzen Wartezeit. Benutzer können einen Vorschlag auswählen und die bisherige Eingabe so ergänzen. Die Vorschläge sind kontextabhängig, Eclipse schlägt nur zulässige Ergänzungen vor. Ergänzen Benutzer ihre Eingabe manuell (durch weiteres Eintippen), aktualisiert Eclipse die Vorschlagsliste automatisch.



Nutzungskontext
  • Freitext-Eingaben, bei denen partielle Eingabewerte vom System durch sinnvolle Vorschläge vervollständigt werden können
Begründung Benutzer können dank Auto-Vervollständigung die gewünschten Eingabewerte auswählen, anstatt sie vollständig einzugeben. Sie können somit effizienter mit dem System arbeiten. Da zudem sinnvolle oder häufig verwendete gültige Eingabewerte vorgeschlagen und angezeigt werden, machen Benutzer weniger unerwünschte oder fehlerhafte Eingaben.
Gestaltungsgrundsatz Aufgabenangemessenheit
Risiken, Nachteile, Kosten

Jede Form der Vervollständigung benötigt Rechenzeit. Die Auto-Vervollständigung von Eingabewerten kann deshalb zu für den Benutzer spürbaren und somit unerwünschten Verzögerungen bei der Eingabe führen.

Benutzer können den Eindruck gewinnen, dass sie nur aus den vorgeschlagenen Eingabewerten auswählen können, obwohl auch eine freie Eingabe zulässig ist.

Die Vorschläge müssen der Aufgabe angemessen und sinnvoll sortiert sein; unbrauchbare Vorschläge können Benutzer bei der Arbeit stören oder verärgern.

Anforderungserhebung

Identifiziere Eingaben, die automatisch vervollständigt werden können.

  • Welche Vorschläge sind in einer typischen Nutzungssituation sinnvoll?
  • Existieren Klassen von Eingaben, die im System mehrfach vorkommen und bei denen ein einheitliches Verhalten der Auto-Vervollständigung gewünscht ist (z. B. Eingabe von Personen oder E-Mail-Adressen)?
Anforderungsspezifikation

Spezifiziere globale Anforderungen für das Usability Feature „Auto-Vervollständigung“ des Systems:

  • Globaler ParameterDarstellungOptional
    Darstellung der Vorschläge für die Auto-Vervollständigung.
    Beispiel: „ Darstellung der Vorschläge als Auswahlliste “
  • Globaler ParameterAuslöserOptional
    Vorgabe des Auslösers (Triggers) für Eingabevorschläge, also z.B. eine kurze Zeitspanne, die der Benutzer wartet, oder eine bestimmte Tastenkombination.
    Beispiel: „ Das System soll Eingabevorschläge machen, sobald der Benutzer 0,5 Sekunden lang seine Eingabe nicht ergänzt hat. “

Spezifiziere globale Funktionen (Use Cases) für das Usability Feature „Auto-Vervollständigung“ des Systems:

  • Globale FunktionEingabehistorie verwaltenOptional
    Use Case, mit dem Benutzer die Eingabehistorie verwalten (z. B. löschen) können, wenn diese vom System für die Auto-Vervollständigung von Eingaben gespeichert wird

Spezifiziere, in welchen Interaktionen zwischen Benutzern und System das Usability Feature „Auto-Vervollständigung“ eingesetzt werden soll. Annotiere und ergänze dazu vorhandene Use Cases in der Spezifikation:

  • Annotation @ Schritt Auto-VervollständigungBenötigt
    Das System soll dem Benutzer bei diesem Eingabeschritt automatisch eine Vervollständigung des Eingabewerts anbieten.
    Lokaler ParameterVorschlägeBenötigt
    Art und Quelle der Vervollständigungsvorschläge, Sortierung, Anzahl
    Beispiel: „Liste der bisher verwendeten WWW-Adressen, die den eingegeben Text enthalten. Absteigend sortiert nach Zugriffsdatum, max. 12 Adressen. “
Architekturentwurf

Das System muss während der Eingabe der Benutzer entsprechend dem spezifizierten Auslöser für die (Teil-)Eingabewerte passende Ergänzungen bestimmen, z. B. aus dem vorhandenen Datenbestand abfragen. Die Systemarchitektur muss eine aus Benutzersicht verzögerungsfreie Bestimmung geeigneter Vorschläge unterstützen. Um Vorschläge unmittelbar bei der Eingabe anzubieten, kann das Beobachter-Entwurfsmuster (observer pattern) eingesetzt werden, um auf Änderungen der Eingabewerte zu reagieren.

Erfordert die Vervollständigung z. B. Kommunikation mit einem Server, muss die Systemarchitektur die notwendigen Server-Aufrufe ermöglichen, ohne dass es für Benutzer zu spürbaren Verzögerungen kommt. Dies kann etwa bei Web-Anwendungen durch asynchrone Aufrufe (AJAX) erfolgen.