HbbTV 2.0.4 explained
Summary
HbbTV version 2.0.4 has 3 headline features:
- Accessibility framework: accessing accessibility features provided by the underlying television device (TV or STB)
- DVB-I integration: supporting live/linear services via broadband using DVB-I and DVB-DASH
- Voice assistant integration: integration of applications with voice assistants such as Alexa and Google Assistant
It also includes some smaller changes:
- Smaller additional features
- Deprecations
- Errata
Accessibility framework
Many TV operating systems provide accessibility features (typical for people with hearing loss or visual impairments) that the viewers can turn on/off and configure, these can include:
- Subtitles
- User interface magnification
- High contrast UI
- Screen readers
- Screen reader integrates with W3C ARIA (“Accessible Rich Internet Applications”)
- Audio feedback on user actions
- User preferences for stream selection for
- Audio description
- Dialogue enhancement
- In-vision signing
With 2.0.4, HbbTV enables applications to:
- Query which accessibility features are supported
- Access user settings for a supported feature
Applications can also request a feature be suppressed, if it thinks it can do a better job in its context.
For more details, please view the webinar presentation on accessibility solutions from September 2022
HbbTV doesn’t make any particular accessibility feature mandatory in devices, it remains the choice of the manufacturer, platform/operator or TV OS provider what functionality they provide. However, the framework itself is mandatory so applications can be aware with what functionality is available and interact with it.
DVB-I integration
The goal of this integration is for most (ideally all) HbbTV broadcast related applications to be able to run in connection with a DVB-I broadband-delivered service with as few changes as possible (ideally none).
Key features include:
- How a video/broadcast object can show DASH delivered content
- How DVB-I services and service instances appear in the HbbTV ChannelList
- How HbbTV applications are started and stopped as different DVB-I services are selected
- How DASH MPD and inband events map to the DSMCC stream event API
- Support for both DVB-I “application controlling media presentation” and “application in parallel with media”
Some HbbTV features cannot be used in conjunction with DVB-I but it is hoped few applications use them. If you have difficulty with application running in a DVB-I environment please do raise them through the developer forum.
Voice assistant integration
These new features enable use of voice input to HbbTV applications for selected media playback. This is to support voice commands such as: “play”, “pause”, “resume”, “skip ahead X minutes”, “fast forward”, “reverse”, “search”.
Applications have to indicate they are “voice ready”, they need to tell the device when it’s playing media & which voice inputs are supported for that media at that time. They can also provide metadata about media being played.
In addition, the following are supported:
- Speech to text supported as a text entry method for all apps
- Standard HbbTV remote control events shall be generated for “voice ready” apps
Support for a voice assistant is not mandatory. Availability and choice of voice assistant is left to the device manufacturer or TV OS provider.
Accessibility and voice APIs
A new API has been designed for use for accessibility and voice APIs.
This is not a conventional Javascript API it is JSON-RPC messages sent and received via websockets. It follows the same model as ATSC3 APIs. Applications discover the URL for websocket server from the XML capabilities.
Smaller additions
The smaller additions to the specification include:
- Audio mixing enhancements: mixing between broadcast audio and audio clips via Web Audio API becomes required
- Allowing analytics reporting on exit from an HbbTV app: support for W3C Beacon API
- Web platform update: update from alignment with 2018 desktop browsers to alignment with 2021 desktop browsers
- Proper support for 1920×1080 graphics
- 2.0.3 has partial support for 1920×1080 graphics – coordinate space is always 1280×720 even if underlying graphics are 1920×1080
- 2.0.4 permits coordinate spaces of 1920×1080 and higher
- App signals what coordinate spaces it can support
Deprecations
Deprecation is not removing from the specification, it is announcing that something will be removed in a later version. Deprecated features remain mandatory until actually removed.
Deprecations in 2.0.4 include:
- Partial deprecation of A/V control object: properties on AVComponent which have no equivalent on HTML5 *Track
- Streaming with MPEG-2 TS as the system format: by implication, support for DVB subtitles in IP
- Tiresias resident font: there are no longer multiple suppliers for this
- Native on-screen keyboard: the evidence is that applications that need text input do this themselves
Errata
The 2.0.4 specification has 62 errata included in it, a mixture of editorial, clarifications, filling gaps and addressing inconsistencies, details on integration of web APIs.
Some more significant examples include
- Switching broadcast / broadband video not being noticeable (colour shift etc)
- Entropy and algorithms for the WebCrypto API
- Indication for video playback at speeds > 1.0
- CSS transforms on video elements
- Make IPv6 explicitly optional
- Improve specification for how W3C Page Visibility API is used