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
I am making this call in order to attempt to have my web app speak text in support of TTS.
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.
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. To use ARIA tag in your app, you should set the supportsAudioGuidance property to true in the appinfo.json. Thank you.
So I need to set
"accessibility": {
"supportsAudioGuidance": true
}
After that, how do I fetch the value from the device?
Please refer to WAI-ARIA and find more information on Google. Thank you.
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?
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.
- 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:
Device Name: webOS TV UQ7590PUB
Model: 43UQ7590PUB
Serial Number: 309RMWV6X169
webOS TV Version: 7.4-2804 (mullet-meru)
Please share your sample app at developer@lge.com. Thank you.
I figured out a solution so we can close this out.
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?
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().
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. Thank you.