SpeechSynthesisErrorEvent: error property
=========================================

 The **`error`** property of the
 `SpeechSynthesisErrorEvent` interface returns an error code indicating what has gone wrong with a speech synthesis attempt.

Value
-----

A string containing the error reason. Possible values are:

`canceled`

 A `SpeechSynthesis.cancel` method call caused the
 `SpeechSynthesisUtterance` to be removed from the queue before it had
 begun being spoken.


`interrupted`

 A `SpeechSynthesis.cancel` method call caused the
 `SpeechSynthesisUtterance` to be interrupted after it had begun being
 spoken and before it completed.


`audio-busy`

 The operation couldn't be completed at this time because the user-agent couldn't
 access the audio output device (for example, the user may need to correct this by
 closing another application.)


`audio-hardware`

 The operation couldn't be completed at this time because the user-agent couldn't
 identify an audio output device (for example, the user may need to connect a speaker
 or configure system settings.)


`network`

 The operation couldn't be completed at this time because some required network
 communication failed.


`synthesis-unavailable`

 The operation couldn't be completed at this time because no synthesis engine was
 available (For example, the user may need to install or configure a synthesis engine.)


`synthesis-failed`

The operation failed because the synthesis engine raised an error.

`language-unavailable`

 No appropriate voice was available for the language set in
 `SpeechSynthesisUtterance.lang`. You can use the `window.speechSynthesis.getVoices()` method to determine which voices and languages are supported in the user's browser.


`voice-unavailable`

The voice set in `SpeechSynthesisUtterance.voice` was not available.

`text-too-long`

 The contents of the `SpeechSynthesisUtterance.text` attribute was too
 long to synthesize.


`invalid-argument`

 The content of the `SpeechSynthesisUtterance.rate`,
 `SpeechSynthesisUtterance.pitch` or
 `SpeechSynthesisUtterance.volume` property was not valid.


`not-allowed`

The operation's start was not allowed.

Examples
--------


```js
const synth = window.speechSynthesis;

const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");

const voices = synth.getVoices();

// ...

inputForm.onsubmit = (event) => {
  event.preventDefault();

  const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
  const selectedOption =
    voiceSelect.selectedOptions[0].getAttribute("data-name");
  for (let i = 0; i < voices.length; i++) {
    if (voices[i].name === selectedOption) {
      utterThis.voice = voices[i];
    }
  }

  synth.speak(utterThis);

  utterThis.onerror = (event) => {
    console.error(
      `An error has occurred with the speech synthesis: ${event.error}`,
    );
  };

  inputTxt.blur();
};
```

Specifications
--------------

| Specification |
| --- |
| Web Speech API # dom-speechsynthesiserrorevent-error |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Web Speech API