tts

tts is not actually a declarable permission. The chrome.tts API has been permissionless since Chrome 33 — extensions just call it directly without listing anything in the permissions array. Declaring "tts" in permissions will produce an "Unknown permission" warning when the extension is loaded.

This page documents the API for completeness because the chrome-stats permissions index lists it; for the actual declarable permission related to text-to-speech, see ttsEngine, which is for extensions that provide a speech engine rather than consume one.

What it does

  • Enables any extension to speak a given string of text aloud via chrome.tts.speak, with no permission declaration required.
  • Provides options to control aspects of the speech, such as the voice, language, rate, and pitch.
  • Allows the extension to get a list of available voices via chrome.tts.getVoices.
  • Provides events to monitor the status of the speech, such as when it starts and ends.

When to use it

This permission is for accessibility tools or any extension that needs to provide audio feedback.

Examples:

  • A "read aloud" extension that reads the content of a web page to the user.
  • An accessibility tool for visually impaired users.
  • A language-learning extension that speaks words or phrases.
  • An extension that gives spoken notifications.

Manifest Declaration

No "tts" permission entry is needed. A minimal manifest looks like this:

{
  "name": "My Read Aloud Extension",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "background.js"
  }
}

Security & Privacy

Why is it not risky?

This permission lets an extension convert text into spoken words, like having your computer read a webpage to you.

This is a very safe permission. The extension can only "speak," it cannot "listen" or access any of your personal data. The worst a malicious extension could do is be annoying by speaking at unexpected times.

API Usage Example

This example says "Hello, world!" when the user clicks the extension's icon. It also includes a function to list available voices.

// background.js

chrome.action.onClicked.addListener(() => {
  speakHelloWorld();
});

function speakHelloWorld() {
  chrome.tts.speak('Hello, world!', {
    lang: 'en-US',
    rate: 1.0
  }, () => {
    if (chrome.runtime.lastError) {
      console.error('TTS Error:', chrome.runtime.lastError.message);
    }
  });
}

// You can also get a list of available voices
async function logVoices() {
  const voices = await chrome.tts.getVoices();
  console.log('Available TTS voices:', voices);
}

logVoices();

Extensions with the tts permission

Here are some popular browser extensions that use the "tts" permission. To explore more, try our Advanced search.

Permission Metrics

Popularity

Security Risk


Usage by Platform