Heim > Web-Frontend > CSS-Tutorial > HTML -Eingaben und -bezeichnungen: Eine Liebesgeschichte

HTML -Eingaben und -bezeichnungen: Eine Liebesgeschichte

Lisa Kudrow
Freigeben: 2025-03-25 10:45:15
Original
512 Leute haben es durchsucht

HTML -Eingaben und -bezeichnungen: Eine Liebesgeschichte

Die meisten Eingaben haben etwas gemeinsam - sie sind mit einem Begleitetikett am glücklichsten! Und das Glück hört hier nicht auf. Formulare mit geeigneten Inputs und Etiketten sind für Menschen viel einfacher zu verwenden, und das macht auch die Menschen glücklich.

In diesem Beitrag möchte ich mich auf Situationen konzentrieren, in denen das Fehlen eines semantischen Etiketts und der Input -Kombination es für alle möglichen Menschen viel schwieriger macht, Formulare zu vervollständigen. Da Millionen von Menschenlebensunterlagen auf Formen angewiesen sind, gehen wir in die besten Tipps, die ich kenne , um eine erfüllende und harmonische Beziehung zwischen einem Eingang und einem Etikett zu schaffen.

Inhaltswarnung: In diesem Beitrag sind Themen der Liebe und Beziehungen.

Die Liebesgeschichte beginnt hier! Lassen Sie uns die Grundlagen für das Erstellen von glücklichen Beschriftungen und Eingaben abdecken.

So kombinieren Sie ein Etikett und einen Eingang

Es gibt zwei Möglichkeiten , ein Etikett und einen Eingang zu kombinieren. Einer erfolgt durch ein Eingabe der Eingabe in eine Etikett (implizit), und das andere wird durch Hinzufügen eines Attributs zur Etikett und einer ID zur Eingabe (explizit) ein Attribut hinzugefügt.

Stellen Sie sich ein implizites Etikett als Eingabe vor und ein explizites Etikett neben einem Eingang und Halten der Hand.

 <label> 
  Name:
  <eingabe type="text" name="name"></eingabe>
</label>
Nach dem Login kopieren

Ein explizites Etikett für den Attributwert muss mit dem ID -Wert seiner Eingabe übereinstimmen. Wenn beispielsweise einen Namenswert hat, sollte die ID auch einen Namenswert haben.

 <label f> Name: </label>
<eingabe type="text" name="name"></eingabe>
Nach dem Login kopieren

Leider wird ein implizites Etikett von allen assistiven Technologien nicht korrekt behandelt, auch wenn für und ID -Attribute verwendet werden. Daher ist es immer die beste Idee, ein explizites Etikett anstelle eines impliziten Etiketts zu verwenden.

 
<label> 
  Name:
  <eingabe type="text" name="name"></eingabe>
</label>

 mit einer Eingabe verbunden
<label f label-name> Name: </label>
<eingabe type="text" name="name"></eingabe>
Nach dem Login kopieren

Jedes separate Eingangselement sollte nur mit einer Etikett gepaart werden. Und ein Etikett sollte nur mit einem Eingang gepaart werden. Ja, Eingänge und Etiketten sind monogam. ♥ ️

Hinweis: Es gibt eine Ausnahme von dieser Regel: Wenn wir mit einer Gruppe von Eingängen arbeiten, sagen Sie mehrere Optionsfelder oder Kontrollkästchen. In diesen Fällen wird ein -Element verwendet, um bestimmte Eingabelemente wie Optionsfelder zu gruppieren, und dient als zugängliches Etikett für die gesamte Gruppe.

Nicht alle Eingänge benötigen Etiketten

Eine Eingabe mit einer Schaltfläche "type =" subieren "oder type =" "benötigt kein Etikett - das Wert -Attribut fungiert stattdessen als zugänglicher Beschriftungstext. Eine Eingabe mit Typ = "Hidden" ist auch ohne Etikett in Ordnung. Aber alle anderen Eingaben, einschließlich

Was geht in ein Etikett

Der Inhalt, der in ein Etikett geht, sollte:

  • Beschreiben Sie seinen Begleiteingang. Ein Etikett möchte jedem zeigen, dass es zu seinem Input -Partner gehört.
  • Sichtbar sein. Ein Etikett kann angeklickt oder abgebildet werden, um seine Eingabe zu fokussieren. Der zusätzliche Speicherplatz, den es bietet, um mit der Eingabe zu interagieren, ist von Vorteil, da er den Tippen oder das Klicken auf das Ziel erhöht. Wir werden uns ein wenig mehr darauf einlassen.
  • Nur einfacher Text enthalten. Fügen Sie keine Elemente wie Überschriften oder Links hinzu. Auch hier gehen wir in das „Warum“ dahinter weiter.

Eine nützliche Sache, die Sie mit dem Inhalt in einem Etikett machen können, ist die Hinzufügen von Formatierungshinweise. Beispielsweise ist die Etikett für

 
<label f> Startdatum </label>

<pan> (dd-mm-yjyy): 
<eingabe type="Datum" aria-beschriebenby="Date-format" min="2021-03-01" max="2031-01-01"></eingabe></pan>
Nach dem Login kopieren

Auf diese Weise erhalten wir den Vorteil eines klaren Etiketts, das beschreibt, wofür die Eingabe gilt, und einen Bonus -Hinweis auf den Benutzer, dass die Eingabe in einem bestimmten Format eingegeben werden muss.

Best Practices für eine gesunde Beziehung

Die folgenden Tipps gehen über die Grundlagen hinaus, um zu erklären, wie ein Etikett und Eingaben so glücklich sind wie möglich.

Do: Fügen Sie ein Etikett am richtigen Ort hinzu

Es gibt ein WCAG -Erfolgskriterium, bei dem die visuelle Reihenfolge einer Seite der Reihenfolge folgen sollte, in der Elemente im DOM erscheinen. Das liegt daran, dass:

Ein Benutzer mit Low Vision, der in Kombination mit einem Bildschirmleser einen Bildschirm -Vergrößerung verwendet, kann verwirrt sein, wenn die Leserreihenfolge auf dem Bildschirm herumspringt. Ein Tastaturbenutzer hat möglicherweise Schwierigkeiten zu prognostizieren, wo der Fokus als nächstes liegt, wenn die Quellordnung nicht mit der visuellen Reihenfolge übereinstimmt.

Denken Sie darüber nach. Wenn wir ein Standard -HTML haben, bei dem das Etikett vor der Eingabe kommt:

 <label for="orange"> orange </label>
<eingabe type="CheckBox" name="orange"></eingabe>
Nach dem Login kopieren

Dadurch wird das Etikett vor die Eingabe in die DOM gestellt. Nehmen wir jetzt an, unser Etikett und unser Formular befinden sich in einem flexiblen Behälter und wir verwenden CSS -Reihenfolge, um Dinge umzukehren, bei denen die Eingabe visuell vor dem Etikett erhältlich ist:

 Etikett {Order: 2; }
Eingabe {Order: 1; }
Nach dem Login kopieren

Ein Bildschirmleserbenutzer, der zwischen den Elementen navigiert, kann erwarten, dass der Eingang vor dem Etikett den Fokus erhält, da die Eingabe zuerst visuell kommt. Aber was wirklich passiert, ist stattdessen in den Fokus. Hier finden Sie den Unterschied zwischen dem Navigieren mit einem Bildschirmleser und einer Tastatur.

Wir sollten uns dessen bewusst sein. Es ist konventionell, das Etikett auf der rechten Seite des Eingangs für Kontrollkästchen und Optionsfelder zu platzieren. Dies kann erfolgen, indem das Etikett nach der Eingabe in das HTML platziert wird, um sicherzustellen, dass die DOM- und die visuelle Reihenfolge übereinstimmt.

 
Nach dem Login kopieren
Nach dem Login kopieren

Do: Überprüfen Sie die Eingänge mit einem Bildschirmleser

Unabhängig davon, ob eine Eingabe von Grund auf neu geschrieben oder mit einer Bibliothek erzeugt wird, ist es eine gute Idee, Ihre Arbeiten mit einem Bildschirmleser zu überprüfen. Dies soll sicherstellen:

  • Alle relevanten Attribute existieren - insbesondere die übereinstimmenden Werte der für und ID -Attribute.
  • Das DOM entspricht der visuellen Reihenfolge.
  • Der Etikett Text klingt klar. Zum Beispiel wird „DD-MM-Yyyy“ unterschiedlich zu seinem Großbuchstaben (DD-MM-Yyyy) vorgelesen.

In den letzten Jahren habe ich JavaScript -Bibliotheken wie Downshift verwendet, um komplexe Formularelemente wie Autocomplete oder Comboboxe auf nativen HTML -HTML -, wie Eingaben oder Auswahl zu erstellen. Die meisten Bibliotheken machen diese komplexen Elemente zugänglich, indem sie mit JavaScript Aria -Attribute hinzufügen.

Die Vorteile nativer HTML -Elemente, die mit JavaScript verbessert werden, gehen jedoch vollständig verloren, wenn JavaScript unterbrochen oder deaktiviert ist, was sie unzugänglich macht. Überprüfen Sie dies dies und geben Sie eine servergerenderte Alternative ohne JavaScript als sichere Fallback an.

Schauen Sie sich diese grundlegenden Formulartests an, um festzustellen, wie ein Eingang und seine Begleitetika oder Legende von verschiedenen Bildschirmlesern geschrieben und angekündigt werden sollen.

Do: Machen Sie das Etikett sichtbar

Das Anschließen eines Etiketts und einer Eingabe ist wichtig, aber genauso wichtig ist es, das Etikett sichtbar zu halten. Wenn Sie auf ein sichtbares Etikett klicken oder tippen, konzentriert sich der Eingabepartner. Dies ist ein einheimisches HTML -Verhalten, das einer großen Anzahl von Menschen zugute kommt.

Stellen Sie sich ein Etikett vor, das stolz seinen Zusammenhang mit einem Input zeigen möchte:

Das heißt, es wird Zeiten geben, in denen ein Design ein verstecktes Etikett fordert. Wenn also ein Etikett versteckt sein muss , ist es wichtig, dies auf zugängliche Weise zu tun. Ein häufiger Fehler ist die Verwendung von Display: Keine oder Sichtbarkeit: versteckt, um ein Etikett zu verbergen. Diese CSS zeigen Eigenschaften an, ein Element vollständig auszublenden - nicht nur visuell, sondern auch von Bildschirmlesern.

Erwägen Sie, den folgenden Code zu verwenden, um Beschriftungen visuell auszublenden:

 /* Für nicht nativ fokussierbare Elemente. Für nativ fokussierbare Elemente */
/ * Use .visuell-versteckt: nicht (: fokus): nicht (: aktiv) */
.visuell versteckt {
  Grenzbreit: 0! Wichtig;
  Clip: Rect (1px, 1px, 1px, 1px)! Wichtig;
  Höhe: 1PX! Wichtig;
  Überlauf: versteckt! Wichtig;
  Polsterung: 0! Wichtig;
  Position: absolut! Wichtig;
  weißer Raum: Nowrap! Wichtig;
  Breite: 1PX! Wichtig;
}
Nach dem Login kopieren

Kitty Giraudel erklärt eingehend, wie man Inhalte verantwortungsbewusst verbergt hat.

Was zu vermeiden ist

Um eine gesunde Beziehung zwischen Inputs und Etiketten zu bewahren und aufrechtzuerhalten, gibt es beim Koppeln einige Dinge nicht zu tun. Lassen Sie uns darauf eingehen, was diese sind und wie Sie sie verhindern können.

Nicht: Erwarten Sie in jedem Browser, dass Ihre Eingabe gleich ist

Es gibt bestimmte Arten von Eingängen, die in einigen älteren Desktop -Browsern nicht unterstützt werden. Beispielsweise wird eine Eingabe type = "Datum" im Internet Explorer (dh) 11 oder sogar in Safari 14 1 (veröffentlicht September 2020) nicht unterstützt. Eine Eingabe wie diese fällt auf type = "text" zurück. Wenn eine Datumseingabe kein klares Etikett hat und automatisch auf einen Texteingang in älteren Browsern zurückfällt, werden die Menschen möglicherweise verwirrt.

Nicht: Ersetzen Sie ein Etikett durch einen Platzhalter

Hier ist der Grund, warum ein Platzhalterattribut für eine Eingabe anstelle eines Etiketts nicht verwendet werden sollte:

  • Nicht alle Bildschirmleser geben Platzhalter an.
  • Der Wert eines Platzhalters besteht darin, auf kleineren Geräten abzuschneiden oder wenn eine Seite im Browser übersetzt wird. Im Gegensatz dazu kann der Textinhalt eines Etiketts problemlos auf eine neue Zeile einwickeln.
  • Nur weil ein Entwickler den hellgrauen Platzhaltertext auf seinem großen Retina-Bildschirm in einem gut beleuchteten Raum in einer ablenkungsfreien Umgebung sehen kann, heißt das nicht, dass jeder andere. Ein Platzhalter kann sogar diejenigen mit guter Sicht machen, die ihre Augen hochtreiben und schließlich eine Form aufgeben.

  • Sobald ein Charakter in einen Eingang eingegeben wurde, wird sein Platzhalter unsichtbar - sowohl visuell als auch auf Screen -Leser. Wenn jemand zurückverfolgt muss, um Informationen zu überprüfen, die er in einem Formular eingegeben hat, müssten er löschen, was eingegeben wurde, nur um den Platzhalter erneut zu sehen.
  • Das Platzhalterattribut wird in IE 9 und unten nicht unterstützt und verschwindet, wenn eine Eingabe auf IE 11 fokussiert ist. Eine weitere zu beachten: Die Platzhalterfarbe kann mit CSS in IE 11 nicht angepasst werden.

Platzhalter sind wie der Freund, der auftaucht, wenn alles perfekt ist, aber verschwindet, wenn Sie sie am dringendsten brauchen. Kombinieren Sie stattdessen eine Eingabe mit einem schönen, kontrastischen Etikett. Etiketten sind nicht schuppig und in 100% der Fälle den Eingaben loyal.

Die Nielsen Norman Group verfügt über einen ausführlichen Artikel, in dem erklärt wird, warum Platzhalter in Formgebern schädlich sind.

Nicht: Ersetzen Sie ein Etikett durch ein anderes Attribut oder ein anderes Element

Wenn kein Etikett vorhanden ist, suchen einige Bildschirmleser nach benachbarten Text und geben dies statt. Dies ist ein Hit-and-Miss-Ansatz, da es möglich ist, dass ein Bildschirmleser keinen Text zum Ankündigen findet.

Das unten stehende Code -Beispiel stammt von einer echten Website. Das Etikett wurde durch ein -Element ersetzt, das nicht semantisch mit dem Eingang verbunden ist.

 <div>
  <pan> Kartennummer 
  <div>
    <eingabe type="text" value="" name="cardnumber" maxlength="40">
  </eingabe>
</div>
</pan>
</div>
Nach dem Login kopieren

Der obige Code sollte neu geschrieben werden, um die Zugänglichkeit zu gewährleisten, indem die Spannweite durch ein Etikett mit für = "CardNumber" darauf ersetzt wird . Dies ist bei weitem die einfachste und robusteste Lösung, die den meisten Menschen zugute kommt.

Während ein Etikett durch eine Spannweite ersetzt werden könnte, die eine ID mit einem Wert hat, der mit dem Aria-markierten Attribut des Eingangs entspricht, können die Leute nicht auf die Span klicken, um die Eingabe auf die gleiche Weise zu fokussieren, wie es ein Etikett zulässt. Es ist immer am besten, die Kraft einheimischer HTML-Elemente zu nutzen, anstatt sie neu zu erfinden. Die Liebesgeschichte zwischen nativen Input- und Etikettelementen muss nicht neu geschrieben werden! Es ist großartig wie IS.

Nicht: Stellen Sie interaktive Elemente in Etiketten ein

Nur einfacher Text sollte in ein Etikett enthalten sein. Vermeiden Sie es, Dinge wie Überschriften oder interaktive Elemente wie Links einzufügen. Nicht alle Bildschirmleser geben ein Etikett korrekt an, wenn es etwas anderes als einfacher Text enthält. Wenn jemand eine Eingabe fokussieren möchte, indem er auf das Etikett klickt, aber diese Etikette einen Link enthält, kann er versehentlich auf den Link klicken.

 
Nach dem Login kopieren
Nach dem Login kopieren
read Allgemeine Geschäftsbedingungen

Beispiele im wirklichen Leben

Ich finde immer, dass Beispiele im wirklichen Leben mir helfen, etwas richtig zu verstehen. Ich habe das Web gesucht und Beispiele für Etiketten und Eingaben aus einer beliebten Komponentenbibliothek und -webelle gefunden. Im Folgenden erkläre ich, wo die Elemente zu kurz kommen und wie sie verbessert werden können, um eine bessere Paarung zu gewährleisten.

Komponentenbibliothek: Material

Materialui ist eine React -Komponentenbibliothek, die auf Googles Designsystem basiert. Es enthält eine Texteingangskomponente mit einem schwimmenden Etikettmuster, das für viele Designer und Entwickler zu einer beliebten Anlaufstelle geworden ist:

Das Klicken auf die Eingabe fühlt sich reibungslos an und sieht toll aus. Aber das ist das Problem. Seine Eigenschaften sind meistens hauttiefe.

Zum Zeitpunkt des Schreibens dieses Beitrags umfassen einige Probleme, die ich mit dieser Komponente gefunden habe,:

  • Es gibt keine Möglichkeit, das Etikett außerhalb der Eingabe zu haben, um einen erhöhten interaktiven Bereich für die Fokussierung der Eingabe zu bieten.
  • Es gibt eine Option, um einen Hinweis hinzuzufügen, wie wir zuvor gesehen haben. Leider ist der Hinweis nur mit der Eingabe über die Nähe und nicht über eine übereinstimmende ID und eine Aria-geschriebene Zeit verbunden. Dies bedeutet, dass nicht alle Bildschirmleser in der Lage sind, die Helper -Nachricht mit der Eingabe zu verknüpfen.
  • Das Etikett befindet sich hinter der Eingabe im DOM, wodurch die visuelle Reihenfolge falsch ist.
  • Der leere Eingang sieht aus, als wäre er bereits ausgefüllt, zumindest solange er nicht aktiv ist.
  • Das Etikett gleitet nach oben, wenn der Eingang geklickt wird, sodass sie für diejenigen, die eine reduzierte Bewegung bevorzugen, ungeeignet sind.

Adam Silver erklärt auch, warum Float -Etiketten problematisch sind und in eine detaillierte Kritik des Texteingangsdesigns des Materialiens geraten.

Website: HuffPost

Die HuffPost -Website enthält Artikel mit einem Newsletter -Abonnementformular:

Zum Zeitpunkt des Schreibens dieses Blog -Beitrags könnte die E -Mail -Eingabe, die HuffPost verwendet, von einer Reihe von Verbesserungen profitieren:

  • Das Fehlen eines Etiketts bedeutet ein kleineres Klick oder Tippen Sie auf das Ziel. Anstelle eines Etiketts befindet sich ein ARIA-Label-Attribut für die Eingabe.
  • Die Schriftgröße des Platzhalters und der Eingabewerte ist ein winziger 11px, der schwer zu lesen ist.
  • Die gesamte Eingabe verschwindet ohne JavaScript, was bedeutet, dass die Leute keine Möglichkeit haben, sich beim Newsletter anzumelden, wenn JavaScript deaktiviert oder kaputt ist.

Schließende Bemerkungen

Eine überraschende Anzahl von Menschen kämpft darum, Informationen in schlecht konstruierte Inputs einzugeben. Diese Liste umfasst Menschen mit kognitiven, motorischen und körperlichen Behinderungen, Autismus -Spektrum -Erkrankungen, Hirnverletzungen und schlechter Sehvermögen. Andere Menschen, die sich kämpfen, sind diejenigen, die in Eile, in einer schlechten Verbindung, auf einem kleinen Gerät, auf einem alten Gerät und unter anderem mit digitalen Formen nicht vertraut sind.

Darüber hinaus gibt es zahlreiche Gründe, warum JavaScript in einem Browser brechen oder ausgeschaltet werden kann, was bedeutet, dass die Eingaben dysfunktional oder vollständig unzugänglich werden. Es gibt auch Personen, die in der Lage sind, eine Webseite anzusehen, aber möglicherweise eine Tastatur zusammen mit einem Bildschirmleser verwenden.

Die Nachricht, die ich vermitteln möchte, ist, dass Happy Etikett und Eingabepaare von entscheidender Bedeutung sind . Es spielt keine Rolle, ob Ihre Form schön ist, wenn sie unbrauchbar ist. Ich kann wetten, dass fast jeder lieber eine hässliche, aber benutzerfreundliche Form ausfüllen würde, anstatt ein hübsches, das Probleme verursacht.

Danke

Ich möchte den folgenden Leuten herzlich danken, dass sie mir bei diesem Beitrag geholfen haben: Eric Eggert, Adam Silver, Dion Dajka und Kitty Giraudel. Ihr kombiniertes Wissen zu Barrierefreiheit ist eine Kraft, mit der man rechnen muss!

Fußnoten

  • 1 Der DatePicker ist in iOS 14 gut unterstützt und sehr nett. Man würde sich vorstellen, dass eine MacOS -Version am Horizont sein muss. ⮑

Das obige ist der detaillierte Inhalt vonHTML -Eingaben und -bezeichnungen: Eine Liebesgeschichte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage