# webOS Text To Speech

**URL:** <https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168>\
**Category:** Web App Development\
**Created:** [August 21, 2024, 8:45pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168 "2024-08-21T20:45:09Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [August 21, 2024, 8:45pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/1 "2024-08-21T20:45:09Z")

</div>

I am looking to implement TTS on my web app. It appears that both aria-live regions and the SpeechSynthesis API are not supported by webOS.

I found these docs which suggest using the webOS TTS service. [com.webos.service.tts | webOS Open Source Edition](https://www.webosose.org/docs/reference/ls2-api/com-webos-service-tts/#speak)

I am making this call in order to attempt to have my web app speak text in support of TTS.

```auto
const apiCall: Promise<string> = new Promise((resolve) => {
    window.webOS.service.request('luna://com.webos.service.tts', {
      method: 'speak',
      onFailure() {
        resolve('');
      },
      onSuccess(response: any) {
        resolve(response);
      },
      parameters: {
        text,
      },
    });
  });

```

It appears that the device is speaking some text when I first open the app, but as I navigate around, it does not continue to speak the focused text.

---

<div class="post-metadata">

**Author:** ![narae0.kim](https://avatars.discourse-cdn.com/v4/letter/n/87869e/32.png) [@narae0.kim](https://forum.webostv.developer.lge.com/u/narae0.kim)\
**Post date:** [August 22, 2024, 7:01am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/2 "2024-08-22T07:01:09Z")

</div>

We do not guarantee the compatibility of webOS TV apps with webOS OSE resources. For webOS TV apps, please use webOS TV resources in this website only. In this case, please try [WAI-ARIA](https://www.w3.org/TR/wai-aria). To use ARIA tag in your app, you should set the [supportsAudioGuidance](https://webostv.developer.lge.com/develop/references/appinfo-json#accessibility) property to true in the appinfo.json. Thank you.

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [September 11, 2024, 5:29pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/3 "2024-09-11T17:29:03Z")

</div>

So I need to set

```auto
"accessibility": {
      "supportsAudioGuidance": true
}

```

After that, how do I fetch the value from the device?

---

<div class="post-metadata">

**Author:** ![narae0.kim](https://avatars.discourse-cdn.com/v4/letter/n/87869e/32.png) [@narae0.kim](https://forum.webostv.developer.lge.com/u/narae0.kim)\
**Post date:** [September 12, 2024, 2:20am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/4 "2024-09-12T02:20:08Z")

</div>

Please refer to [WAI-ARIA](https://www.w3.org/TR/wai-aria) and find more information on Google. Thank you.

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [September 12, 2024, 3:22pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/5 "2024-09-12T15:22:55Z")

</div>

I have WAI-ARIA already set up in my application. I turn on audio guidance on my LG TV, and it still doesn’t speak the text. Why would this be?

---

<div class="post-metadata">

**Author:** ![narae0.kim](https://avatars.discourse-cdn.com/v4/letter/n/87869e/32.png) [@narae0.kim](https://forum.webostv.developer.lge.com/u/narae0.kim)\
**Post date:** [September 23, 2024, 7:49am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/6 "2024-09-23T07:49:13Z")

</div>

The ARIA tag is supported on webOS TV 3.0 or higher. Please check your webOS TV version. If the problem persists, please share your sample app and the following information at [developer@lge.com](mailto:developer@lge.com).

- TV model name: (You can check this in the Settings \> General \> About This TV menu.)
- TV software version:
- webOS TV version: (You can check this in the About This TV \> TV Information menu.)
- Region:

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [September 25, 2024, 6:31pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/7 "2024-09-25T18:31:01Z")

</div>

Device Name: webOS TV UQ7590PUB

Model: 43UQ7590PUB

Serial Number: 309RMWV6X169

webOS TV Version: 7.4-2804 (mullet-meru)

---

<div class="post-metadata">

**Author:** ![narae0.kim](https://avatars.discourse-cdn.com/v4/letter/n/87869e/32.png) [@narae0.kim](https://forum.webostv.developer.lge.com/u/narae0.kim)\
**Post date:** [September 26, 2024, 1:49am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/8 "2024-09-26T01:49:41Z")

</div>

Please share your sample app at [developer@lge.com](mailto:developer@lge.com). Thank you.

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [September 26, 2024, 4:57pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/9 "2024-09-26T16:57:17Z")

</div>

I figured out a solution so we can close this out.

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [October 23, 2024, 6:13pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/10 "2024-10-23T18:13:02Z")

</div>

Which screen reader is used on webOS TV 3.0? JAWS, NVDA, VoiceOver, Talkback?

It appears that the webOS TV screen reader ignores aria-description. Is this correct?

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [October 23, 2024, 6:46pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/11 "2024-10-23T18:46:25Z")

</div>

And is there a way to completely override the default screen reader to read what is set in the aria-live region or what is passed to window.speechSynthesis.speak()?

The screen reader on webOS TV speaks completely different speech than the VoiceOver screen reader on a macbook, which honors the aria-live region and window.speechSynthesis.speak().

---

<div class="post-metadata">

**Author:** ![narae0.kim](https://avatars.discourse-cdn.com/v4/letter/n/87869e/32.png) [@narae0.kim](https://forum.webostv.developer.lge.com/u/narae0.kim)\
**Post date:** [October 25, 2024, 5:01am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/12 "2024-10-25T05:01:28Z")

</div>

webOS TV supports standard web APIs. Please follow the WAI-ARIA specs. And if the problem persists, please share a sample app that we can reproduce the issue and check the source code at [developer@lge.com](mailto:developer@lge.com). Thank you.

---

<div class="post-metadata">

**Author:** ![user619](https://avatars.discourse-cdn.com/v4/letter/u/3e96dc/32.png) [@user619](https://forum.webostv.developer.lge.com/u/user619)\
**Post date:** [January 15, 2025, 11:49am UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/13 "2025-01-15T11:49:30Z")

</div>

@max.cohen Hi, i’m facing the same issue. Can you describe how you fixed this one in your case?

---

<div class="post-metadata">

**Author:** ![max.cohen](https://avatars.discourse-cdn.com/v4/letter/m/85e7bf/32.png) [@max.cohen](https://forum.webostv.developer.lge.com/u/max.cohen)\
**Post date:** [January 21, 2025, 4:27pm UTC](https://forum.webostv.developer.lge.com/t/webos-text-to-speech/9168/14 "2025-01-21T16:27:33Z")

</div>

Hi @user619. As you can see, narae0.kim was very unhelpful and kept giving canned responses to my specific questions. While I’ve put my work on LG TVs aside for now, I’ve had success on other manufacturers TV using this in my base HTML file.

```auto
<html lang="en" aria-hidden="true">

```

The `aria-hidden="true"` disabled the default behavior and allowed me to build out my aria implementation in a way that suited my product’s requirements. No guarantees for LG though. Let me know if that works for you.
