Start · Sprachen · JavaScript · Referenz · HTMLElement.spellcheck

HTMLElement.spellcheck

Eigenschaft

Liest oder setzt als booleschen Wert, ob der Browser den editierbaren Inhalt eines Elements auf Rechtschreibfehler prüfen soll. Spiegelt das HTML-Attribut <code>spellcheck</code>.

seit JavaScript Baseline: alle modernen Browser Kategorie: webapi

Signatur

HTMLElement.spellcheck

Beschreibung

Die Eigenschaft spellcheck spiegelt das globale HTML-Attribut spellcheck wider. Sie gibt dem Browser einen Hinweis, ob er den Inhalt eines editierbaren Elements auf Rechtschreibung (und eventuell Grammatik) prüfen und Fehler z. B. rot unterkringeln soll. Wirksam ist sie nur bei Elementen, die der Nutzer bearbeiten kann: <textarea>, textartige <input>-Felder und Elemente mit contenteditable.

Beim Lesen liefert die Eigenschaft true oder false. Ist das Attribut nicht gesetzt, wird der Standardwert des Browsers berechnet. Dieser hängt vom Elementtyp, vom Wert beim Elternelement (das Attribut wird vererbt) und von den Benutzereinstellungen ab. Beim Schreiben setzt die Eigenschaft das Attribut auf "true" oder "false".

Typische Einsatzfälle: die Prüfung in Feldern für Code, Benutzernamen, E-Mail-Adressen, Produktnummern oder Fachbegriffe abschalten, wo rote Unterstreichungen nur stören. Umgekehrt kann man sie in Texteditoren gezielt einschalten oder sie per Schalter umschaltbar machen.

Parameter

Name Typ Default Beschreibung
$value boolean browserabhängig (bei Textfeldern meist true) Beim Setzen: true aktiviert, false deaktiviert die Rechtschreibprüfung. Andere Werte werden in einen booleschen Wert umgewandelt.

Rückgabewert

Typ
boolean
Beschreibung
true, wenn die Rechtschreibprüfung für das Element angefordert ist, sonst false. Das sagt aber nichts darüber aus, ob der Browser tatsächlich prüft.

Beispiele

Prüfung für ein Code-Eingabefeld abschalten

const editor = document.createElement('textarea');
editor.placeholder = 'JavaScript-Code hier eingeben …';

// Keine roten Unterstreichungen bei Variablennamen
editor.spellcheck = false;

document.body.append(editor);
console.log(editor.spellcheck);
console.log(editor.getAttribute('spellcheck'));
false "false"

Rechtschreibprüfung per Checkbox umschalten

const text = document.querySelector('#artikel'); // <div contenteditable="true" id="artikel">
const toggle = document.querySelector('#pruefung'); // <input type="checkbox" id="pruefung">

toggle.checked = text.spellcheck;

toggle.addEventListener('change', () => {
  text.spellcheck = toggle.checked;
  // Kurz den Fokus neu setzen, damit der Browser die Markierungen aktualisiert
  text.blur();
  text.focus();
  console.log(`Rechtschreibprüfung: ${text.spellcheck ? 'an' : 'aus'}`);
});
Rechtschreibprüfung: aus

Vererbung vom Elternelement

const form = document.createElement('form');
form.spellcheck = false; // setzt spellcheck="false" am Formular

const input = document.createElement('input');
input.type = 'text';
form.append(input);
document.body.append(form);

// Ohne eigenes Attribut übernimmt das Feld den Wert des Vorfahren
console.log(input.hasAttribute('spellcheck'));
console.log(input.spellcheck);
false false

// Wichtig · Fallstricke

  • Nur ein Hinweis: Der Browser darf den Wert ignorieren, etwa wenn der Nutzer die Rechtschreibprüfung global abgeschaltet hat. Aus true folgt nicht, dass tatsächlich geprüft wird.
  • Nach einer Änderung aktualisieren manche Browser (v. a. Chromium) die Markierungen bei bereits vorhandenem Text erst, wenn der Text bearbeitet oder das Element neu fokussiert wird.
  • Auf nicht editierbaren Elementen hat die Eigenschaft keine sichtbare Wirkung. Bei input type="password" und ähnlichen Feldern prüfen Browser grundsätzlich nicht.
  • Datenschutz: Erweiterte Rechtschreibprüfungen (z. B. „Erweiterte Rechtschreibprüfung“ in Chrome, Edge Editor) schicken eingegebenen Text unter Umständen an Server. Für sensible Felder wie Kontonummern oder Zugangsdaten sollte man daher spellcheck = false setzen.
  • Auf Mobilgeräten wirkt sich die Eigenschaft oft auch auf die Autokorrektur aus. Zusätzlich helfen autocorrect und autocapitalize.
  • Kompatibilität: wird von allen modernen Browsern unterstützt. Welche Elemente standardmäßig geprüft werden, unterscheidet sich aber je nach Browser.