Standardverhalten
Es gibt in HTML neben reinen Elementen zur Textauszeichnung wie Überschriften oder Textabsätzen auch Elemente, die bereits eine browsereigene Funktionalität bei bestimmten Events haben, z. B. …
-
<a>— Links- Klick → Navigation zu einer neuen URL
- Ctrl + Klick → Öffnen in neuem Tab
- Rechtsklick → Kontextmenü für "Link in neuem Tab öffnen"
-
<form>– Formulare- Drücken der Enter-Taste ( ⏎ ) sorgt bei einem Formular für das Absenden zum Server
- Klick auf <button type="submit"> → Formular wird abgesendet
- Browser führt Validierung für required, email, pattern, usw. aus
Dieses Standardverhalten (engl. standard behavior) bzw. die dabei ausgeführte Standardaktion (engl. default action) ist der Kern von progressive enhancement:
- Ohne JavaScript ist die Seite trotzdem nutzbar.
- Der Browser macht grundlegende Arbeit automatisch.
- JavaScript erweitert, statt zu ersetzen.
Wenn man diese Verhalten nutzt statt überschreibt, entstehen robustere Webseiten.[1]
Information: How (Not) to Build a Button
Ben Myers zeigte 2019[2], wie man ein div mit ca. 20 Zeilen JavaScript klickbar machen kann, bzw. was man dann auch alles nachrüsten muss, um Zugänglichkeit zu erreichen (:hover, :focus, tabindex, aria, etc).Deshalb soll man dies, anders als in manchen Frameworks praktiziert, nicht tun, sondern das native, bereits vorhandene button-Element verwenden.
Inhaltsverzeichnis
Interaktive Elemente
Folgende Elemente (in der Kategorie interaktive Elemente zusammengefasst) sind tabbbar, erhalten automatisch focus und reagieren auf Tastatur:
- <a> — Links
- <button>
- Space/Enter → löst Klick/Submit aus
- Fokusrahmen wird automatisch gesetzt
- <input> (alle Arten, außer type="hidden")
- Enter ( ⏎ ) in <input type="text"> → Formular absenden
- Eingebaute Validierung
- Viele Input-Typen (date, email) haben eigenes UI
- <textarea>
- Enthält Textcursor
- Enter ( ⏎ ) fügt neue Zeile ein
- <label>
- Klick auf Label fokussiert das zugehörige Formularelement – ganz ohne JS
- <select> + <option>
- Dropdown öffnet sich automatisch beim Klick
- Pfeiltasten navigieren Einträge
- Enter/Space → Auswahl anwenden
Medien-Elemente
- <audio> — <video>
Ohne JavaScript verfügbar:- Play/Pause
- Lautstärke ändern
- Vollbildmodus
- Zeitleiste
- Multimedia

- audio
- video
- Playlisten zusammenstellen
disclosure widgets
Die wortgetreue Übersetzung Offenlegungs-Widget ist mir zu sperrig, der Begriff Klapp-Boxen zu flapsig.
Sie sind eine Revolution: Wo vorher JavaScript zwingend notwendig war, gibt es jetzt native HTML-Elemente mit voll eingebauter Zugänglichkeit, ganz ohne JavaScript!
- Klappboxen mit <details>
- Klick auf <summary> → Abschnitt klappt aus/ein
<details>
<summary>Mehr anzeigen</summary>
<p>Dies ist der Inhalt.</p>
</details>
<button command="show-modal" commandfor="anmelde-dialog">
Öffne die Dialog-Box
</button>
<dialog id="anmelde-dialog">
<h2>Anmeldung</h2>
<form method="dialog">
...
<button id="Anmeldung" value="anmelden">Anmelden</button>
<button id="Abbruch" value="abbrechen">Abbrechen</button>
</form>
</dialog>>
Aber auch ein ganz normales <div> kann zur Infobox werden: Mit dem popover-Attribut!
<button popovertarget="additional-info"> → mehr Infos </button>
<div id="additional-info" popover>
<h4> … </h4>
<p> … <p>
<button popovertarget="additional-info" popovertargetaction="hide" class="close-btn">
<span aria-hidden="true">X</span>
<span class="sr-only">Schließen</span>
</button>
</div>>
- Akkordeon mit <details>

- details und summary
- Akkordeon
- Registerkarten (Tab Panels)
Besonders interessant für FAQs, um Inhalte übersichtlich zu präsentieren.
- modale Dialogfenster

- dialog-Element
- modal vs nichtmodal
- :backdrop
Das UI-Element für Web-Apps
- Tooltips mit Popover

- Popover API
- Anchor Position
Neu! Revolutionär!
Popups ohne Programmieren!
Standardaktionen unterdrücken
In einigen Fällen werden solche Elemente benutzt, ohne dass das Standardverhalten ausgeführt werden soll.
In diesem Fall kann man es mit Event.preventDefault unterdrücken.
In einer Lightbox werden Bilder oder (wie hier) Linktexte von einem Link umschlossen, der auf die Ressource der Großansicht verweist. Da ein ständiges Hin- und Herwechseln aber zu umständlich ist, soll auf Klick des Nutzers eine Großansicht innerhalb der Seite erfolgen.
<a href="Peru-6.jpg" id="vollbildlink">Bild in Originalgröße ansehen</a>
document.addEventListener('DOMContentLoaded', function () {
document.querySelector('#vollbildlink').addEventListener('click',function (evt) {
evt.preventDefault();
document.getElementById('vollbildlink').innerText = '';
var elem = document.createElement('img');
elem.src = 'https://wiki.selfhtml.org/images/4/41/Peru-6.jpg';
elem.alt = 'Ceviche - ein peruanisches Leibgericht';
document.getElementById('vollbildlink').appendChild(elem);
});
});
Der Link mit der id vollbildlink erhält eine Handler-Funktion, mit der bei einem Klick die Standardaktion des Links (das Navigieren auf eine andere Ressource) durch Aufruf von preventDefault; unterdrückt wird.
Anschließend wird mit createElement ein img-Element erzeugt, und mit der Punktnotation ein src- und ein alt-Attribut hinzugefügt. Das Ganze wird mit appendChild in das a-Element eingehängt.
- Bildwechsler

- Lightbox
- Thumbnail und Großansicht
- Bildwechsler
- Lightbox
Siehe auch
- Eventhandling

Ereignisse verarbeiten- auf Events reagieren
- Events weitergeben
- Standardverhalten unterdrücken
- Was ist ein Webformular?

- Datenübertragung
- Formulare absenden
- Clientseitige Aktionen auslösen
- Formulare zurücksetzen
- HTML/Tutorials/Kategorien(knappe Übersicht)
Weblinks
- ↑ The default browser action (javascript.info)
- ↑ How (Not) to Build a Button (Ben Myers, 30.09.2019)