Codelab: Best Practices für Adressformulare

Wie können Sie ein Formular entwerfen, das für eine Vielzahl von Namen und Adressformaten gut funktioniert? Kleinere Form Störungen reizen Nutzer und können dazu führen, dass sie Ihre Website verlassen oder einen Kauf aufgeben. oder sich registrieren.

In diesem Codelab erfahren Sie, wie Sie ein nutzerfreundliches, barrierefreies Formular erstellen, das für die meisten Nutzenden gut funktioniert.

Schritt 1: HTML-Elemente und -Attribute optimal nutzen

Sie beginnen diesen Teil des Codelabs mit einem leeren Formular, für sich erstellen. Dann beginnen Sie, Eingaben hinzuzufügen. CSS und ein wenig JavaScript sind bereits included.)

  • Klicke auf Zum Bearbeiten Remix, damit das Projekt bearbeitet werden kann.

  • Fügen Sie dem <form>-Element ein Namensfeld mit dem folgenden Code hinzu:

<section>
  <label for="name">Name</label>
  <input id="name" name="name">
</section>

Das mag kompliziert und repetitiv erscheinen, wenn es sich nur um ein Namensfeld handelt, aber es hat bereits viel getan.

Sie haben das label mit dem input verknüpft, indem Sie das for-Attribut von label mit dem name oder id von input. Durch Tippen oder Klicken auf ein Label wird der Fokus auf dessen Eingabe verschoben als die Eingabe allein – was gut für Finger, Daumen und Mausklicks ist! Screenreader Labeltext ansagen, wenn das Label oder die Eingabe des Labels hervorgehoben wird.

Was ist mit name="name"? Der Name, der mit den Daten verknüpft ist aus dieser Eingabe, die beim Senden des Formulars an den Server gesendet wird. name-Attribut einfügen bedeutet außerdem, dass die FormData API auf die Daten aus diesem Element zugreifen kann.

Schritt 2: Attribute hinzufügen, die Nutzern bei der Dateneingabe helfen

Was passiert, wenn Sie in Chrome auf die Eingabe unter Name tippen oder klicken? Du solltest die Funktion „Autofill“ sehen vom Browser gespeicherte Vorschläge und Vermutungen sind für diese Eingabe geeignet, name- und id-Werte.

Fügen Sie Ihrem Eingabecode jetzt autocomplete="name" hinzu, damit er so aussieht:

<section>
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name">
</section>

Aktualisieren Sie die Seite in Chrome und tippen oder klicken Sie auf den Eingabefeld Name. Welche Unterschiede stellen Sie fest?

Sie sollten eine leichte Änderung bemerken: Mit autocomplete="name" sind die Vorschläge jetzt spezifisch -Werte, die zuvor in Formulareingaben verwendet wurden, die ebenfalls autocomplete="name" enthielten. Der Browser nicht nur zu erraten, was angemessen sein könnte: Sie haben die Kontrolle. Außerdem wird die Option Verwalten... angezeigt. Option zum Anzeigen und Bearbeiten der in Ihrem Browser gespeicherten Namen und Adressen.

<ph type="x-smartling-placeholder">
</ph> Zwei Screenshots von Chrome auf einem Android-Smartphone, auf denen ein Formular mit und ohne Wert für die automatische Vervollständigung zu sehen ist. In einem werden Werte in der Browser-Benutzeroberfläche heuristisch vorgeschlagen. die andere zeigt die UI an,
wenn Werte für die automatische Vervollständigung gespeichert sind.
Benutzeroberfläche für Autofill mit geschätzten Werten im Vergleich zur automatischen Vervollständigung

Fügen Sie nun Attribute für die Einschränkungsvalidierung hinzu, maxlength, pattern und required. Ihr Eingabecode sieht daher so aus:

<section>
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name"
    maxlength="100" pattern="[\p{L} \-\.]+" required>
</section>
  • maxlength="100" bedeutet, dass der Browser keine Eingaben mit mehr als 100 Zeichen zulässt.

  • pattern="[\p{L} \-\.]+" verwendet einen regulären Ausdruck, der Unicode-Buchstaben zulässt, Bindestriche und Punkte. Das bedeutet, dass Namen wie Françoise oder Jörg nicht als „ungültig“. Dies ist nicht der Fall, wenn Sie den Wert \w verwenden, bei dem [nur Zeichen aus dem lateinisches Alphabet.

  • required bedeutet... erforderlich! Der Browser lässt die Übermittlung des Formulars ohne Daten für in dieses Feld ein. Die Eingabe wird gewarnt und hervorgehoben, wenn Sie versuchen, sie zu senden. Kein zusätzlicher Code erforderlich!

Um zu testen, wie das Formular mit und ohne diese Attribute funktioniert, geben Sie Daten ein:

  • Geben Sie Werte ein, die nicht in das Attribut pattern passen.
  • Versuchen Sie, das Formular mit einer leeren Eingabe einzureichen. Sie sehen eine Warnung zur integrierten Browserfunktionalität: Pflichtfeld und legt den Fokus darauf.

Schritt 3: Dem Formular ein flexibles Adressfeld hinzufügen

Um ein Adressfeld hinzuzufügen, fügen Sie Ihrem Formular den folgenden Code hinzu:

<section>
  <label for="address">Address</label>
  <textarea id="address" name="address" autocomplete="address"
    maxlength="300" required></textarea>
</section>

Ein textarea ist die flexibelste Möglichkeit für Nutzer, ihre Adresse einzugeben. Es eignet sich hervorragend für ausschneiden und einfügen.

Sie sollten Ihr Adressformular nicht in Komponenten wie Straßenname und Hausnummer aufteilen, es sei denn, die Sie wirklich brauchen. Erzwingen Sie Nutzer nicht dazu, ihre Adresse in unsinnige Felder einzufügen.

Fügen Sie nun Felder für Postleitzahl und Land oder Region hinzu. Der Einfachheit halber hier nur die ersten fünf Länder. Eine vollständige Liste finden Sie im ausgefüllten Adressformular.

<section>
  <label for="postal-code">ZIP or postal code (optional)</label>
  <input id="postal-code" name="postal-code"
    autocomplete="postal-code" maxlength="20">
</section>

<section id="country-region">
  <label for="">Country or region</label>
  <select id="country" name="country" autocomplete="country"
    required>
      <option selected value="SPACER"> </option>
      <option value="AF">Afghanistan</option>
      <option value="AX">Åland Islands</option>
      <option value="AL">Albania</option>
      <option value="DZ">Algeria</option>
      <option value="AS">American Samoa</option>
  </select>
</section>

Postleitzahl ist optional. Das liegt daran, dass viele Länder keine Postleitzahlen verwenden. (Global Sourcebook bietet Informationen über Adressformate für 194 verschiedene Länder, einschließlich Beispieladressen. Die Bezeichnung Land oder Region wird anstelle von Land verwendet, weil einige Optionen in der vollständigen Liste (z. B. die Vereinigtes Königreich) sind (trotz dem Wert autocomplete) keine einzelnen Länder.

Schritt 4: Kunden die einfache Eingabe von Versand- und Rechnungsadressen ermöglichen

Sie haben bereits ein funktionsreiches Adressformular erstellt, aber was ist, wenn für Ihre Website mehr als ein Adresse, z. B. für Versand und Rechnungsadresse? Aktualisieren Sie Ihr Formular, damit Kunden teilnehmen können Liefer- und Rechnungsadressen. Wie können Sie die Dateneingabe so schnell und einfach wie möglich vor allem, wenn die beiden Adressen identisch sind? Im Artikel zu diesem Codelab erfahren Sie, Techniken für die Verarbeitung mehrerer Adressen. In jedem Fall müssen Sie jedoch die richtigen autocomplete-Werte verwenden.

Schritt 5: Feld für die Telefonnummer hinzufügen

Um eine Eingabe für eine Telefonnummer hinzuzufügen, fügen Sie dem Formular den folgenden Code hinzu:

<section>
  <label for="tel">Telephone</label>
  <input id="tel" name="tel" autocomplete="tel" type="tel"
    maxlength="30" pattern="[\d \-\+]+" enterkeyhint="done"
    required>
</section>

Bei Telefonnummern ist nur eine Eingabe erforderlich: Teilen Sie die Nummer nicht in mehrere Teile auf. Das erleichtert es Nutzer Daten eingeben oder kopieren und einfügen können, vereinfacht die Validierung und ermöglicht Browser das automatische Ausfüllen.

Es gibt zwei Attribute, die die Eingabe einer Telefonnummer nutzerfreundlicher machen können:

  • type="tel" stellt sicher, dass mobile Nutzer die richtige Tastatur erhalten.
  • enterkeyhint="done" legt das Label der Eingabetaste auf der mobilen Tastatur so fest, dass dies die letzte und das Formular kann jetzt gesendet werden (Standardeinstellung ist next).
<ph type="x-smartling-placeholder">
</ph> Zwei Screenshots eines Formulars auf Android, die zeigen, wie das Eingabeattribut „enterkeyhint“ das Symbol der Schaltfläche für die Eingabetaste ändert.
Legen Sie mit dem Attribut „enterkeyhint“ die Beschriftung der Schaltfläche „Eingabe“ fest: 'Weiter' und fertig.

Das vollständige Adressformular sollte nun so aussehen:

  • Testen Sie das Formular auf verschiedenen Geräten. Auf welche Geräte und Browser ist die Ausrichtung ausgerichtet? Wie könnte das Formular zu verbessern?

Es gibt mehrere Möglichkeiten, Ihr Formular auf verschiedenen Geräten zu testen:

Weitere Möglichkeiten

  • Analytics und Monitoring echter Nutzer: damit die Leistung und Nutzerfreundlichkeit Ihres Formulardesigns für echte Nutzende getestet und überwacht werden kann. und überprüfen, ob die Änderungen erfolgreich waren. Du solltest die Ladeleistung und andere Web Vitals überwachen, sowie die Seitenanalyse (der Anteil der Nutzenden, der von Ihrem Adressformular abspringt, ohne es ausgefüllt zu haben) es? Wie viel Zeit verbringen Nutzer auf Ihren Adressformularseiten?) und Interaktionsanalysen (welche Seite Komponenten, mit denen die Nutzenden interagieren oder nicht?)

  • Wo befinden sich Ihre Nutzer? Wie formatieren sie ihre Adresse? Welche Namen verwenden sie als Adresse? Komponenten wie Postleitzahl? Franks zwanghafte Anleitung zu Postanschriften bietet nützliche Links und ausführliche Anleitungen zu Adressformaten in über 200 Ländern.

  • Länderauswahl ist für ihre schlechte Nutzerfreundlichkeit bekannt. Ausgewählte Elemente sollten für eine lange Liste von Elementen vermieden werden. und der Ländercode-Standard ISO 3166 enthält derzeit 249 Länder. Anstelle von <select> können Sie eine Alternative wie die Länderauswahl des Baiymard Institute.

    Können Sie eine bessere Auswahl für Listen mit vielen Elementen entwerfen? Wie würden Sie sicherstellen, dass Ihr Design auf einer Vielzahl von Geräten und Plattformen? Das <select>-Element eignet sich nicht gut für eine große Anzahl von Elementen vorhanden ist, aber sie ist zumindest auf praktisch allen Browsern und Hilfsgeräten nutzbar!)

    Im Blogpost <input type="Land" /> diskutiert wie komplex die Standardisierung einer Länderauswahl ist. Die Lokalisierung von Ländernamen kann auch ist problematisch. Länderlisten verfügt über ein Tool zur Herunterladen von Ländercodes und Namen in mehreren Sprachen und verschiedenen Formaten