<kbd>: Das Keyboard Input-Element

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Das <kbd> HTML-Element repräsentiert einen Textbereich, der benutzereingaben von einer Tastatur, Stimmeneingaben oder einem anderen Texteingabegerät darstellt. Üblicherweise rendert der User-Agent die Inhalte eines <kbd>-Elements mit seiner Standard-Monospace-Schrift, obwohl dies nicht vom HTML-Standard vorgeschrieben ist.

Probieren Sie es aus

<p>
  Please press <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd> to re-render an
  MDN page.
</p>
kbd {
  background-color: #eee;
  border-radius: 3px;
  border: 1px solid #b4b4b4;
  box-shadow:
    0 1px 1px rgb(0 0 0 / 0.2),
    0 2px 0 0 rgb(255 255 255 / 0.7) inset;
  color: #333;
  display: inline-block;
  font-size: 0.85em;
  font-weight: 700;
  line-height: 1;
  padding: 2px 4px;
  white-space: nowrap;
}

<kbd> kann in verschiedenen Kombinationen mit dem <samp> (Sample Output) Element verschachtelt werden, um verschiedene Formen der Eingabe- oder Ausgabe basierend auf visuellen Hinweisen darzustellen.

Attribute

Dieses Element umfasst nur die globalen Attribute.

Nutzungshinweise

Andere Elemente können zusammen mit <kbd> verwendet werden, um spezifischere Szenarien darzustellen:

  • Das Verschachteln eines <kbd>-Elements in einem anderen <kbd>-Element repräsentiert eine tatsächliche Taste oder eine andere Eingabeeinheit als Teil einer größeren Eingabe. Siehe Darstellung von Tastenanschlägen innerhalb einer Eingabe unten.
  • Das Verschachteln eines <kbd>-Elements in einem <samp>-Element repräsentiert eine Eingabe, die vom System an den Benutzer zurückgegeben wurde. Siehe Wiederholte Eingabe unten für ein Beispiel.
  • Das Verschachteln eines <samp>-Elements in einem <kbd>-Element repräsentiert auf der anderen Seite eine Eingabe, die auf Text basiert, der vom System präsentiert wird, wie die Namen von Menüs und Menüeinträgen oder die Namen von auf dem Bildschirm angezeigten Tasten. Siehe das Beispiel unter Darstellung von Bildschirm-Eingabeoptionen unten.

Hinweis: Sie können einen benutzerdefinierten Stil definieren, um die standardmäßige Schriftwahl des Browsers für das <kbd>-Element zu überschreiben, obwohl die Präferenzen des Benutzers Ihre CSS überschreiben könnten.

Beispiele

Einfaches Beispiel

html
<p>
  Use the command <kbd>help my-command</kbd> to view documentation for the
  command "my-command".
</p>

Ergebnis

Darstellung von Tastenanschlägen innerhalb einer Eingabe

Um eine Eingabe zu beschreiben, die aus mehreren Tastenanschlägen besteht, können Sie mehrere <kbd>-Elemente verschachteln, wobei ein äußeres <kbd>-Element die gesamte Eingabe repräsentiert und jeder einzelne Tastenanschlag oder Bestandteil der Eingabe innerhalb seines eigenen <kbd> eingeschlossen ist.

Unformatiert

Zuerst sehen wir uns an, wie dies als einfaches HTML aussieht.

HTML
html
<p>
  You can also create a new document using the
  <kbd><kbd>Ctrl</kbd>+<kbd>N</kbd></kbd> keyboard shortcut.
</p>

Dies umschließt die gesamte Tastenfolge in einem äußeren <kbd>-Element und dann jede einzelne Taste in ihrem eigenen, um die Komponenten der Folge darzustellen.

Hinweis: Sie müssen nicht all diese Verschachtelung vornehmen; Sie können es vereinfachen, indem Sie das äußere <kbd>-Element weglassen. Mit anderen Worten, die Vereinfachung zu <kbd>Ctrl</kbd>+<kbd>N</kbd> wäre vollkommen gültig.

Abhängig von Ihrem Stylesheet könnte es jedoch nützlich sein, diese Art der Verschachtelung zu verwenden.

Ergebnis

Die Ausgabe sieht ohne angewendetes Stylesheet so aus:

Mit benutzerdefinierten Stilen

Wir können das verständlicher machen, indem wir etwas CSS hinzufügen:

CSS

Wir fügen einen neuen Selektor für verschachtelte <kbd>-Elemente, kbd>kbd, hinzu, den wir anwenden können, wenn Tasteneingaben gerendert werden:

css
kbd > kbd {
  border-radius: 3px;
  padding: 1px 2px 0;
  border: 1px solid black;
}
HTML

Dann aktualisieren wir das HTML, um diese Klasse auf die Tasten in der Ausgabe anzuwenden:

html
<p>
  You can also create a new document by pressing the
  <kbd><kbd>Ctrl</kbd>+<kbd>N</kbd></kbd> shortcut.
</p>
Ergebnis

Das Ergebnis ist genau das, was wir wollen!

Wiederholte Eingabe

Das Verschachteln eines <kbd>-Elements in einem <samp>-Element repräsentiert eine Eingabe, die vom System an den Benutzer zurückgegeben wurde.

html
<p>
  If a syntax error occurs, the tool will output the initial command you typed
  for your review:
</p>
<blockquote>
  <samp><kbd>custom-git ad my-new-file.cpp</kbd></samp>
</blockquote>

Ergebnis

Darstellung von Bildschirm-Eingabeoptionen

Das Verschachteln eines <samp>-Elements in einem <kbd>-Element repräsentiert eine Eingabe, die auf Text basiert, der vom System präsentiert wird, wie die Namen von Menüs und Menüeinträgen oder die Namen von auf dem Bildschirm angezeigten Tasten.

Zum Beispiel können Sie erklären, wie Sie die "Neues Dokument"-Option im "Datei"-Menü mit HTML auswählen, das so aussieht:

html
<p>
  To create a new file, choose the <kbd><kbd><samp>File</samp></kbd>
  ⇒<kbd><samp>New Document</samp></kbd></kbd> menu option.
</p>

<p>
  Don't forget to click the <kbd><samp>OK</samp></kbd> button to confirm once
  you've entered the name of the new file.
</p>

Dies bietet eine interessante Verschachtelung. Für die Menüoption-Beschreibung wird die gesamte Eingabe in einem <kbd>-Element eingeschlossen. Dann sind innerhalb davon sowohl die Menü- als auch die Menüeintragsnamen sowohl in <kbd> als auch <samp> enthalten, was anzeigt, dass eine Eingabe von einem Bildschirmelement ausgewählt wird.

Ergebnis

Technische Zusammenfassung

Inhaltskategorien Flussinhalt, formulierender Inhalt, greifbarer Inhalt.
Erlaubter Inhalt Formulierender Inhalt.
Tag-Auslassung Keine, sowohl der Start- als auch der End-Tag sind erforderlich.
Erlaubte Eltern Jedes Element, das formulierenden Inhalt akzeptiert.
Implizierte ARIA-Rolle Keine entsprechende Rolle
Erlaubte ARIA-Rollen Beliebige
DOM-Interface [`HTMLElement`](/de/docs/Web/API/HTMLElement)

Spezifikationen

Specification
HTML
# the-kbd-element

Browser-Kompatibilität

Siehe auch