Core Accessibility features
Titan OS provides the following features for enhancing accessibility:Text-to-Speech (TTS)
Converts on-screen text into spoken audio, enabling navigation for visually impaired users. In the Titan OS ecosystem, the implementation strategy depends on the device brand:- Philips Devices: Integration though Titan SDK. The application must explicitly invoke the Titan SDK’s startSpeaking() function to trigger speech.
- JVC Devices: Integration is Native. The device uses an automatic screen reader that interprets standard WAI-ARIA attributes (e.g., aria-label, role). Developers should rely on standard web accessibility practices rather than SDK methods for these devices.
Text Magnification (TM)
Text Magnification (TM) allows users to increase font size and contrast for better readability. Unlike TTS, this feature is consistently managed through the Titan SDK across all devices. When a user enables magnification in the OS system settings, the SDK exposes this preference to your application. You are responsible for detecting this property and programmatically adjusting your UI’s text scaling to match the requested size.Getting Started
This section provides practical steps and code snippets to begin integrating accessibility features into your TitanOS application.Basic TTS and TM Setup using the Titan SDK
Before using TTS or TM, it’s essential to check if the feature is supported by the device and if the user has enabled it in the TV’s operating system settings. ThegetTTSSettings() function (and getTMSettings()) will return an enabled property indicating the user’s preference in the TV’s home screen settings.
- Checking Support & User Settings:
Programmatic Text-to-Speech Control
The Titan SDK’sstartSpeaking() function provides direct control over the TV’s speech output. It does not automatically read content from your DOM elements or ARIA attributes. As the developer, you are responsible for extracting the specific text you wish to be spoken and passing it as a string (or an array of strings) to this function.
For example, you might extract text from a focused element’s textContent, innerText, or its aria-label attribute.
- Initiating Speech:
- Example: Text-to-Speech: Basic demonstration of calling
startSpeaking. - Example: Text-to-Speech with Navigation: Shows extracting text from
aria-labeland using it with navigation.
- Stopping Speech:
TTS Implementation across device brands (Brand Check)
As mentioned, JVC devices utilize a native accessibility reader that automatically announces focused elements based on ARIA attributes. InvokingstartSpeaking() on these devices may result in conflicting audio or redundant speech. Conversely, Philips devices require the SDK to trigger speech.
To handle this, you should check the device brand during initialization and conditionally execute the TTS logic.
-
Implementation:
Note: As mentioned previously, this approach of detecting which device you’re running in depends on which devices your app is published. If your app is only on JVC devices, you should use the automatic Screen Reader. If it’s only published on Philips devices, only the SDK is needed. If it’s published on both devices, you will need this device check.
Responding to User Preferences
Users can enable or disable accessibility features from the TitanOS home screen settings. Your application should listen for these changes and adapt its behavior accordingly.- Monitoring Accessibility Settings:
Testing Your Accessible App
Thorough testing is vital to ensure your app is truly accessible.- Manual Testing with Remote Control:
- Navigate your entire application using only the TV remote’s D-Pad (directional buttons) and the OK/Enter button.
- Ensure every interactive element (buttons, links, inputs) is reachable and highlightable.
- Verify that when the Accessibility Reader is enabled, all relevant elements are announced correctly as focus moves.
- Test dynamic content updates (e.g., loading messages, form errors) to ensure they are spoken.
- Live Testing on TV:
- Test directly on Philips 2025 and JVC 2025 TV models with Accessibility settings (TTS, Text Magnification) enabled/disabled via the OS home screen. This provides the most accurate user experience.
Real-World Examples & Resources
To see these features in action and understand more about the integration, explore these examples on GitHub:- Example: Text-to-Speech with Navigation: A fake carousel of movies with TTS speaking the values from the ‘aria-label’.
- Example: Text-to-Speech: A fundamental example of using
startSpeaking. - Example: Text-to-Speech with text content: Shows TTS with a text extracted from the text content.
- Example: Text Magnification: Applies text magnification to labels`.