Start · Sprachen · JavaScript · Referenz · SpeechRecognitionErrorEvent.message

SpeechRecognitionErrorEvent.message

Eigenschaft

Nur lesbare Eigenschaft, die eine vom Browser gelieferte Textnachricht mit weiteren Details zu einem Spracherkennungsfehler enthält.

seit JavaScript Web Speech API – eingeschränkte Unterstützung (Chr Kategorie: webapi

Signatur

SpeechRecognitionErrorEvent.message

Beschreibung

Die schreibgeschützte Eigenschaft message des SpeechRecognitionErrorEvent enthält eine Zeichenkette, die den aufgetretenen Fehler der Spracherkennung genauer beschreibt. Das Event wird beim error-Ereignis eines SpeechRecognition-Objekts ausgelöst.

Welche Art von Fehler aufgetreten ist, steht in der Eigenschaft error, z. B. "no-speech", "network" oder "not-allowed". message ergänzt diesen Code um eine Beschreibung, die man ins Protokoll schreiben oder beim Debuggen auswerten kann.

Laut Spezifikation ist der Inhalt von message nicht festgelegt und hängt vom Browser ab. In der Praxis ist die Zeichenkette oft leer. Für die Programmlogik und für Fehlertexte an Nutzer sollte deshalb immer error ausgewertet werden. message eignet sich nur als zusätzliche Information.

Rückgabewert

Typ
string
Beschreibung
Eine vom Browser festgelegte Fehlerbeschreibung. Ist keine vorhanden, wird eine leere Zeichenkette "" zurückgegeben.

Beispiele

Fehlermeldung per addEventListener protokollieren

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.lang = 'de-DE';

recognition.addEventListener('error', (event) => {
  // error = Fehlercode, message = optionale Beschreibung
  console.warn(`Fehler: ${event.error}`, event.message || '(keine Details)');
});

recognition.start();
Fehler: no-speech (keine Details)

Fehlertext für Nutzer mit Rückgriff auf message (onerror)

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();

const texte = {
  'no-speech': 'Es wurde keine Sprache erkannt.',
  'audio-capture': 'Kein Mikrofon gefunden.',
  'not-allowed': 'Der Zugriff auf das Mikrofon wurde verweigert.',
  'network': 'Netzwerkfehler bei der Spracherkennung.'
};

recognition.onerror = (event) => {
  const text = texte[event.error] ?? `Unbekannter Fehler: ${event.message || event.error}`;
  document.querySelector('#status').textContent = text;
};

recognition.start();

Fehler zur Auswertung an den Server senden

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();

recognition.addEventListener('error', async (event) => {
  await fetch('/api/log', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      code: event.error,
      message: event.message,
      userAgent: navigator.userAgent,
      zeit: new Date().toISOString()
    })
  });
});

recognition.start();

// Wichtig · Fallstricke

  • Oft leer: Chrome und Safari füllen message meistens nicht. Code sollte deshalb nie von ihrem Inhalt abhängen. Werte stattdessen event.error aus.
  • Nicht standardisiert: Der Text unterscheidet sich je nach Browser und Sprache. Vergleiche ihn deshalb nicht direkt mit festen Zeichenketten.
  • Schreibgeschützt: Eine Zuweisung an message hat keine Wirkung. Im strikten Modus wird sie ohne Fehler ignoriert, weil es sich um einen Getter ohne Setter handelt.
  • Kompatibilität: Die Web Speech API funktioniert in Chromium-Browsern nur mit dem Präfix webkitSpeechRecognition. Safari unterstützt sie ab Version 14.1. Firefox unterstützt die Spracherkennung standardmäßig nicht. Frage die Unterstützung deshalb immer vorher ab.
  • Sicherheit: Gib message mit textContent aus, nicht mit innerHTML. Die Spracherkennung braucht einen sicheren Kontext (HTTPS) und die Freigabe des Mikrofons.