Webformulare, Tabellen und Medien in HTML
AnfängerEinheit 3 von 8 in Kurs: HTML und CSS – barrierefreie, responsive Webseiten erstellen
Was du lernst
- Erstelle ein Formular, wähle für jede Information ein passendes Steuerelement, beschrifte jedes Steuerelement und verstehe genau, was der Browser beim Absenden des Formulars sendet.
- Erstelle ein Formular und verstehe, welche Daten es sendetNutze das form-Element, Namen und Werte, Sendeschaltflächen sowie die Attribute action und method, um festzulegen, welche Daten die Seite verlassen und wohin sie gesendet werden.
- Wähle Eingabetypen passend zu den DatenWähle für jede Information den passenden Eingabetyp, damit Browser die richtige Tastatur oder Auswahlhilfe anbieten und das grundlegende Format prüfen.
- Verwende mehrzeilige Textfelder, Dropdown-Listen und andere SteuerelementeErfasse längere Texte, biete feste Auswahllisten und Eingabevorschläge an und zeige Fortschritte oder Messwerte mit textarea, select, datalist, progress und meter.
- Beschrifte jedes Steuerelement und gruppiere zusammengehörige SteuerelementeVerbinde sichtbare Beschriftungen mit ihren Steuerelementen, gruppiere zusammengehörige Steuerelemente mit fieldset und legend und ergänze Eingabehinweise und Hinweise zur automatischen Vervollständigung, damit alle das Formular ausfüllen können.
- Erstelle ein Formular und verstehe, welche Daten es sendet
- Nutze HTML-Validierungsattribute, damit der Browser fehlende, zu lange, außerhalb des Wertebereichs liegende und falsch formatierte Werte vor dem Absenden des Formulars erkennt, und verstehe die Grenzen dieser Prüfung.
- Lege Pflichtfelder fest und begrenze die TextlängeNutze required, minlength und maxlength und sage voraus, wann der Browser das Absenden zulässt oder verhindert.
- Lege Wertebereiche und Schrittweiten für Zahlen, Datumsangaben und Uhrzeiten festNutze min, max und step, um nur sinnvolle Werte zuzulassen, und sage voraus, welche Werte die Prüfung bestehen.
- Prüfe Eingaben auf Muster und gib hilfreiche RückmeldungenSchreibe einfache Musterregeln, erkläre sie den Benutzern, gestalte gültige und ungültige Felder und verstehe, warum der Server die Daten erneut prüfen muss.
- Lege Pflichtfelder fest und begrenze die Textlänge
- Zeichne tabellarische Daten mit Zeilen, Zellen, Kopfzellen und einer Tabellenbeschriftung aus und halte größere Tabellen durch Geltungsbereiche von Kopfzellen, Zeilen- und Spaltengruppen sowie verbundene Zellen verständlich.
- Erstelle eine Datentabelle mit Kopfzellen und TabellenbeschriftungNutze table, tr, th, td und caption, um Daten in Zeilen und Spalten darzustellen, und gib der Tabelle mit Geltungsbereichen für Kopfzellen und Zeilengruppen eine klare Struktur.
- Verbinde Zellen und ordne Datenzellen in komplexen Tabellen ihre Kopfzellen zuNutze colspan und rowspan korrekt, gruppiere Spalten und verbinde Zellen mit ihren Kopfzellen, wenn eine Tabelle mehr als eine Überschriftenebene hat.
- Erstelle eine Datentabelle mit Kopfzellen und Tabellenbeschriftung
- Binde Ton und Video mit den browsereigenen Wiedergabeprogrammen ein, stelle browserübergreifend funktionierende Formate und Ersatzinhalte bereit und mache Medien mit Untertiteln und Transkripten für alle nutzbar.
- Binde Audio und Video mit den passenden Attributen einNutze die Elemente audio und video mit Wiedergabesteuerung, Größenangaben, einem Vorschaubild und Ladehinweisen und entscheide, wann automatische Wiedergabe und Wiederholung angemessen sind.
- Biete überall nutzbare Formate und Ersatzinhalte anWähle breit unterstützte Dateiformate, führe alternative Quellen in der gewünschten Reihenfolge auf und ergänze Ersatzinhalt.
- Ergänze Untertitel für gehörlose und schwerhörige Menschen, weitere Untertitel und TranskripteSchreibe eine einfache WebVTT-Datei, binde sie mit dem track-Element ein und stelle Transkripte bereit, damit Medien ohne Ton nutzbar sind.
- Binde Audio und Video mit den passenden Attributen ein
- Platziere Karten, Videos und andere Webseiten mit iframes innerhalb deiner eigenen Seite und wähle Einstellungen, die jede Einbettung barrierefrei, schnell, datenschutzfreundlich und sicher machen.
- Binde eine Seite mit einem iframe einErgänze einen iframe mit Titel, Größe und Lazy Loading, passe einen Einbettungscode einer anderen Website an und erkenne Websites, die keine Einbettung erlauben.
- Achte bei Einbettungen auf Sicherheit und Datenschutz und wähle das passende ElementBegrenze mit sandbox und allow, was eine eingebettete Seite tun darf, berücksichtige, welche Besucherdaten Einbettungen weitergeben, und wähle zwischen iframe, embed, object und den Medienelementen.
- Binde eine Seite mit einem iframe ein
Webformulare einfach erklärt
1Erstelle bedienbare Formulare
Ein nützliches Formular beginnt mit den Informationen, die Menschen eingeben müssen. Wähle dazu passende Steuerelemente, gib jedem eine klare Beschriftung und verbinde sie mit einem Formular, das aussagekräftige Namen und Werte sendet. Ein Suchfeld, ein Nachrichtenformular und ein Dateiupload erfassen alle Eingaben, benötigen aber unterschiedliche Einstellungen. Wenn du das HTML von der Eingabe bis zur ausgehenden Anfrage nachvollziehst, kannst du diese Entscheidungen leichter prüfen.
1.1 Wie ein Formular Namen und Werte sendet
Ein Formular erfasst zusammengehörige Antworten und sendet sie an eine URL. Das <form>-Element umschließt seine Steuerelemente und die Sendeschaltfläche. Halte getrennte Formulare auseinander: HTML erlaubt kein Formular innerhalb eines anderen Formulars.
Ziel und Methode wählen
action nennt die empfangende URL. Ohne diese Angabe geht die Anfrage an die aktuelle Seite. method legt fest, wie der Browser die Daten sendet; standardmäßig gilt GET.
| Methode | Wohin die Daten gehen | Typische Verwendung |
|---|---|---|
| GET | In die URL nach einem Fragezeichen | Suchen und Filter |
| POST | In den Nachrichtenkörper der Anfrage | Nachrichten, Anmeldungen und Änderungen gespeicherter Daten |
GET-Daten können im Verlauf, in Lesezeichen und in Serverprotokollen erscheinen. POST hält sie aus dem Query-String heraus, verschlüsselt sie aber nicht. Verwende HTTPS, um Daten bei der Übertragung zu schützen. Das Serverprogramm empfängt und verarbeitet die Anfrage; das HTML-Formular selbst speichert Antworten nicht und versendet sie nicht per E-Mail.
Eine Suchanfrage nachvollziehen
<form action="/search" method="get">
<label for="query">Search</label>
<input id="query" type="search" name="q">
<label for="language">Language</label>
<select id="language" name="lang">
<option value="en">English</option>
</select>
<button type="submit">Search</button>
</form>
Gibt der Benutzer „html tables“ ein, fordert der Browser /search?q=html+tables&lang=en an. Er nimmt den Feldnamen q und seinen aktuellen Wert, kodiert das Leerzeichen als + und verbindet die beiden Paare mit &. Das ? leitet den Query-String ein.
Ein Steuerelement braucht einen name, um Daten beizusteuern. Seine id erfüllt einen anderen Zweck: Sie identifiziert das Element auf der Seite und verbindet es unter anderem mit einer Beschriftung. Ein Eingabefeld mit id="query", aber ohne name, kann normal aussehen und funktionieren, ohne eine Antwort zur Anfrage beizutragen.
Welche Steuerelemente Daten beisteuern
Ein leeres Textfeld mit Namen steuert einen leeren Wert bei, etwa comment=. Ein angekreuztes Kontrollkästchen steuert seinen value bei; ohne Wert steuert es on bei. Ein nicht angekreuztes Kontrollkästchen steuert nichts bei. Ein deaktiviertes Steuerelement ist nicht bedienbar und wird ausgelassen. Ein unterstütztes readonly-Feld kann nicht bearbeitet werden, steuert aber weiterhin seinen Wert bei.
Ein verstecktes Eingabefeld wie <input type="hidden" name="source" value="newsletter"> steuert einen Wert ohne sichtbares Steuerelement bei. Der Wert ist nicht geheim: Besucher können ihn in den Entwicklerwerkzeugen untersuchen und ändern.
Das Verhalten von Schaltflächen ausdrücklich festlegen
Innerhalb eines Formulars sendet ein gewöhnlicher <button> dieses standardmäßig ab. Schreibe type="submit" für die Sendeschaltfläche und type="button" für eine Schaltfläche, die ein Skript benötigt. type="reset" stellt Ausgangswerte wieder her und kann die Eingaben eines Benutzers löschen. Auch das Drücken der Eingabetaste in einem einzeiligen Feld sendet das Formular oft ab. <input type="submit" value="Send"> ist ein weiteres Steuerelement zum Absenden; ein <button> kann außerdem Inline-Inhalte wie ein Symbol enthalten.
Den Inhalt einer Datei senden
<form action="/upload" method="post" enctype="multipart/form-data">
<label for="attachment">Attachment</label>
<input id="attachment" type="file" name="attachment">
<button type="submit">Upload</button>
</form>
Für einen gewöhnlichen Dateiupload sind sowohl POST als auch enctype="multipart/form-data" nötig. Bei der Standardkodierung des Formulars werden Dateinamen als Text übertragen, die Dateiinhalte aber nicht.
Wichtige Erkenntnisse
- Der
nameeines Steuerelements identifiziert seinen übermittelten Wert; dieididentifiziert das Element auf der Seite. - GET setzt Paare in die URL; POST setzt sie in den Nachrichtenkörper der Anfrage. HTTPS verschlüsselt die Übertragung.
- Nicht angekreuzte Kontrollkästchen und deaktivierte Steuerelemente werden ausgelassen; unterstützte schreibgeschützte Felder werden übermittelt.
- Lege Schaltflächentypen ausdrücklich fest, um versehentliches Absenden oder Zurücksetzen zu verhindern.
- Dateiuploads benötigen POST und
multipart/form-data.
1.2 Eingabetypen und die Werte, die sie erfassen
Ein <input> ist ein leeres Element und hat daher weder Inhalt noch ein schließendes Tag. Sein type wählt das Steuerelement und die zugehörigen Hilfen des Browsers. Fehlende oder nicht erkannte Typen fallen auf ein Textfeld zurück.
Text passend zum Zweck erfassen
| Typ | Verwendung | Hilfe des Browsers |
|---|---|---|
text | Eine Zeile Freitext | Allgemeine Texteingabe |
search | Eine Suchanfrage | Kann eine Schaltfläche zum Löschen enthalten |
email | Eine E-Mail-Adresse | E-Mail-Tastatur und Syntaxprüfung |
url | Eine vollständige Webadresse | URL-Tastatur und Syntaxprüfung |
tel | Eine Telefonnummer | Telefontastatur; keine Formatprüfung |
password | Ein Passwort | Verdeckt die sichtbaren Zeichen |
Ein E-Mail-Feld prüft die Syntax, nicht aber, ob ein Postfach existiert. Selbst „ana@example“ besteht die grundlegende Syntaxprüfung. Ergänze multiple, um eine durch Kommas getrennte Liste von Adressen zu akzeptieren. Ein URL-Feld erwartet ein URL-Schema: „https://example.com“ besteht die Prüfung, „example.com“ dagegen nicht. Telefonformate unterscheiden sich, daher gibt tel keine Formatregel vor. Die Maskierung eines Passworts verhindert, dass Menschen in der Nähe den Bildschirm ablesen; HTTPS sorgt weiterhin für die Verschlüsselung bei der Übertragung.
Mengenangaben von Zifferncodes unterscheiden
Verwende number für eine Mengenangabe, etwa eine Anzahl oder Masse. Das Feld hat oft Schaltflächen, mit denen sich der Wert erhöhen oder verringern lässt. Verwende range für eine ungefähre Einstellung wie die Lautstärke; der Standardbereich reicht von 0 bis 100 und der Standardwert ist 50.
Ein Mitgliedscode ist keine Mengenangabe. Verwende <input type="text" inputmode="numeric"> für einen Zifferncode, damit führende Nullen Text bleiben und die Schaltflächen ihn nicht ändern. inputmode schlägt nur eine Bildschirmtastatur vor: Es validiert die Eingabe nicht. decimal, tel, email und url sind weitere nützliche Tastaturhinweise.
Anzeige- und Übermittlungsformat unterscheiden
Datumsauswahlen richten sich nach den Regionseinstellungen des Benutzers. Der 15. März 2026 kann als „03/15/2026“ oder „15/03/2026“ erscheinen, das übermittelte Datum ist aber 2026-03-15.
| Typ | Beispiel für einen übermittelten Wert |
|---|---|
date | 2026-03-15 |
time | 14:30 |
datetime-local | 2026-03-15T14:30 |
month | 2026-03 |
week | 2026-W11 |
Diese Steuerelemente speichern keine Zeitzone. Bei einer lokalen Terminzeit muss daher der Ort oder die Zeitzone gesondert angegeben werden, wenn das wichtig ist.
Unabhängige Auswahl oder Einfachauswahl anbieten
Kontrollkästchen sind unabhängig: Mehrere können angekreuzt werden. Optionsfelder bilden eine Gruppe für eine Einfachauswahl, wenn ihre name-Werte übereinstimmen. Gib jedem Optionsfeld einen eigenen value und verwende checked für eine Vorauswahl.
<label><input type="radio" name="size" value="S"> Small</label>
<label><input type="radio" name="size" value="M" checked> Medium</label>
<label><input type="radio" name="size" value="L"> Large</label>
Die Vorauswahl sendet size=M. Unterschiedliche Namen würden separate Gruppen erzeugen und mehrere Auswahlen erlauben.
Farben und Dateien auswählen
color bietet eine Farbauswahl und kann eine RGB-Farbe wie #ff8800 senden. file öffnet eine Dateiauswahl; accept=".pdf,image/*" schlägt PDFs und Bilder vor, und multiple erlaubt mehrere Dateien. Der Filter hilft bei der Auswahl; der Server muss weiterhin Typ und Inhalt der empfangenen Datei prüfen. Bei Steuerelementen, die value verwenden, legt es den Ausgangswert fest, der auch übermittelt wird, wenn der Benutzer nichts ändert.
Wichtige Erkenntnisse
- Wähle einen Typ nach der Bedeutung der Daten, nicht allein nach ihrem Aussehen.
- Die Typen für E-Mail und URL prüfen die Syntax;
telundinputmodetun das nicht. - Verwende für Zifferncodes Text mit einem Hinweis auf eine numerische Tastatur.
- Die Anzeige von Datum und Uhrzeit hängt von den Regionseinstellungen ab; die übermittelten Formate sind fest und enthalten keine Zeitzone.
- Optionsfelder für eine Einfachauswahl haben denselben Namen; Kontrollkästchen erlauben unabhängige Auswahlen.
- Der
accept-Filter einer Dateiauswahl ist keine Sicherheitsprüfung.
1.3 Lange Antworten, feste Auswahlmöglichkeiten und Vorschläge
Ein einzeiliges Eingabefeld eignet sich nicht für jede Antwort. Längerer Text braucht Platz, während feste Auswahlmöglichkeiten Steuerelemente benötigen, die zeigen, was erlaubt ist. Entscheide vor der Wahl des Elements, ob Benutzer auch etwas außerhalb der Auswahl eingeben dürfen.
Längerem Text ein mehrzeiliges Textfeld geben
<label for="message">Message</label>
<textarea id="message" name="message" rows="5" cols="40"></textarea>
rows gibt die sichtbare Anzahl der Zeilen an und cols die ungefähre Breite in Zeichen. Keines der Attribute begrenzt die Menge des eingebbaren Texts; verwende dafür maxlength. Der Ausgangstext gehört zwischen die Tags, nicht in ein value-Attribut. Leerzeichen und Zeilenumbrüche dort werden Teil des Ausgangswerts. Direkt nebeneinanderstehende öffnende und schließende Tags ergeben daher ein tatsächlich leeres Feld.
Einen Wert aus einer Dropdown-Liste senden
<label for="delivery">Delivery</label>
<select id="delivery" name="delivery" required>
<option value="">Choose delivery</option>
<option value="standard">Standard (3–5 days)</option>
<option value="express">Express (next day)</option>
</select>
Die Auswahl „Express (next day)“, also Expresslieferung am nächsten Tag, sendet delivery=express. Der sichtbare Wortlaut kann eine Auswahl erläutern, während ihr value kurz und unverändert bleibt. Hat eine Option keinen value, wird ihr Text übermittelt. Ergänze selected, um eine Option vorauszuwählen. Hier hat die erste Option einen leeren Wert, sodass die Pflichtliste mit Einfachauswahl erst abgesendet werden kann, wenn der Benutzer eine Lieferart auswählt.
Optionen gruppieren oder mehrere zulassen
Ein <optgroup label="Hot drinks"> gibt zusammengehörigen Optionen eine Überschrift. Diese Überschrift ist selbst keine Auswahlmöglichkeit. Ein select mit multiple erlaubt mehrere ausgewählte Optionen, und size legt die sichtbaren Zeilen fest. Jeder ausgewählte Wert wird zu einem eigenen Paar mit demselben Namen: topics=html&topics=css.
Am Desktop erfordert die Mehrfachauswahl oft einen Strg-Klick oder Cmd-Klick. Bei einer kurzen Liste unabhängiger Optionen machen Kontrollkästchen die Auswahl meist deutlicher. Bei einer kurzen Liste für eine Einfachauswahl halten Optionsfelder alle Optionen sichtbar. Für eine lange feste Liste eignet sich ein select.
Vorschlagen, ohne einzuschränken
<label for="city">City</label>
<input id="city" name="city" list="cities">
<datalist id="cities">
<option value="Nairobi">
<option value="Osaka">
</datalist>
Das list-Attribut des Eingabefelds stimmt mit der id des datalist-Elements überein. Benutzer sehen Vorschläge, können aber weiterhin eine andere Stadt eingeben. Eine datalist ist daher für häufige Antworten auf eine offene Frage nützlich. Wird ein select durch eine datalist ersetzt, ändern sich die zulässigen Auswahlmöglichkeiten; es ändert sich nicht nur das Aussehen derselben festen Liste.
Fortschritt oder einen Messwert anzeigen
<progress> und <meter> zeigen Werte an, statt Antworten zu erfassen. Ein Fortschrittsbalken zeigt den Stand einer Aufgabe, etwa <progress value="70" max="100">70%</progress>. Eine Messwertanzeige zeigt einen Messwert in einem bekannten Bereich: <meter value="0.6">60%</meter> kann belegten Speicherplatz darstellen. Standardmäßig reicht der Bereich von 0 bis 1, sofern min und max ihn nicht ändern. Text innerhalb dieser Elemente liefert einen Ersatzwortlaut, wenn der Balken nicht gezeichnet werden kann. Ergänze neben beiden Anzeigen eine erklärende Beschriftung, damit Benutzer wissen, was die jeweilige Zahl misst.
Wichtige Erkenntnisse
- Der Ausgangswert eines mehrzeiligen Textfelds ist sein Inhalt;
rowsundcolslegen nur seine sichtbare Größe fest. - Ein select sendet die Werte ausgewählter Optionen und kann eine feste Auswahl erzwingen.
- Eine datalist schlägt Antworten vor, erlaubt aber auch anderen Text.
- Verwende progress für den Fortschritt einer Aufgabe und meter für einen Messwert in einem bekannten Bereich.
1.4 Sichtbare Beschriftungen und hilfreiche Formularhinweise
Ein Feld braucht einen Namen, der sichtbar bleibt, während der Benutzer es ausfüllt. Ein verbundenes <label> gibt dem Steuerelement außerdem einen zugänglichen Namen für Screenreader und macht seinen Text zu einem größeren anklickbaren Ziel. Hinweise erklären Regeln, die die Beschriftung allein nicht vermitteln kann.
Die Beschriftung mit dem Steuerelement verbinden
<label for="email">Email address</label>
<input id="email" name="email" type="email" autocomplete="email">
Das for der Beschriftung stimmt mit der id des Eingabefelds überein, einschließlich der Groß- und Kleinschreibung. Der name steuert die Übermittlung und muss nicht identisch sein. Jede id muss auf der Seite eindeutig sein. Zeigt for="email" auf einen name, aber nicht auf eine passende id, sieht die Beschriftung normal aus, ist aber nicht verbunden.
Eine weitere Möglichkeit ist, das Eingabefeld in die Beschriftung einzuschließen:
<label>
<input type="checkbox" name="news">
Send me the monthly newsletter
</label>
Diese implizite Verbindung ist für eine kurze Beschriftung eines Kontrollkästchens nützlich. Ein explizites Paar aus for und id funktioniert auch, wenn Beschriftung und Steuerelement im HTML getrennt stehen.
Beschriftungen und Beispiele getrennt halten
Ein Platzhalter wie „name@example.com“ verschwindet, sobald die Eingabe beginnt. Er kann außerdem schwer lesbar sein und ist kein zuverlässiger zugänglicher Name. Behalte die sichtbare Beschriftung bei; verwende einen Platzhalter nur als kurzes Beispiel, wenn er hilft.
Kennzeichne Pflichtfelder mit Worten, etwa „Name (Pflichtfeld)“, oder erkläre ein Sternchen einmal über dem Formular. Farbe allein kann nicht allen vermitteln, was erforderlich ist. Erkläre ein Format, bevor Benutzer versuchen, die Eingabe abzusenden.
<label for="pw">Password (required)</label>
<input id="pw" name="password" type="password"
required minlength="8" aria-describedby="pw-hint">
<p id="pw-hint">Use at least 8 characters.</p>
aria-describedby verweist auf die id des Hinweises. Es ergänzt den Hinweis als Beschreibung nach dem Namen des Felds; es ersetzt nicht die Beschriftung.
Eine Gruppe von Steuerelementen benennen
<fieldset>
<legend>Delivery speed</legend>
<label><input type="radio" name="speed" value="standard"> Standard</label>
<label><input type="radio" name="speed" value="express"> Express</label>
<label><input type="radio" name="speed" value="pickup"> Pickup</label>
</fieldset>
Die Gruppenbeschriftung gibt die gemeinsame Frage an; jede Beschriftung benennt eine Antwort. Eine Formularfeldgruppe kann auch zusammengehörige Adressfelder gruppieren. Setze die Gruppenbeschriftung an den Anfang. disabled an einem fieldset deaktiviert die darin enthaltenen Steuerelemente, ausgenommen Steuerelemente innerhalb seines ersten legend-Elements. Halte gewöhnliche Formularsteuerelemente außerhalb des legend-Elements, damit diese Ausnahme nicht zu Überraschungen führt.
Browser beim Ausfüllen bekannter Angaben unterstützen
autocomplete beschreibt den Zweck von Informationen über den Benutzer. Zu den Werten gehören name, email, tel, street-address, postal-code, country-name, bday, new-password, current-password und one-time-code. Zutreffende Zweckangaben unterstützen das Eintragen gespeicherter Daten und das WCAG-2.2-Kriterium 1.3.5, Eingabezweck bestimmen (AA). autocomplete="off" ist eine Aufforderung; Browser können weiterhin gespeicherte Passwörter anbieten.
Verwende für ein optionales Telefonfeld die Beschriftung „Telefonnummer (optional)“ zusammen mit type="tel", name="phone" und autocomplete="tel". Klicke auf die Beschriftung, um den Fokus zu prüfen, und gehe dann mit der Tabulatortaste durch das Formular. Teste jede Beschriftung auf diese Weise, auch Beschriftungen neben Kontrollkästchen und Optionsfeldern.
Wichtige Erkenntnisse
- Eine sichtbare Beschriftung braucht eine tatsächliche Verbindung zu ihrem Steuerelement.
forstimmt mit einer eindeutigenidüberein; für die Übermittlung wirdnameverwendet.- Eine Gruppenbeschriftung benennt eine Formularfeldgruppe, während Beschriftungen deren einzelne Steuerelemente benennen.
- Verbinde sichtbare Hinweise mit
aria-describedbyund kennzeichne Pflichtfelder im Text. - Verwende zutreffende Zwecke für die automatische Vervollständigung und prüfe das Formular mit Mausklicks und Tastatur.
2Prüfe Antworten vor dem Absenden
Der Browser kann fehlende Antworten, Texte mit falscher Länge, Werte außerhalb eines Bereichs und Eingaben erkennen, die einem festen Format nicht entsprechen. Grundlage dieser Prüfungen sind der Eingabetyp und HTML-Attribute. Vollziehe nach, wie mehrere Regeln zusammenwirken, auch wenn ein leerer Wert erlaubt ist. Klare Hinweise helfen beim Korrigieren einer Eingabe; Prüfungen auf dem Server bleiben nötig, weil sich Browserregeln umgehen lassen.
2.1 Pflichtfelder und Textlänge
Die integrierte Validierung prüft beim Absenden die Steuerelemente eines Formulars. Ein Steuerelement, das die Prüfung nicht besteht, verhindert das Absenden; der Browser setzt den Fokus auf das erste ungültige Feld und gibt eine Meldung in seiner eigenen Sprache aus. Den genauen Wortlaut wählt der Browser. Um ihn zu ändern, ist JavaScript nötig.
Eine Antwort verlangen
required bedeutet, dass ein Steuerelement einen Wert braucht. Bei einem Textfeld besteht eine leere Zeichenfolge die Prüfung nicht. Bei einem Kontrollkästchen bedeutet required, dass genau dieses Kästchen angekreuzt sein muss, etwa zur Annahme von Bedingungen. Bei Optionsfeldern mit demselben Namen bedeutet required an einem Feld, dass ein Feld der Gruppe ausgewählt sein muss. Ein select als Pflichtfeld mit Einfachauswahl und leerer erster Option benötigt eine nicht leere Auswahl.
<label for="username">Username (required)</label>
<input id="username" name="username"
required minlength="4" maxlength="12">
Der Browser kombiniert diese Regeln. Das Feld muss eine Antwort enthalten, und vom Benutzer eingegebener Text muss die Längenbegrenzungen einhalten. Ohne type entsteht das normale Texteingabefeld.
Die eingegebenen Zeichen zählen
minlength legt die kleinste zulässige Länge fest und maxlength die größte. Leer- und Satzzeichen zählen mit. Die Länge wird in UTF-16-Codeeinheiten gemessen, sodass manche Emojis als zwei zählen; gewöhnliche lateinische Buchstaben zählen jeweils als eins.
In diesem Beispiel hat „Li“ zwei Zeichen und unterschreitet das Minimum. „Lina“ hat vier und besteht die Prüfung. „mountainhiker“ hat 13 Zeichen. Bei gewöhnlicher Eingabe stoppt der Browser nach dem zwölften Zeichen, sodass „mountainhike“ bleibt. Die Breite eines Textfelds legt diese Grenze nicht fest.
Vorhandensein und Länge als verschiedene Regeln behandeln
Ein optionales Feld mit minlength="4" darf leer sein. Die Mindestlänge wird geprüft, sobald der Benutzer einen Wert eingibt. Ergänzt du required, besteht auch eine leere Eingabe die Prüfung nicht. Das ist bei einem optionalen Spitznamen wichtig: Ein Benutzer kann ihn weglassen, ein angegebener Spitzname braucht aber trotzdem genügend Zeichen.
required ist ein boolesches Attribut. Seine Anwesenheit schaltet es ein, auch bei required="false". Um das Feld optional zu machen, entferne das Attribut. Dieselbe Regel zur Anwesenheit gilt für viele andere HTML-Schalter.
Was diese Prüfungen nicht entscheiden
Eine Folge von Leerzeichen ist in einem Textfeld trotzdem Inhalt. required akzeptiert sie daher, und die Leerzeichen zählen auch zur Länge. Eine Regel, die ein sichtbares Zeichen verlangt, benötigt ein passendes Muster oder eine Prüfung auf dem Server. Behaupte gegenüber Benutzern nicht, dass required allein eine aussagekräftige Antwort garantiert.
Längenbeschränkungen hängen auch davon ab, wie der Wert eingegeben wurde. Ein in HTML geschriebener Ausgangswert oder ein von einem Skript zugewiesener Wert wird durch minlength oder maxlength nicht allein deshalb als fehlerhaft markiert, weil er zu kurz oder zu lang ist. Ein korrekter Standardwert bleibt wichtig, auch wenn die gewöhnliche Eingabe begrenzt ist.
Um dieses Feld zu prüfen, versuche, es leer abzusenden, und gib dann zwei Buchstaben, vier Buchstaben und mehr als 12 Buchstaben ein. Jeder Versuch prüft eine andere Regel für sich. Wenn der Browser die Eingabe an der Grenze stoppt, lies den tatsächlich im Feld verbliebenen Wert, statt anzunehmen, dass die gesamte versuchte Eingabe akzeptiert wurde.
Wichtige Erkenntnisse
requiredund Längenbegrenzungen lösen unterschiedliche Probleme.- Boolesche Attribute bleiben auch dann eingeschaltet, wenn sie mit dem Wert
"false"geschrieben werden. - Leerzeichen zählen als Inhalt; manche Emojis verwenden zwei UTF-16-Codeeinheiten.
- Ein Pflicht-Optionsfeld macht eine Auswahl in seiner Gruppe mit gemeinsamem Namen erforderlich.
2.2 Schranken und zulässige Schritte
Ein Zahlen- oder Datumswert kann das richtige Format haben und trotzdem ungeeignet sein. min und max legen seine Schranken fest; step legt fest, welche Schrittweiten innerhalb dieser Schranken erlaubt sind. Eine Zahl muss beide Prüfungen bestehen.
Den Wertebereich festlegen
<label for="weight">Parcel weight (kg)</label>
<input id="weight" name="weight" type="number"
min="0.5" max="30" step="0.5">
Die Endpunkte sind eingeschlossen. Werte von 0,5 bis 30 kg liegen im Bereich, müssen aber auch auf Schritten von einem halben Kilogramm liegen. Beginnend bei 0,5 ergeben sich 0,5; 1; 1,5 und so weiter bis 30: 60 zulässige Werte. Eine Eingabe von 31 überschreitet das Maximum; 2,25 liegt im Bereich, besteht aber die Prüfung der Schrittweite nicht.
Vor dem Zählen den Ausgangspunkt finden
Die Schritte werden von min aus gezählt, wenn es vorhanden ist. Andernfalls werden sie von einem gültigen HTML-Attribut value aus gezählt und danach von der Standardschrittbasis des Typs. Für number ist diese Standardbasis 0. Die Standardschrittweite ist 1.
Bei min="1" step="2" sind 1, 3, 5, 7 und so weiter zulässig. Vier besteht die Prüfung nicht, obwohl es ein Vielfaches von zwei ist, weil die Folge bei eins beginnt. Bei min="0.5" ohne step-Attribut beträgt die Schrittweite weiterhin eins: 0,5; 1,5 und 2,5 bestehen die Prüfung, 1 und 2 dagegen nicht.
Wenn weder min noch ein value-Attribut eine andere Basis vorgibt, akzeptiert ein Zahlenfeld standardmäßig ganze Zahlen. Verwende step="0.01" für Schritte von einem Hundertstel oder step="any", um die Prüfung der Schrittweite aufzuheben. any hebt weder das Minimum noch das Maximum auf.
Die richtigen Einheiten für Datum und Uhrzeit verwenden
| Typ | Standardschrittweite | Beispiel für eine Schranke |
|---|---|---|
number oder range | 1 | max="30" |
date | 1 Tag | min="2026-06-01" |
time | 60 Sekunden | max="17:00" |
Ein Datumsfeld mit min="2026-06-01" max="2026-08-31" akzeptiert Datumsangaben in diesem geschlossenen Intervall. Schreibe die Attribute im Übermittlungsformat, auch wenn die Auswahlhilfe eine andere Reihenfolge des Datums anzeigt.
Für Termine verwendet type="time" min="09:00" max="17:00" step="900" pro Schritt 900 Sekunden oder 15 Minuten. Die Folge beginnt um 09:00 Uhr und endet um 17:00 Uhr. Es gibt 32 Intervalle und 33 auswählbare Uhrzeiten, einschließlich beider Endpunkte.
Eingabe und gespeicherten Wert unterscheiden
Manche lokalisierten Browser erlauben die Dezimaleingabe „2,5“, übermitteln aber 2.5. Text, der keine Zahl ist, wird je nach Browser blockiert oder lässt den Zahlenwert leer. Ein optionales leeres Eingabefeld ist weiterhin zulässig, sofern required nicht vorhanden ist.
Ein range-Schieberegler bleibt innerhalb seines zulässigen Bereichs und springt auf die Schritte, sodass Benutzer nicht auf dieselben Bereichs- und Schrittweitenfehler wie bei einer eingegebenen Zahl stoßen. Davon unabhängig werden nicht leere email- und url-Felder auch ohne required einer Typprüfung unterzogen: Eine optionale Antwort wird nicht gültig, wenn sie in einem falschen Format eingegeben wird.
Wichtige Erkenntnisse
- Prüfe die Schranken und die Einhaltung der Schrittweite getrennt.
- Bestimme die Schrittbasis in dieser Reihenfolge:
min, HTML-Attributvalue, dann die Standardbasis des Typs. step="any"hebt die Prüfung der Schrittweite auf, lässt aber andere Einschränkungen bestehen.- Schrittweiten für Uhrzeiten werden in Sekunden angegeben; Schrittweiten für Datumsangaben in Tagen.
- Zähle die Endpunkte mit, wenn du die Anzahl zulässiger Uhrzeiten bestimmst.
2.3 Feste Muster und hilfreiche Rückmeldungen
Ein Muster ist nützlich, wenn eine Organisation ein genaues Textformat festlegt, etwa für einen Produktcode. Der Browser prüft den gesamten nicht leeren Wert anhand des Musters. Erkläre das Format neben dem Feld, damit Benutzer es einhalten können, bevor ein Fehler erscheint.
Ein kleines Muster erstellen
<label for="code">Product code (required)</label>
<input id="code" name="code" required
pattern="[A-Z]{3}-[0-9]{4}" aria-describedby="code-hint">
<p id="code-hint">Use 3 capital letters, a hyphen, and 4 digits (ABC-1234).</p>
[A-Z] steht für einen lateinischen Großbuchstaben und {3} wiederholt ihn genau dreimal. Der Bindestrich außerhalb der Zeichengruppen steht für sich selbst. [0-9]{4} verlangt vier Ziffern. „ABC-1234“ besteht die Prüfung. „abc-1234“, „ABC1234“ und „ABC-12345“ verletzen jeweils einen anderen Teil der Regel.
| Musterteil | Bedeutung |
|---|---|
[A-Za-z] | Ein lateinischer Grundbuchstabe |
{2,5} | Zwei bis fünf Wiederholungen |
+ | Eine oder mehr Wiederholungen |
? | Vorheriges Element optional |
(cm|mm) | Eine der beiden Alternativen, cm oder mm |
Muster werden mit dem gesamten Wert abgeglichen, sodass zusätzlicher Text an einem der Enden die Prüfung nicht besteht. Ergänze nicht die umgebenden Schrägstriche, die bei regulären Ausdrücken in JavaScript verwendet werden. pattern gilt für textähnliche Eingabefelder wie text, search, tel, email, url und password, nicht für ein mehrzeiliges Textfeld. Leere Werte überspringen die Musterprüfung; required behandelt eine leere Antwort.
Satzzeichen für sich selbst sorgfältig schreiben
Zeichen wie ., + und ? haben besondere Bedeutungen. Stelle ihnen einen umgekehrten Schrägstrich voran, wenn sie für sich selbst stehen sollen: \. steht für einen Punkt. Innerhalb einer Zeichengruppe verlangen moderne HTML-Muster dies auch bei Satzzeichen wie einem Bindestrich, der für sich selbst stehen soll: [a-z0-9\-]. Dieser Bindestrich unterscheidet sich von dem, der den Bereich a-z festlegt.
Ein ungültiges Muster wird ignoriert. Andere Regeln, darunter required und Typprüfungen, werden weiterhin ausgeführt. Teste ein Muster sowohl mit Eingaben, die die Prüfung bestehen, als auch mit solchen, die sie nicht bestehen. Wenn ein Formular einen erwarteten Wert absendet, zeigt das noch nicht, dass das Muster irgendetwas zurückweist.
Regel und Fehler erklären
Halte sichtbaren Hinweistext neben dem Steuerelement bereit. Ein title kann zu manchen Browsermeldungen beitragen; die Formatanweisung muss neben dem Feld sichtbar bleiben. Vermeide starre Muster für Namen, Telefonnummern oder Postleitzahlen, sofern das akzeptierte Format nicht tatsächlich feststeht; gültige internationale Antworten können sich stark unterscheiden.
CSS bietet :valid und :invalid für den aktuellen Validierungszustand eines Felds. :user-invalid verzögert den ungültigen Zustand bis zur Benutzerinteraktion und verhindert so, dass ein unberührtes Formular überall im Fehlerstil erscheint. Ergänze Farben durch Worte oder ein Symbol, damit der Unterschied auch ohne Farbwahrnehmung sichtbar bleibt.
Festlegen, wann Prüfungen stattfinden
novalidate am Formular überspringt beim Absenden die Validierung durch den Browser. formnovalidate an einer Sendeschaltfläche überspringt sie für diese Schaltfläche. Das kann „Entwurf speichern“ neben einer normalen Schaltfläche „Senden“ ermöglichen. Browserprüfungen lassen sich auch über Entwicklerwerkzeuge entfernen oder durch eine direkte Anfrage umgehen. Der Server muss eingehende Daten erneut prüfen, bevor er ihnen vertraut.
Wichtige Erkenntnisse
- Ein Muster prüft den gesamten nicht leeren Wert;
requiredbehandelt das Fehlen einer Antwort. - Prüfe feste Organisationscodes mit Mustern und erkläre ihr Format sichtbar.
- Ein fehlerhaftes Muster wird ignoriert, während andere Einschränkungen weiterhin gelten.
- Gestalte Validierungszustände mit mehr als nur Farbe.
- Eine übersprungene oder umgangene Browserprüfung macht die serverseitige Validierung unverzichtbar.
formnovalidatewirkt auf eine Sendeschaltfläche;novalidatewirkt auf das Formular.
3Erstelle Tabellen, die ihre Daten erklären
Eine Datenzelle erhält ihre Bedeutung durch ihre Zeile und Spalte. Mit HTML-Tabellen kannst du diese Beziehungen ausdrücken, sodass Menschen einen Wert zusammen mit den erklärenden Überschriften lesen können. Beginne mit einer Tabellenbeschriftung und einfachen Kopfzellen und ergänze Zeilengruppen oder verbundene Zellen nur, wenn die Daten sie benötigen. Wenn du das Raster abzählst und jeden Wert mit seinen Kopfzellen verbindest, bleibt die Tabelle sowohl beim Vorlesen als auch beim Betrachten nützlich.
3.1 Zeilen, Kopfzellen und ein klarer Tabellentitel
Verwende eine Tabelle, wenn ein Wert sowohl von seiner Zeile als auch von seiner Spalte abhängt: etwa bei einem Trainingsprotokoll, einem Stundenplan oder einem Vergleich von Messwerten. Verwende CSS für das Seitenlayout. Ein Layout aus Tabellenzellen erzeugt für Screenreader irreführende Beziehungen zwischen Zeilen und Spalten und passt sich schlecht an schmale Bildschirme an.
Die Struktur aus den Daten aufbauen
<table> enthält die Tabelle, <tr> eine Zeile, <th> eine Kopfzelle und <td> eine Datenzelle. Die Zellen werden innerhalb jeder Zeile von links nach rechts geschrieben. Eine fett formatierte Datenzelle bleibt eine Datenzelle; verwende <th>, um eine Überschrift auszuzeichnen.
<table>
<caption>Running log, week 12</caption>
<thead>
<tr>
<th scope="col">Day</th>
<th scope="col">Distance (km)</th>
<th scope="col">Time (min)</th>
</tr>
</thead>
<tbody>
<tr><th scope="row">Monday</th><td>5.0</td><td>28</td></tr>
<tr><th scope="row">Wednesday</th><td>7.5</td><td>45</td></tr>
<tr><th scope="row">Saturday</th><td>10.0</td><td>62</td></tr>
</tbody>
<tfoot>
<tr><th scope="row">Total</th><td>22.5</td><td>135</td></tr>
</tfoot>
</table>
Die Tabellenbeschriftung ist das erste Element innerhalb der Tabelle. Sie sagt den Lesern, was die ganze Tabelle beschreibt, bevor sie auf deren Werte stoßen. Eine Überschrift in der Nähe kann visuell helfen, aber die Tabellenbeschriftung verbindet den Titel mit der Tabelle selbst.
Jeden Wert mit seinen Überschriften verbinden
scope="col" besagt, dass eine Kopfzelle für die darunterliegende Spalte gilt. scope="row" besagt, dass sie für die Zeile gilt. Der Wert 7,5 gehört daher zur Zeile „Wednesday“ (Mittwoch) und zur Spalte „Distance (km)“ (Strecke in Kilometern). Ein Screenreader kann diese vollständige Bedeutung statt einer einzelnen Zahl ansagen.
Schreibe Einheiten in die Spaltenüberschriften, damit sie durchgehend gelten. Jede Strecke ist hier in Kilometern angegeben, jede Zeit in Minuten. Die Gesamtstrecke ergibt sich aus 5,0; 7,5 und 10,0 und beträgt 22,5 km. Die Zeiten 28, 45 und 62 ergeben 135 min.
Jeder Gruppe eine Aufgabe geben
<thead> gruppiert Kopfzeilen, <tbody> die Hauptdaten und <tfoot> die Zusammenfassung nach dem Tabellenkörper. Diese Gruppen beschreiben die Struktur und bieten Ansatzpunkte für CSS. Browser fügen ein <tbody> um gewöhnliche Zeilen ein, die direkt innerhalb einer Tabelle geschrieben stehen. Daher kann die angezeigte Struktur vom ungruppierten Quelltext abweichen.
Bedeutung und Aussehen prüfen
Jede Zeile umfasst hier drei Spalten. Lässt du eine Datenzelle weg, weiß der Browser nicht, welcher Wert innerhalb der Zeile fehlt: Spätere Zellen können unter der falschen Überschrift stehen. Schreibe die Zellen an ihre richtigen Positionen und verwende „0“ für eine bekannte Null oder „entfällt“, wenn ein Wert nicht zutrifft. Eine unerklärte leere Zelle lässt Leser im Unklaren.
Tabellen haben standardmäßig keine Rahmen. Für einfache Linien wende border: 1px solid auf die Zellen und border-collapse: collapse auf die Tabelle an. Das alte border-Attribut ist veraltet. Ein Rahmen macht das Raster sichtbar, kann aber weder fehlende Beziehungen zu Kopfzellen herstellen noch einen falsch platzierten Wert korrigieren.
Wichtige Erkenntnisse
- Tabellen drücken Beziehungen zwischen Zeilen und Spalten in Daten aus.
- Verwende
thfür Kopfzellen undtdfür Daten; eine visuelle Fettformatierung liefert keine Semantik. - Setze eine Tabellenbeschriftung an den Anfang und verwende
scope, um einfache Kopfzellen zuzuordnen. - Gruppiere Zeilen mit
thead,tbodyundtfootund prüfe, welche Spalten jede Zeile abdeckt. - Schreibe Einheiten in Kopfzellen und mache die Bedeutung fehlender Daten deutlich.
3.2 Verbundene Zellen und mehrstufige Überschriften
Verbundene Zellen ermöglichen es, dass ein Eintrag mehrere Positionen im Raster abdeckt. Dadurch ändert sich, wie viele neue Zellen eine Zeile benötigt. Plane daher die belegten Positionen, bevor du die Tags schreibst.
Die Spalten in einem Stundenplan mit verbundenen Zellen zählen
Betrachte drei Spalten: „Zeit“, „Montag“ und „Dienstag“. Um 09:00 Uhr steht am Montag „Formulare“ und am Dienstag „Tabellen“. Um 10:00 Uhr beginnt am Montag „Validierung“, was sich bis in die Zeile 11:00 Uhr fortsetzt. Am Dienstag stehen „Medien“ um 10:00 Uhr und „Einbettungen“ um 11:00 Uhr. Um 12:00 Uhr umfasst „Mittagspause“ beide Tage.
<tr>
<th scope="row">10:00</th>
<td rowspan="2">Validation</td><td>Media</td>
</tr>
<tr>
<th scope="row">11:00</th><td>Embeds</td>
</tr>
<tr>
<th scope="row">12:00</th><td colspan="2">Lunch break</td>
</tr>
Um 11:00 Uhr ist die Position für Montag bereits von oben belegt. Neu hinzu kommen nur die Kopfzelle für die Uhrzeit und der Eintrag für Dienstag. Eine weitere Zelle für Montag würde den letzten Wert in eine vierte Spalte verschieben. Um 12:00 Uhr umfasst die Kopfzelle für die Uhrzeit eine Spalte und die Zelle für die Mittagspause zwei, insgesamt also drei.
colspan überspannt Spalten horizontal; rowspan überspannt Zeilen vertikal. Beide haben standardmäßig den Wert eins. Zähle beim Prüfen einer Zeile die Positionen, die durch neue Zellen und durch Überspannungen aus früheren Zeilen belegt sind.
Spaltengruppen beschreiben
<colgroup> und <col> beschreiben Spalten und stehen nach der Tabellenbeschriftung, aber vor den Zeilengruppen. <col span="2"> steht für zwei Spalten. Über diese Elemente lässt sich nur eine begrenzte Auswahl von Stilen anwenden, darunter Hintergründe, Breite, Sichtbarkeit und Rahmen nach den jeweiligen Regeln für Tabellenrahmen. Sie ersetzen keine Kopfzellen.
Steht „Strecke (km)“ über zwei Spalten namens „Geplant“ und „Tatsächlich“, definiere diese beiden Spalten als Gruppe. Gib der oberen Kopfzelle colspan="2" scope="colgroup" und den unteren Kopfzellen scope="col". Die Überspannung steuert die Breite, während scope die Beziehung zur Kopfzelle angibt. Ein Geltungsbereich für eine Spaltengruppe benötigt eine passende Spaltengruppe in der Tabellenstruktur.
Kopfzellen bei Bedarf ausdrücklich zuordnen
Für Beziehungen, die scope nicht eindeutig ausdrücken kann, gib Kopfzellen eindeutige IDs und führe sie im headers-Attribut der Datenzelle auf:
<table>
<caption>Monday distance plan</caption>
<colgroup></colgroup>
<colgroup span="2"></colgroup>
<thead>
<tr>
<th rowspan="2" scope="col">Day</th>
<th id="distance" colspan="2" scope="colgroup">Distance (km)</th>
</tr>
<tr>
<th id="planned" scope="col">Planned</th>
<th id="actual" scope="col">Actual</th>
</tr>
</thead>
<tbody>
<tr>
<th id="mon" scope="row">Monday</th>
<td headers="mon distance planned">8</td>
<td headers="mon distance actual">7.5</td>
</tr>
</tbody>
</table>
Der geplante Wert 8 verweist auf Montag, Strecke (km) und Geplant. Der tatsächliche Wert 7,5 hat dieselben Zeilen- und Gruppenkopfzellen, verweist aber auf Tatsächlich. Die durch Leerzeichen getrennten Namen müssen mit den IDs der Kopfzellen übereinstimmen, nicht mit deren sichtbarem Wortlaut.
Das abbr einer Kopfzelle kann einen kürzeren Wortlaut für Wiederholungen bereitstellen, etwa <th abbr="Distance">Distance covered in kilometers</th>. Manche Screenreader verwenden diese Kurzform. Machen viele Überspannungen oder drei Überschriftenebenen eine Tabelle schwer verständlich, teile die Daten in einfachere Tabellen mit eigenen Tabellenbeschriftungen auf. Vermeide es, eine Tabelle in die Zelle einer anderen Tabelle zu verschachteln.
Wichtige Erkenntnisse
- Zähle belegte Rasterpositionen einschließlich Überspannungen aus früheren Zeilen.
- Ein colspan ersetzt benachbarte Zellen; ein rowspan belegt Positionen in späteren Zeilen.
- Verwende Spaltengruppen mit
scope="colgroup"für gruppierte Überschriften. - Das
headerseiner Zelle führt die IDs ihrer Kopfzellen auf. - Bevorzuge einfachere Tabellen, wenn verbundene Zellen und Überschriftenebenen die Beziehungen verdecken.
4Füge Medien hinzu, die Menschen ansehen und anhören können
Ein Wiedergabeprogramm ist nur ein Teil nutzbarer Medien. Besucher benötigen außerdem eine unterstützte Datei, eine Möglichkeit zum Starten und Stoppen sowie Zugang zu den Informationen, wenn Ton oder Bild nicht verfügbar sind. Baue das Wiedergabeprogramm ausgehend von der Mediendatei auf: Reserviere seinen Platz, biete geeignete Quellen an und ergänze geprüfte Untertitel oder ein Transkript. Ladehinweise und sinnvolle Wiedergabeeinstellungen helfen Besuchern außerdem, Zeit und Datenverbrauch eines Videos im Blick zu behalten.
4.1 Wiedergabeprogramme, Wiedergabe und Downloadmöglichkeiten
<video> und <audio> verknüpfen Mediendateien mit einer Seite. Der Browser lädt diese separaten Dateien herunter; das Video oder der Ton wird nicht im HTML gespeichert. Mit controls werden die browsereigenen Steuerelemente für Wiedergabe, Pause, Zeitleiste und Lautstärke angezeigt.
<video src="intro.mp4" controls width="640" height="360"
poster="intro-poster.jpg" preload="metadata"></video>
<audio src="episode-12.mp3" controls></audio>
Ohne Wiedergabesteuerung hat ein audio-Element kein sichtbares Wiedergabeprogramm und ein Video keine sichtbare Wiedergabeschaltfläche. Eine Seite müsste Steuerelemente per Skript bereitstellen, um Benutzern diese Bedienung zu ermöglichen. Behalte für eine einfache Seite die nativen Wiedergabesteuerelemente bei.
Die richtige Form reservieren
width und height nehmen einfache Zahlen in CSS-Pixeln an. Sie reservieren Platz, während ein Video lädt, und verringern so Bewegungen der Seite. Ein Video mit 1920 × 1080 hat bei einer angezeigten Breite von 640 die passende Höhe 360: Die Breite wurde durch drei geteilt, also muss auch die Höhe durch drei geteilt werden. Eine anders geformte Box für das Wiedergabeprogramm behält die Proportionen des Bildes bei und ergänzt leere Streifen.
poster stellt vor der Wiedergabe ein Standbild bereit. Ohne dieses Bild wartet der Browser auf Mediendaten, bevor er das erste Einzelbild anzeigen kann. Das Vorschaubild ist nützlich, wenn wenig oder nichts vom Video vorgeladen wird.
Entscheiden, wie viel vorgeladen wird
| Wert | Ladehinweis |
|---|---|
none | Das Medium nicht vorladen |
metadata | Informationen wie Dauer und Abmessungen abrufen |
auto | Der Browser darf die ganze Datei herunterladen |
Dies sind Hinweise: Der Browser kann sie übergehen. Auch die automatische Wiedergabe hat Vorrang vor dem Vorladen. none ist für lange Medien nützlich, die viele Besucher nicht ansehen werden; Metadaten helfen, die Dauer anzuzeigen, ohne absichtlich den ganzen Clip abzurufen.
Wiedergabeschalter verstehen
controls, autoplay, muted, loop und playsinline sind boolesche Attribute. Ihre Anwesenheit schaltet sie ein: Auch muted="false" startet stummgeschaltet. Entferne das Attribut, um es auszuschalten.
Automatische Wiedergabe mit Ton wird je nach Browserberechtigungen und Einstellungen häufig blockiert, bis der Benutzer interagiert. Stummgeschaltetes Video wird häufiger zugelassen; Safari auf dem iPhone benötigt dafür zusätzlich playsinline. Ein stummer Clip in Endlosschleife kann autoplay muted loop playsinline verwenden. loop startet den Clip nach seinem Ende erneut. Verlass dich nicht auf automatische Wiedergabe, um wesentliche Informationen zu vermitteln.
Automatischer Ton kann einen Screenreader überlagern, und Bewegung kann ablenken. Das WCAG-2.2-Kriterium 1.4.2 (A) verlangt eine Möglichkeit, automatisches Audio, das länger als drei Sekunden läuft, zu pausieren oder zu stoppen oder seine Lautstärke unabhängig zu regeln. Kriterium 2.2.2 (A) behandelt automatisch bewegte Inhalte, die länger als fünf Sekunden neben anderen Inhalten laufen, sofern sie nicht wesentlich sind. Stelle eine Möglichkeit zum Pausieren bereit; native Steuerelemente bieten sie bei diesen Wiedergabeprogrammen.
Den Datenaufwand schätzen
Ein zweiminütiger Clip mit 5 Megabit pro Sekunde enthält 600 Megabit. Geteilt durch acht ergibt das vor zusätzlichem Übertragungsaufwand etwa 75 Megabyte. Kürzere Clips und ein passender Hinweis zum Vorladen verringern unnötige Übertragungen. Das iframe-Wiedergabeprogramm einer gehosteten Plattform kann die Auslieferung vom Server deiner Website weg verlagern, aber Besucher laden die Medien beim Ansehen weiterhin herunter.
Wichtige Erkenntnisse
- Behalte native Wiedergabesteuerelemente bei, damit Besucher die Wiedergabe starten, pausieren und einstellen können.
- Verwende Zahlen für Breite und Höhe, um Platz für ein Video zu reservieren.
- Vorladen ist ein Hinweis; automatische Wiedergabe kann ihn außer Kraft setzen.
- Boolesche Attribute werden durch ihre Anwesenheit eingeschaltet.
- Plane Beschränkungen der automatischen Wiedergabe ein und gib Benutzern Kontrolle über automatischen Ton oder automatische Bewegung.
- Ein Wiedergabeprogramm einer Plattform ändert, wer die Medien ausliefert; Besucher müssen sie weiterhin herunterladen.
4.2 Alternative Quellen und zuverlässige Ausweichmöglichkeiten
Eine Dateinamenerweiterung einer Mediendatei bezeichnet ihren Container, also die Dateistruktur, die Bild und Ton enthält. Codecs komprimieren und dekodieren die darin enthaltenen Datenströme. Ein Browser muss sowohl den Container als auch seine Codecs unterstützen; die Erweiterung .mp4 allein sagt nicht aus, was darin enthalten ist.
Geeignete Formate wählen
MP4 mit H.264-Video und AAC-Audio ist auf gängigen aktuellen Systemen eine breit kompatible Wahl. WebM mit VP9- oder AV1-Video und Opus-Audio wird ebenfalls breit unterstützt und kann die Größe bei vorgegebener Qualität verringern. Für Audio ist MP3 eine breit unterstützte Wahl, wenn du nur ein Format anbietest. Die Unterstützung hängt weiterhin vom tatsächlichen Codec und vom System des Benutzers ab. Teste daher die Dateien selbst.
Quellen nach Priorität anbieten
<video controls width="640" height="360" poster="tour.jpg">
<source src="tour.webm" type="video/webm">
<source src="tour.mp4" type="video/mp4">
<p>Your browser cannot play this video.
<a href="tour.mp4">Download the tour video (MP4)</a>.
</p>
</video>
<p><a href="tour.mp4">Download the tour video (MP4)</a></p>
Der Browser probiert die untergeordneten Quellen der Reihe nach und verwendet die erste abspielbare. Hier wird WebM bevorzugt; MP4 bietet einen anderen Weg, falls WebM nicht abgespielt werden kann. Lass src am <video> selbst weg, wenn du untergeordnete Quellen verwendest. Ein src am Medienelement hat Vorrang und die Liste der untergeordneten Quellen wird ignoriert.
Der type ist ein MIME-Typ, der die Datei beschreibt. Er ermöglicht dem Browser, ein nicht unterstütztes Format zu überspringen, ohne zuerst Mediendaten abzurufen. Ein falscher Typ kann dazu führen, dass eine abspielbare Datei übersprungen wird. Die Angabe muss daher zur tatsächlichen Datei passen. Dieselbe inkompatible Kodierung unter einem anderen Namen aufzuführen, schafft keine kompatible Alternative.
Die Ausweichmöglichkeit verfügbar halten
Inhalt innerhalb von <video> ist Ersatzinhalt für einen Browser, der das video-Element nicht erkennt. Ein moderner Browser, der es erkennt, aber keine Quelle abspielen kann, zeigt diesen inneren Absatz nicht als allgemeine Fehlermeldung an. Der separate Downloadlink außerhalb des Wiedergabeprogramms bleibt in diesem Fall verfügbar. Ein Ersatzlink und alternative Quellen beheben unterschiedliche Fehler.
Dasselbe Muster auf Audio anwenden
<audio controls>
<source src="episode-12.opus" type="audio/ogg; codecs=opus">
<source src="episode-12.mp3" type="audio/mpeg">
<p>Your browser cannot play this audio.</p>
</audio>
<p><a href="episode-12.mp3">Download episode 12 (MP3)</a></p>
Diese erste Datei verwendet einen Ogg-Container mit Opus-Audio. Die MP3-Alternative verwendet audio/mpeg, den korrekten MIME-Typ für MP3. Der Browser kann dem Ersatzabsatz nicht entnehmen, dass er die Datei wechseln soll; die source-Elemente bieten diese Auswahl. Prüfe auf der Seite die Pfade, die tatsächlichen Dateiformate und die Wiedergabe und stelle anschließend gesondert sicher, dass der externe Downloadlink funktioniert.
Wichtige Erkenntnisse
- Für die Wiedergabe müssen sowohl Container als auch Codecs unterstützt werden.
- Untergeordnete Quellen werden der Reihe nach ausprobiert, wenn das Medienelement kein
srchat. - Zutreffende MIME-Typen helfen Browsern, eine abspielbare Quelle auszuwählen.
- Halte für fehlgeschlagene Quellen in modernen Browsern einen Downloadlink außerhalb des Wiedergabeprogramms bereit.
4.3 Untertitel, Transkripte und Zeitangaben in WebVTT
Medieninformationen benötigen einen anderen Zugang, wenn jemand sie nicht hören oder sehen kann. Untertitel für gehörlose und schwerhörige Menschen enthalten Sprache, Angaben zu den Sprechenden und bedeutsame Geräusche. Weitere Untertitel verschriftlichen oder übersetzen Dialoge für Menschen, die den Ton hören, aber Hilfe beim Verstehen benötigen. Ein Transkript gibt Sprache und wichtige Geräusche als Text in der Nähe des Wiedergabeprogramms oder über einen eindeutig bezeichneten Link in der Nähe wieder. Eine Audiodeskription beschreibt wichtige visuelle Informationen.
Eine Untertitelspur einbinden
<video controls>
<source src="intro.mp4" type="video/mp4">
<track kind="captions" src="intro.en.vtt"
srclang="en" label="English" default>
</video>
<p><a href="intro-transcript.html">Read the introduction transcript</a></p>
Setze <track> nach die Quellen. src verweist auf eine Textspurdatei, kind bezeichnet ihren Zweck, srclang die Sprache und label liefert den Menütext des Wiedergabeprogramms. Eine Spur für weitere Untertitel muss srclang haben; gib es auch für Untertitel für gehörlose und schwerhörige Menschen an. Nur eine Textspur sollte default tragen. Ohne kind gilt standardmäßig subtitles.
Die Untertiteldatei schreiben
WebVTT ist UTF-8-Text, der mit der Erweiterung .vtt gespeichert wird. Die erste Zeile lautet WEBVTT, gefolgt von einer Leerzeile. Jeder Cue hat anschließend eine Zeitangabenzeile und seinen Text; vor dem nächsten Cue steht eine Leerzeile. Vor der Zeitangabe eines Cues kann eine optionale Kennung stehen.
WEBVTT
00:00:01.000 --> 00:00:04.500
MAYA: Welcome to the workshop.
00:00:05.000 --> 00:00:07.250
[door closes]
00:00:07.500 --> 00:00:11.000
MAYA: Let's build our first form.
Der erste Cue dauert 3,5 Sekunden, der zweite 2,25 Sekunden und der dritte 3,5 Sekunden. Der Geräusch-Cue vermittelt etwas Hörbares, obwohl niemand spricht.
Die Syntax der Zeitangaben genau einhalten
Minuten und Sekunden verwenden zwei Stellen; Millisekunden verwenden drei nach einem Punkt. Stunden können weggelassen werden: 01:05.000 bedeutet eine Minute und fünf Sekunden. Das Ende muss nach dem Anfang liegen. Eine Leerzeile beendet einen Cue. Halte daher seinen gesamten Text ohne Leerzeile in der Mitte zusammen.
SRT verwendet Zeitangaben mit Komma wie 00:00:01,000; eine Textspur benötigt stattdessen WebVTT. Für die Umwandlung sind die WebVTT-Kopfzeile und Zeitangaben mit Punkt nötig; außerdem müssen die übrigen Cues auf gültige Syntax geprüft werden. Das Umbenennen einer .srt-Erweiterung wandelt ihren Inhalt nicht um.
Bereitstellung und Barrierefreiheit prüfen
Halte die Textspur auf demselben Ursprung wie die Seite: dasselbe URL-Schema, derselbe Host und derselbe Port. Eine Textspur von einem anderen Ursprung benötigt eine passende crossorigin-Einstellung am Video und die Erlaubnis dieses Servers. Andernfalls kann auch eine korrekte Datei nicht geladen werden.
Das WCAG-2.2-Kriterium 1.2.2 (A) verlangt Untertitel für gehörlose und schwerhörige Menschen bei aufgezeichnetem Video mit Ton, vorbehaltlich der Ausnahme für Medienalternativen. Kriterium 1.2.1 (A) verlangt eine Alternative für aufgezeichnete reine Audioinhalte, etwa ein Transkript für einen Podcast. Prüfe automatische Untertitel vor der Veröffentlichung auf Namen, Fachbegriffe, Sprecherwechsel und Geräusche.
Weitere Textspurarten sind descriptions, chapters und metadata. Browser-Wiedergabeprogramme zeigen diese gewöhnlich nicht als normale Untertitel an. Setze wesentliche sichtbare Anweisungen nicht in eine Metadaten-Textspur und erwarte dann, dass sie auf dem Bildschirm erscheinen.
Wichtige Erkenntnisse
- Untertitel für gehörlose und schwerhörige Menschen enthalten bedeutsame Geräusche und Angaben zu Sprechenden; weitere Untertitel konzentrieren sich auf den Dialog.
- Binde eine
.vtt-Datei mittrackein und gib ihren Zweck und ihre Sprache an. - Ein WebVTT-Cue benötigt gültige Zeitangaben mit Punkt, Text und eine trennende Leerzeile.
- Prüfe die Richtigkeit der Untertitel und biete in der Nähe einen Zugang zum Transkript.
- Textspuren von einem anderen Ursprung benötigen sowohl Browsereinstellungen als auch eine Erlaubnis des Servers.
5Binde eine andere Seite mit Bedacht ein
Ein iframe gibt einer anderen Webseite ein Fenster innerhalb deiner eigenen Seite. Diese Seite bringt ihren eigenen Code, ihre eigenen Berechtigungen und ihr eigenes Ladeverhalten mit und hängt von ihrem Anbieter ab. Gib dem Fenster einen hilfreichen Namen und eine passende Größe und wähle dann, wann es lädt und was es tun darf. Wenn du eine Einbettung als separates Dokument verstehst, erklärt das blockierte Frames, Datenschutzentscheidungen und warum die Stile deiner Seite nicht in das Wiedergabeprogramm einer anderen Website hineinwirken.
5.1 Ein Frame mit Titel und ein nutzbarer Ersatzlink
Ein <iframe> ist ein Inlineframe: Er zeigt eine separate Webseite innerhalb der aktuellen Seite. Dieses Dokument hat sein eigenes HTML, CSS und eigene Skripte. Die Stile deiner Seite können die Größe des Frames festlegen, gestalten aber nicht die Inhalte eines anderen Dokuments darin.
Mit einem klar bezeichneten Frame in passender Größe beginnen
<iframe src="https://maps.example.com/venue"
title="Map of the venue"
width="600" height="400" loading="lazy"></iframe>
<p><a href="https://maps.example.com/venue">Open the venue map</a></p>
src nennt die zu ladende Seite. Der Titel sagt einem Screenreader-Benutzer, was sich im Frame befindet, bevor er ihn betritt. „Karte des Veranstaltungsorts“ beschreibt seinen Zweck; „iframe“ oder „Inhalt“ tut das nicht. Der direkte Link bietet einen anderen Zugang, falls der Browser des Besuchers den Frame blockiert.
width und height nehmen einfache Zahlen in CSS-Pixeln an. Ohne diese Angaben ist der Frame standardmäßig 300 × 150 CSS-Pixel groß. Browser zeichnen außerdem einen Standardrahmen. Gestalte ihn mit CSS statt mit dem veralteten Attribut frameborder.
Bereitgestellten Einbettungscode anpassen
Karten- und Videodienste bieten gewöhnlich ein Einbettungsfragment über ihre Teilen-Funktion an. Prüfe nach dem Einfügen die URL, verbessere den Titel, prüfe die Abmessungen und entferne veraltete Darstellungsattribute. Eine iframe-URL ist die Adresse einer Seite oder eines Wiedergabeprogramms eines Dienstes, nicht unbedingt die einer direkten Mediendatei.
Verwende HTTPS für die eingebettete Adresse. Ein HTTP-Frame innerhalb einer HTTPS-Seite ist aktiver gemischter Inhalt und wird blockiert. Das bloße Schreiben eines Titels oder Ändern der Framegröße kann eine unsichere URL nicht zum Laden bringen.
Zu einem geeigneten Zeitpunkt laden
loading="lazy" verzögert das Laden eines Frames, bis er sich in der Nähe des Viewports befindet. Das spart anfänglichen Aufwand bei einer Karte weit unten auf der Seite. Der Standardwert eager beginnt sofort mit dem Laden. Lade eine hervorgehobene Einbettung am Seitenanfang sofort, damit Besucher nicht auf ihren Hauptinhalt warten. Lazy Loading ändert den Zeitpunkt; der Netzwerkkontakt entfällt nicht, wenn der Frame schließlich lädt.
Damit ein Wiedergabeprogramm in seinen Container passt, kann CSS seine Breite auf 100 % setzen und seine Form erhalten:
iframe.video-player {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
border: 0;
}
Wende class="video-player" auf den betreffenden iframe an. Die HTML-Abmessungen liefern weiterhin Ausgangsinformationen, während CSS die angezeigte Größe steuert.
Die Verweigerung eines Anbieters erkennen
Eine Website kann die Einbettung in Frames über den HTTP-Antwortheader X-Frame-Options oder eine Content-Security-Policy-Regel frame-ancestors untersagen. Der Browser zeigt möglicherweise einen leeren Frame oder einen Fehler. Diese Beschränkungen helfen, Clickjacking zu verhindern, bei dem eine täuschende eingebettete Seite Klicks abfängt, die für etwas anderes bestimmt sind.
Das HTML deiner Seite kann die Verweigerung der anderen Website nicht außer Kraft setzen. Verwende die erlaubte Einbettungsadresse des Anbieters, falls er eine anbietet; stelle andernfalls einen gewöhnlichen Link bereit. Behalte diesen Link auch für spätere Ausfälle: Entfernt oder verschiebt ein Anbieter seinen Inhalt, kann ein unveränderter iframe auf deiner Seite aufhören zu funktionieren.
Wichtige Erkenntnisse
- Ein iframe enthält ein separates Dokument mit eigenen Stilen und Skripten.
- Gib jedem Frame einen beschreibenden Titel und eine sinnvolle Größe.
- Verwende Lazy Loading für Einbettungen außerhalb des sichtbaren Bereichs und HTTPS-URLs.
- Ein Anbieter kann die Einbettung in Frames verweigern; biete in diesem Fall einen direkten Link an.
5.2 Berechtigungen, Datenschutz und Elementauswahl
Eine Einbettung eines Drittanbieters kontaktiert ihren Anbieter, wenn der eingebettete Inhalt lädt, noch bevor ein Besucher die Wiedergabe startet. Diese Anfrage gibt Informationen wie eine IP-Adresse preis und kann Cookies einschließen. Entscheide, ob die Seite diesen Kontakt sofort benötigt und welchen Zugriff das eingebettete Dokument braucht.
Den Kontakt bei Bedarf verzögern
Lazy Loading verzögert das Laden eines Frames außerhalb des sichtbaren Bereichs, bis er sich in der Nähe des Bildschirms befindet. Eine Vorschau, die eine Einbettung erst nach einem Klick lädt, gibt Besuchern eine unmittelbarere Wahl. Manche Dienste bieten außerdem Modi mit erweitertem Datenschutz an. Ein Frame von derselben Website kontaktiert nicht zwangsläufig einen anderen Anbieter; direkt eingefügtes srcdoc vermeidet den Abruf einer separaten Seite, wobei Ressourcen, auf die dieses HTML verweist, weiterhin Netzwerkanfragen auslösen können.
Das Verhalten des Dokuments mit sandbox einschränken
<iframe src="https://quiz.example.com/start"
title="Practice quiz"
sandbox="allow-scripts allow-forms"></iframe>
Ein leeres sandbox wendet alle Beschränkungen an, darunter das Blockieren von Skripten, Formularübermittlungen und Pop-ups sowie die Zuweisung eines undurchsichtigen Ursprungs. Schlüsselwörter heben ausgewählte Beschränkungen auf. Hier darf das Quiz Skripte ausführen und Formulare absenden, aber allow-popups wurde nicht gewährt. Ergänze nur Schlüsselwörter, die der Inhalt benötigt; andernfalls kann eine kopierte Berechtigungsliste nützliche Beschränkungen aufheben.
allow-same-origin lässt das Dokument seinen normalen Ursprung behalten. Kombiniere es nicht mit allow-scripts für eingebettete Inhalte von deinem eigenen Ursprung: Diese Kombination kann dem Dokument erlauben, seine Sandbox zu entfernen. Eine Sandbox bedeutet außerdem nicht, dass ein Frame keine Netzwerkanfragen stellt.
Browserfunktionen getrennt gewähren
allow ist eine Berechtigungsrichtlinie für Funktionen wie Vollbild, Bild-in-Bild, Kamera und Mikrofon. Ein Videowiedergabeprogramm kann allow="fullscreen; picture-in-picture" anfordern. Es benötigt nicht allein deshalb Kamerazugriff, weil es Video enthält. Das ältere allowfullscreen gewährt ebenfalls Zugriff auf Vollbild.
Sandbox-Schlüsselwörter steuern das Verhalten des Dokuments; Funktionsberechtigungen beantworten eine andere Frage. Die Gewährung von Vollbild allein erlaubt einer Seite in einer Sandbox weder, ein Formular abzusenden noch ein Skript auszuführen.
Referrer und direkt eingefügten Inhalt steuern
referrerpolicy="no-referrer" lässt die Adresse der verweisenden Seite in der Anfrage weg. Bei der üblichen Standardrichtlinie sendet eine HTTPS-Anfrage an einen anderen Ursprung den Ursprung statt des vollständigen Pfads; Anfragen an eine weniger sichere Verbindung senden keinen Referrer. Dies steuert einen HTTP-Header, nicht alle Informationen, die ein Anbieter erhält.
srcdoc stellt das HTML des Frames direkt bereit und hat Vorrang vor src:
<iframe title="Message preview" sandbox
srcdoc="<p>Preview of your message</p>"></iframe>
Die Sandbox hält diese kleine Vorschau eingeschränkt. Bei allgemeineren HTML-Vorschauen ist darauf zu achten, welche Ressourcen und welcher HTML-Quelltext erlaubt werden.
Das Element passend zur Ressource auswählen
| Ressource | Element |
|---|---|
| Bild | img |
| Audio- oder Videodatei | audio oder video |
| Eine Webseite, Karte oder das Wiedergabeprogramm eines Dienstes | iframe |
| Externes Dokument wie ein PDF | object oder embed |
<object> kann Ersatzinhalt enthalten, etwa einen Downloadlink, falls die Ressource nicht angezeigt werden kann. Alte Plug-in-Inhalte wie Flash funktionieren in gewöhnlichen aktuellen Browsern nicht mehr; Adobe beendete die Unterstützung für Flash Player Ende 2020. Halte direkte Links neben wichtigen Einbettungen bereit und prüfe regelmäßig, ob der Anbieter die Inhalte noch bereitstellt.
Wichtige Erkenntnisse
- Beim Laden von Inhalten eines Drittanbieters wird dessen Server schon vor der Wiedergabe kontaktiert.
- Eine Sandbox beginnt mit Beschränkungen; Schlüsselwörter stellen ausgewählte Möglichkeiten wieder her.
- Halte
allow-scriptsundallow-same-originbei Inhalten desselben Ursprungs getrennt. - Verwende
allowfür benötigte Browserfunktionen und die Referrer-Richtlinie für die verweisende Adresse. - Wähle Medienelemente für Mediendateien und iframes für separate Seiten.
Webformulare: Beispiele
1Erstelle ein Anmeldeformular für einen Workshop
20 Schritte
- 1EinführungBeginne mit den benötigten Antworten
Für eine Workshop-Anmeldung werden ein Name, Kontaktdaten, die Auswahl einer Veranstaltung, optionale Interessen und eine Nachricht benötigt. Jede Antwort braucht ein passendes Steuerelement und eine Beschriftung.
Baue das Formular schrittweise auf: Entscheide, wohin es Daten sendet, wähle die Steuerelemente und verbinde dann Beschriftungen und Hinweise. Du prüfst sowohl, was ein Besucher eingeben kann, als auch, was beim empfangenden Programm ankommt.
- 2ErklärungWähle Ziel und Methode
Verwende
<form action="/registrations" method="post">, um eine Anmeldung an die empfangende URL zu senden. POST setzt die Antworten in den Nachrichtenkörper der Anfrage und eignet sich für eine Übermittlung, bei der gespeicherte Daten entstehen.Die Verbindung benötigt weiterhin HTTPS zur Verschlüsselung. Eine Methode allein macht die Informationen nicht vertraulich, und das HTML speichert die Anmeldung nicht; das übernimmt das empfangende Programm.
- 3BeispielGib der Antwort einen Datenschlüssel
Beginne mit
<input id="attendee" name="attendee">. Gibt der Besucher „Nora“ ein, steuert das Steuerelementattendee=Norabei.Der
namesagt dem empfangenden Programm, um welche Antwort es sich handelt. Dieididentifiziert das Feld auf der Seite. Entfernst du den Namen, kann ein funktionsfähig aussehendes Feld zurückbleiben, das nichts zur Übermittlung beiträgt. Eine spätere Beschriftung wird über die id verbunden. - 4HerausforderungSage voraus, welche Felder gesendet werden
Ein Formular enthält
<input name="guest" value="Nora">,<input name="notes" value="">und ein nicht angekreuztes Kontrollkästchen namensupdates. Welche Felder steuern Daten bei?---reveal---
Die Texteingabefelder steuern
guest=Noraundnotes=bei. Das nicht angekreuzte Kontrollkästchen steuert kein Paar bei. Ein leerer Textwert unterscheidet sich von einem ausgelassenen Kontrollkästchen: Der eine benennt ein Feld ohne Text, das andere fehlt in den übermittelten Daten. - 5TippGestalte das Absenden bewusst
Ergänze
<button type="submit">Register</button>. Eine Schaltfläche innerhalb eines Formulars sendet dieses standardmäßig ab. Ein ausdrücklich angegebener Typ macht daher die Absicht klar.Ergänzt du später eine Schaltfläche für eine Aktion per Skript, verwende
type="button". Eine Zurücksetzschaltfläche stellt Ausgangswerte wieder her und kann alle Eingaben des Besuchers löschen. Auch das Drücken der Eingabetaste in einem einzeiligen Feld kann das Absenden auslösen. Das Formular muss daher funktionieren, ohne auf einen Mausklick angewiesen zu sein. - 6ErklärungWähle Eingabetypen für Kontaktdaten
Verwende
type="email"für die E-Mail-Adresse undtype="tel"für eine optionale Telefonnummer. Diese Typen beeinflussen die Tastatur auf Smartphones, ihre Prüfungen unterscheiden sich aber.Email prüft die Syntax, nicht aber, ob das Postfach existiert. Tel gibt kein Telefonformat vor. Ein Passwortfeld verbirgt Zeichen auf dem Bildschirm, benötigt beim Absenden aber weiterhin HTTPS. Wähle Typen nach den Informationen, für die sie stehen, nicht nur nach der gewünschten Tastatur.
- 7BeispielBelasse Codes als Text
Angenommen, der Workshop sendet Mitgliedern einen Zifferncode. Verwende dafür
type="text" inputmode="numeric". Der Hinweis auf den Ziffernblock erleichtert die Eingabe von Ziffern, ohne den Code zu einer Mengenangabe zu machen.Ein
number-Eingabefeld kann Schaltflächen zum Erhöhen und Verringern sowie mengenbezogenes Verhalten bieten, was für eine Kennung ungeeignet ist.inputmodeselbst prüft nichts; ein festes Codeformat kann eine separate Validierungsregel erhalten. - 8ErklärungErstelle eine Optionsfeldgruppe für eine Veranstaltung
Biete drei Veranstaltungen mit Optionsfeldern an, die alle
name="session"verwenden. Gib ihnen Werte wiemorning,afternoonundevening.Die Auswahl des Felds für den Nachmittag steuert
session=afternoonbei und hebt die vorherige Auswahl in dieser Gruppe auf. Unterschiedliche Namen würden zulassen, dass mehrere Veranstaltungen ausgewählt bleiben. Verwende für unabhängige Interessen separate Kontrollkästchen, da Besucher möglicherweise mehr als ein Interesse wählen möchten. - 9HerausforderungKorrigiere eine Gruppe für die Einfachauswahl
Zwei Optionsfelder für Veranstaltungen verwenden
name="morning" value="morning"undname="afternoon" value="afternoon". Ein Besucher kann beide auswählen. Welche Änderung macht sie zu einer Gruppe?---reveal---
Gib beiden denselben Namen, etwa
name="session", und behalte ihre unterschiedlichen Werte bei. Gemeinsame Namen bilden die Gruppe; unterschiedliche Werte identifizieren die gewählte Veranstaltung. Würden nur ihre ids übereinstimmen, entstünden doppelte Kennungen auf der Seite, ohne die Gruppierung zu korrigieren. - 10KernaussageUnterscheide ein angezeigtes Datum von seinem Wert
Eine Datumsauswahl kann denselben Tag auf verschiedenen Geräten in unterschiedlicher Reihenfolge anzeigen. Ein Eingabefeld vom Typ
datesendet dennoch einen festen Wert in der Reihenfolge Jahr-Monat-Tag, etwa2026-11-18.Die Anzeige richtet sich nach den Regionseinstellungen des Besuchers; die Anfrage übernimmt diese Anzeigezeichenfolge nicht. Datums- und Uhrzeitfelder liefern keine Zeitzone. Ein Termin benötigt daher genügend sichtbaren Kontext, damit der Besucher weiß, für welchen Ort die Uhrzeit gilt.
- 11BeispielBiete eine verpflichtende feste Auswahl an
Für eine lange Liste von Workshop-Orten eignet sich ein select. Gib ihm eine leere erste Option wie
<option value="">Choose a location</option>und ergänzerequiredam select.Jede tatsächliche Option hat ihren eigenen übermittelten Wert. Die Auswahl von
<option value="studio">Main studio</option>sendet das unveränderliche Schlüssel-Wert-Paarlocation=studio, wenn das select den Namenlocationträgt. Die sichtbare Beschriftung kann ausführlich bleiben. - 12BeispielLass Platz für eine Nachricht
Ergänze
<textarea id="message" name="message" rows="5"></textarea>für eine längere Antwort. Ausgangstext gehört zwischen seine Tags; die benachbarten Tags halten hier den Ausgangswert leer.Rows steuert die sichtbare Höhe, nicht die maximale Antwortlänge. Eine datalist erfüllt eine andere Aufgabe: Verbinde sie über das
listeines Eingabefelds, um Vorschläge anzubieten und zugleich andere Antworten zu erlauben. Sie kann die festen Auswahlmöglichkeiten des select nicht erzwingen. - 13HerausforderungWähle zwischen Vorschlägen und festen Antworten
Der Workshop erlaubt nur seine aufgeführten Veranstaltungsorte, aber jemand ersetzt das select durch ein Textfeld, das mit einer datalist verbunden ist. Kann der Besucher nun einen nicht aufgeführten Ort eingeben?
---reveal---
Ja. Eine datalist bietet Vorschläge, ohne die Antwort einzuschränken. Behalte ein select bei, wenn die zulässigen Werte genau den angebotenen Optionen entsprechen. Verwende eine datalist, wenn eine andere Antwort möglich bleiben soll, etwa eine Stadt, die nicht zu den häufigen Vorschlägen gehört.
- 14VerbindungZeige einen Status, ohne eine Antwort zu erfassen
Ein Fortschrittsbalken kann zeigen, wie weit die Bearbeitung der Anmeldung fortgeschritten ist. Eine Messwertanzeige kann einen Messwert innerhalb eines bekannten Bereichs zeigen, etwa die Speichernutzung.
Keines von beiden ist ein Steuerelement zur Antworteingabe. Verwende
<progress value="70" max="100">70%</progress>für den Fortschritt einer Aufgabe und ergänze erklärenden Text. Verwende für eine Gruppe unabhängiger optionaler Interessen Kontrollkästchen, damit Besucher ihre Auswahl tatsächlich ändern und übermitteln können. - 15BeispielVerbinde eine sichtbare Beschriftung
Schreibe
<label for="attendee">Name (required)</label>neben das Eingabefeld mitid="attendee". Der for-Wert muss genau mit der id übereinstimmen, einschließlich Groß- und Kleinschreibung.Ein Klick auf die Beschriftung sollte den Fokus auf das Eingabefeld setzen. Halte die Beschriftung während der Eingabe sichtbar; ein Platzhalter kann diese Aufgabe nicht erfüllen. Der Hinweis auf das Pflichtfeld sagt dem Benutzer, was erwartet wird, während das required-Attribut den Browser dazu bringt, das Vorhandensein eines Werts zu erzwingen.
- 16ErklärungGib den Auswahlmöglichkeiten eine gemeinsame Frage
Umschließe die Optionsfelder für Veranstaltungen mit einem fieldset, dessen erstes Kindelement
<legend>Session</legend>ist. Behalte für jede Option eine separate Beschriftung bei.Die Gruppenbeschriftung erklärt die gemeinsame Frage; die Beschriftungen benennen ihre Antworten. Bei Kontaktfeldern helfen zutreffende autocomplete-Werte wie
name,emailundteldem Browser, gespeicherte Angaben anzubieten. Ein Formathinweis in der Nähe kann überaria-describedbymit der id des Hinweises verbunden werden. - 17HerausforderungFinde die unterbrochene Verbindung der Beschriftung
Der HTML-Quelltext enthält
<label for="contact">Email</label>und<input id="email" name="contact" type="email">. Warum setzt ein Klick auf die Beschriftung den Fokus nicht auf dieses Eingabefeld?---reveal---
Der for-Wert stimmt mit dem name überein, aber nicht mit der id. Ändere ihn zu
for="email"oder wähle eine neue passende eindeutige id. Der name dient bereits der Übermittlung, sodass eine Änderung der Beschriftungsverbindung den Datenschlüssel, den das empfangende Programm erwartet, nicht ändern muss. - 18TippErgänze einen Upload nur mit der passenden Kodierung
Wenn für die Anmeldung ein Dokument benötigt wird, ergänze ein
type="file"-Eingabefeld mit Namen und setzeenctype="multipart/form-data"am POST-Formular. Diese Kodierung überträgt die Dateiinhalte.Ein accept-Filter kann bei der Dateiauswahl helfen, legt aber nicht fest, was der Server erhält. Denke auch daran, dass deaktivierte Steuerelemente ausgelassen werden, während unterstützte schreibgeschützte Felder gesendet werden. Verwende das Attribut, das zum gewünschten Verhalten bei der Datenübermittlung passt.
- 19HerausforderungPrüfe das fertige Formular
Ein beschriftetes Eingabefeld für den Ort bietet nur datalist-Vorschläge, und das E-Mail-Feld hat eine id, aber keinen name. Der Besucher muss einen aufgeführten Ort wählen und der Server benötigt die E-Mail-Adresse. Welche zwei Korrekturen sind nötig?
---reveal---
Verwende ein select für die festen Ortsoptionen und ergänze einen name am E-Mail-Feld. Das select steuert, welche Optionen angeboten werden; der name gibt der E-Mail-Adresse einen Schlüssel für die Übermittlung. Eine sichtbare Beschriftung allein behebt keines der beiden Probleme.
- 20ZusammenfassungLies das Formular in zwei Richtungen
Prüfe aus Sicht des Besuchers den Steuerelementtyp, die sichtbare Beschriftung, die gemeinsame Frage und die Hinweise. Prüfe aus Sicht des Servers Ziel, Methode, Namen und beigesteuerte Werte.
Klicke dann auf jede Beschriftung und gehe mit der Tabulatortaste durch das Formular. Diese Prüfungen finden unterschiedliche Fehler: Ein Formular kann leicht auszufüllen sein und dennoch Daten auslassen oder korrekte Daten senden und dabei schwer verständlich sein.
2Finde Fehler in den Validierungsregeln eines Formulars
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungVollziehe die Prüfungen nach, die das Senden verhindern
- 2ErklärungVerlange einen Anzeigenamen
- 3BeispielTeste Vorhandensein und Länge getrennt
- 4HerausforderungMache das Feld optional
- 5TippTeste Benutzereingaben, nicht nur den Standardwert
- 6BeispielPrüfe zuerst den Wertebereich
- 7BeispielZähle von der tatsächlichen Basis aus
- 8HerausforderungUnterscheide Schrittweite und Maximum
- 9VerbindungLies Uhrzeit-Schrittweiten in Sekunden
- 10ErklärungPrüfe den festen Code der Organisation
- 11HerausforderungFinde ein ignoriertes Muster
- 12TippErkläre und zeige den Fehler
- 13KernaussageEine hilfreiche Prüfung ist keine Vertrauensgrenze
- 14HerausforderungUntersuche verschiedene Fehler
- 15ZusammenfassungVerwende eine kurze Liste für Grenztests
3Erstelle und prüfe einen Veranstaltungsplan
11 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungPlane die Tabelle vor ihren Tags
- 2ErklärungBenenne die Tabelle und ihre Spalten
- 3BeispielSchreibe eine vollständige Datenzeile
- 4HerausforderungKorrigiere eine rein visuelle Überschrift
- 5TippHalte die Bedeutung leerer Zellen eindeutig
- 6BeispielLass eine Veranstaltung zwei Zeilen dauern
- 7HerausforderungZähle eine Zeile unter einem rowspan
- 8BeispielLass die Mittagspause beide Räume überspannen
- 9ErklärungVerbinde eine Zelle mit mehrstufigen Kopfzellen
- 10HerausforderungKorrigiere Ausrichtung und Bedeutung gemeinsam
- 11ZusammenfassungVerfolge einen Wert durch die Tabelle
4Veröffentliche ein kurzes Video mit Untertiteln
17 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungVeröffentliche die Informationen ebenso wie die Datei
- 2BeispielReserviere Platz für ein Wiedergabeprogramm mit Steuerelementen
- 3ErklärungSetze einen Ladehinweis bewusst ein
- 4HerausforderungSchalte eine boolesche Einstellung aus
- 5TippErmögliche das Pausieren automatischer Medien
- 6ErklärungPrüfe Container und Codecs
- 7BeispielErgänze die bevorzugte Quelle zuerst
- 8HerausforderungFinde die ungenutzten Alternativen
- 9KernaussageHalte eine Ausweichmöglichkeit außerhalb des Wiedergabeprogramms bereit
- 10ErklärungWähle Untertitel für Informationen im Ton
- 11BeispielSchreibe den ersten Cue
- 12BeispielErgänze einen Cue für ein bedeutsames Geräusch
- 13BeispielBinde die Datei nach den Quellen ein
- 14HerausforderungWandle eine Zeitangabe korrekt um
- 15TippTeste die Textspur und das Transkript
- 16HerausforderungBehebe zwei getrennte Zugangsprobleme
- 17ZusammenfassungPrüfe den vollständigen Medienzugang
5Prüfe die Einbettung einer Karte und eines Quiz
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungBetrachte eine Einbettung als anderes Dokument
- 2BeispielBenenne die Karte vor dem Laden
- 3ErklärungVerzögere das Laden einer Karte unter dem Hauptinhalt
- 4TippUntersuche kopierten Einbettungscode
- 5HerausforderungErkenne die Einbettungsregel eines Servers
- 6ErklärungBeginne das Quiz mit Beschränkungen
- 7KernaussageBehalte Ursprung und Skripte unter Kontrolle
- 8HerausforderungGewähre dem Quiz nur, was es benötigt
- 9VerbindungUnterscheide Datenschutz von einem Referrer-Header
- 10ErklärungWähle ein Element für die tatsächliche Ressource
- 11HerausforderungPrüfe eine geänderte Einbettung
- 12ZusammenfassungPrüfe den Frame als kleine Abhängigkeit
Webformulare: Übungsaufgaben
Set 1: Erfasse und sende die richtigen Antworten10 Übungsfragen
Frage 1 von 10
id="visitor", aber keinen name. Warum fehlt sein Text in den übermittelten Formulardaten?Antwort zeigenAntwort ausblenden
name-Attribut. Seine id identifiziert das Element auf der Seite und kann eine Beschriftung verbinden, liefert aber keinen Schlüssel für die Übermittlung. Eine Änderung der Anfrage von GET zu POST würde nicht dazu führen, dass dieses namenlose Steuerelement seinen Text beisteuert.Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
for="address"; das E-Mail-Feld verwendet id="email" name="address". Welche einzelne Änderung verbindet diese Beschriftung, ohne den übermittelten Datenschlüssel zu ändern?Antwort zeigenAntwort ausblenden
for="email" die fehlende Übereinstimmung her. Der name kann address bleiben, sodass der vom empfangenden Programm erwartete Schlüssel erhalten bleibt. Eine Änderung des Namens allein würde die Beschriftung weiterhin auf eine id verweisen lassen, die nicht existiert.Frage 4 von 10
<option value="">Choose delivery</option>. Was geschieht, wenn der Benutzer absendet, ohne eine andere Option zu wählen?Antwort zeigenAntwort ausblenden
Frage 5 von 10
/lookup und enthält ein Texteingabefeld name="term" mit „css grid“, ein nicht angekreuztes Kontrollkästchen name="archived" value="yes" und ein deaktiviertes Eingabefeld name="region" value="east". Welche Anfrage-URL ergibt sich?Antwort zeigenAntwort ausblenden
+ kodiert wird. Das nicht angekreuzte Kontrollkästchen und das deaktivierte Eingabefeld werden beide ausgelassen, sodass nur term=css+grid bleibt. Ein deaktivierter Wert wird nicht gesendet, nur weil er im HTML steht, und ein nicht angekreuztes Kästchen erzeugt keinen automatischen Wert no.Frage 6 von 10
online und onsite. Wie sollte die Gruppierung geändert werden?Antwort zeigenAntwort ausblenden
attendance, und unterschiedliche Werte, die die beiden Arten der Teilnahme bezeichnen. Required steuert, ob eine Gruppe eine Auswahl benötigt; es führt Optionsfelder mit unterschiedlichen Namen nicht zu einer Gruppe zusammen.Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
minlength="5". Was geschieht bei seiner Längenprüfung, wenn der Benutzer es leer lässt?Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
enctype="multipart/form-data", während eine nicht absendende Hilfsschaltfläche type="button" benötigt. Diese Änderungen beheben unterschiedliche Verhaltensweisen. POST mit der Standardkodierung überträgt weiterhin keine Dateiinhalte, und ohne Typ behält die Hilfsschaltfläche innerhalb eines Formulars ihr normales Absendeverhalten.Frage 10 von 10
required="false" minlength="3". Der Autor möchte es optional machen, wobei jede eingegebene Antwort mindestens drei Zeichen lang sein soll. Was sollte geändert werden?Antwort zeigenAntwort ausblenden
Set 2: Prüfe Wertebereiche, Muster und Tabellenstruktur10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
step="300" bei einem Eingabefeld vom Typ time?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
min="2" max="14" step="4". Welcher eingegebene Wert erfüllt alle diese Einschränkungen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
min="08:20" max="10:20" step="1200". Wie viele nicht leere Uhrzeitwerte erfüllen diese Einstellungen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
pattern="[A-Z]{2}-[0-9]{3}". Welcher eingegebene Code besteht die Prüfung?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
"[". Ein Benutzer gibt „ravi“ ein. Was geschieht beim normalen Absenden?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
<tr><th scope="row">B</th><td>18</td></tr> und soll eine nicht verfügbare Masse und eine Zeit von 18 Minuten zeigen. Wie sollte die Zeile korrigiert werden?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
muted="false". Der Autor möchte die anfängliche Stummschaltung ausschalten. Welche Änderung bewirkt das?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Mache Medien und eingebettete Seiten nutzbar10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
src="preview.mp4". Warum bestimmt die Reihenfolge der untergeordneten Quellen nicht die Wiedergabe?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
00:00:12.250 bis 00:00:16.000 angezeigt. Wie lange ist dieser Cue sichtbar?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
rows="4" cols="35" und keine Längenattribute. Warum kann ein Besucher mehr als 140 Zeichen eingeben?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Behebe kombinierte HTML-Probleme10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
value="0.25", kein min und kein step-Attribut. Der Benutzer ersetzt seinen Wert. Welche Eingabe erfüllt die Standardschrittregel?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
[A-Z]{2}[0-9]{2} entsprechen. Die normale Validierung des Formulars ist eingeschaltet. Seine Sendeschaltfläche „Entwurf speichern“ hat formnovalidate, „Senden“ dagegen nicht. Der Code lautet „xy8“. Was geschieht bei den beiden Schaltflächen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
r, planned und actual verweisen. Welcher HTML-Quelltext für die zweite Zeile passt?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
name="member" value="K8" readonly, ein leeres Textfeld mit dem Namen note und ein nicht angekreuztes Kontrollkästchen mit dem Namen copy. Die Anfrage verwendet HTTPS. Welches Datenverhalten sollte das empfangende Programm erwarten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
2.4. Welche Einheit gehört zu diesem Wert?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
action-Attribut
action="/messages" leitet eine Nachrichtenübermittlung an die Empfangsadresse der Website für Nachrichten.Audiodeskription
Auswahlliste
express übermittelt.Automatische Vervollständigung
autocomplete="tel", damit der Browser die gespeicherte Telefonnummer des Benutzers vorschlagen kann.Automatische Wiedergabe
B
Beschriftung
id mit dem for-Attribut der Beschriftung übereinstimmt.Boolesches Attribut
required="false" ist weiterhin ein Pflichtfeld. Das Attribut muss daher entfernt werden, um es optional zu machen.C
Clickjacking
Codec
Containerformat
Cue
00:00:01.000 --> 00:00:04.500 zeigt einen Cue für dreieinhalb Sekunden an.D
datalist-Element
Datentabelle
Datenzelle
E
Einbettungsbeschränkung
Eingabemodus
inputmode="numeric", um die Eingabe von Ziffern auf einem Smartphone zu erleichtern.Eingabetyp
type="date" eine Auswahlhilfe statt eines uneingeschränkten einzeiligen Textfelds bereit.Einschränkungsvalidierung
Ersatzinhalt
Ersatzinhalt des object-Elements
F
Formular
Formularfeldgruppe
Fortschrittsanzeige
Funktionsberechtigung
G
Geltungsbereich einer Kopfzelle
scope="row", während die Streckenüberschrift für die darunterstehenden Werte scope="col" verwendet.Gemischte Inhalte
GET
Gruppenbeschriftung
H
headers-Attribut
headers="mon distance planned" verweist auf drei Überschriften, die gemeinsam ihren Wert erklären.Hinweis über aria-describedby
id erklärt vor dem Absenden des Formulars: „Verwende mindestens 8 Zeichen“.I
Inlineframe
K
Kontrollkästchen
Kopfzelle
Kurzbezeichnung einer Kopfzelle
abbr="Distance" für eine kürzere Wiederholung bereitstellen.L
Lazy Loading
loading="lazy", während der Hauptinhalt am Seitenanfang zügig lädt.Lokales Datum mit Uhrzeit
2026-07-09T10:30 übermitteln; der Ort muss den gegebenenfalls benötigten Zeitzonenkontext liefern.M
Maximallänge
maxlength="12" nimmt bei der Eingabe kein dreizehntes gewöhnliches lateinisches Zeichen mehr an.Maximum
max="2026-08-31" erlaubt den 31. August, lehnt aber ein später eingegebenes Datum ab.Mehrzeiliges Textfeld
rows="5" für die sichtbare Höhe, während maxlength den eingegebenen Text getrennt davon begrenzt.Messwertanzeige
value="0.6" und ihrem Standardbereich zeigt einen Messwert bei 60 % dieses Bereichs.MIME-Typ
type="audio/mpeg" an, damit der Browser ihr vorgesehenes Audioformat erkennen kann.Mindestlänge
minlength="4" darf weggelassen werden, aber ein angegebener Spitzname aus zwei Buchstaben besteht die Prüfung nicht.Minimum
min="0.5" step="0.5" kann ein Paket 0,5 kg wiegen, und weitere Schritte beginnen bei diesem Wert.multipart/form-data
enctype="multipart/form-data", damit die Bytes des ausgewählten Dokuments gesendet werden können.N
Name-Wert-Paar
delivery=express ergeben, auch wenn ihre sichtbare Beschriftung „Expresslieferung“ lautet.Native Wiedergabesteuerelemente
controls ergänzt.O
Optionsfeldgruppe
name="speed" und unterschiedliche Werte, um eine Einfachauswahl zu ermöglichen.Optionsgruppe
P
pattern-Attribut
POST
Q
Quantifizierer
[0-9]{4} verlangt der Quantifizierer vier Ziffern, sodass drei Ziffern den erwarteten Code nicht vervollständigen.R
Referrer-Richtlinie
referrerpolicy="no-referrer" kontaktiert weiterhin seinen Anbieter, sendet aber keine Adresse der verweisenden Seite.Regulärer Ausdruck
[A-Z]{3} akzeptiert genau drei lateinische Grundbuchstaben in Großschreibung, wenn er als Muster für den gesamten Wert verwendet wird.required-Attribut
required trägt.S
Sandbox
Schieberegler
min="0" max="10" verwenden, wenn eine grobe Einstellung nützlicher ist als eine genaue Eingabe.Schrittbasis
min="1" step="2" erlaubt 1, 3 und 5, sodass eine Eingabe von 4 innerhalb des Wertebereichs die Prüfung nicht besteht.Schrittweite
step="900" verwendet Schritte von 15 Minuten, weil Uhrzeitschritte in Sekunden gemessen werden.Schrittweitenabweichung
Seitenverhältnis
Serverseitige Validierung
source-Element
Spaltengruppe
Spaltenüberspannung
colspan="2" beide neben der separaten Zeitkopfzelle der Zeile ab.srcdoc-Dokument
srcdoc="<p>Preview of your message</p>", ohne eine separate HTML-Seite abzurufen.T
Tabellenbeschriftung
Textspur
Transkript
U
Umgehung der Validierung
formnovalidate verwenden, während die normale Schaltfläche „Senden“ weiterhin prüft.Untertitel
Untertitel für gehörlose und schwerhörige Menschen
Ursprung
V
Validierungszustand
:user-invalid kann die Fehlergestaltung verzögern, bis der Benutzer mit dem Steuerelement interagiert hat.Vorladen
preload="none", um seine Medien nicht vorab anzufordern, wenn viele Besucher ihn möglicherweise überspringen.Vorschaubild
W
WebVTT
intro.en.vtt, dessen Zeitangaben vor den Millisekundenstellen Punkte verwenden.Z
Zeilengruppe
tfoot.Zeilenüberspannung
rowspan="2" belegt die Position für Montag auch in der folgenden Zeile.Zugänglicher Name
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.