SpeechSynthesisVoice: default property

Baseline Widely available

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

The default read-only property of the SpeechSynthesisVoice interface returns a boolean value indicating whether the voice is the default voice for the current app (true), or not (false.)

Note: For some devices, it might be the default voice for the voice's language. The spec is not very clear on which it should be, so some implementations may differ.


A boolean value.


for (let i = 0; i < voices.length; i++) {
  const option = document.createElement("option");
  option.textContent = `${voices[i].name} (${voices[i].lang})`;

  if (voices[i].default) {
    option.textContent += " — DEFAULT";

  option.setAttribute("data-lang", voices[i].lang);
  option.setAttribute("data-name", voices[i].name);


Web Speech API
# dom-speechsynthesisvoice-default

Browser compatibility

BCD tables only load in the browser

See also