ADA & Accessibility Support (Android)

Prev Next

Accessibility support in the Android mobile experience is always enabled. There is no separate accessibility mode.

This guide describes what is available for TalkBack and screen-reader users across browsing, search, account flows, schedules, TV-provider linking, and video playback.

1. Global page accessibility

Headings

  • A screen-level heading is available for assistive technology where implemented (for example page titles and hero titles such as Presidents Cup - Day 1 or WWE Friday Night SmackDown).
  • Tray and section titles can use clear heading semantics (for example Featured Networks, Live & Upcoming, Featured Sports, Watch For Free).

Visible focus and selection

  • Interactive controls show a clear selected state (for example the Home or Live tab highlight, or a white outline on a focused program card).
  • Bottom tab bar items expose selected vs unselected state to TalkBack via Compose selected semantics and Role.Tab.

Image
Figure 1. Home hero with TalkBack focus on the featured event (Presidents Cup), linked provider branding, Event Details CTA, Featured Networks, and selected Home tab.

Image
Figure 2. TalkBack focus on the Event Details CTA.

Accessible names and roles

  • Icon-only and text-light controls have accessible names (for example Search, Profile, Link Provider, Play, Close, Settings).
  • Custom controls use appropriate roles such as Button, Tab, Switch, heading, and dialog semantics where implemented.
  • Decorative loaders and redundant visuals are removed from the accessibility tree so they are not announced as meaningful images.

2. Images (content descriptions)

  • Informative images use descriptive contentDescription values (logos, content titles, provider names, channel logos).
  • Decorative or redundant images use contentDescription = null or clearAndSetSemantics {} when a parent control already has a full accessible name, so TalkBack is not given duplicate announcements.

Image
Figure 3. Shows & Movies / Networks — TalkBack focus on a network tile (for example CNBC); content posters expose titles to accessibility services.


3. TalkBack / Compose semantics (catalog)

Naming and description

Android / Compose semantics Use
contentDescription Accessible names on icon buttons, tiles, logos, providers, search, and actions
Visible text Primary accessible text for standard Text and labeled controls
stateDescription Toggle / expand-collapse state when needed (for example video description Expanded / Collapsed)
paneTitle Identifies a new window-like surface when applicable

State and relationship

Pattern Use
selected Tab bar destinations and search category filters
Expanded / Collapsed Date dropdowns, season selectors, and Episodes panel
On / Off (via Mute / Unmute labels) Volume and caption-related controls
Selected / Not Selected Caption / audio / quality options and search filters
liveRegion (polite) Live updates (search result counts, TVE provider search counts)
Hidden / clearAndSetSemantics Decorative visuals when a parent label already conveys meaning
Role.Button / Role.Tab / Role.Switch / dialog Interactive chrome, tabs, parental control, settings modal

Patterns commonly used

Pattern Use
Button Tiles, CTAs, player controls, account rows, provider tiles
Heading Titles and section headings (heading() / accessibilityHeading)
Tab Bottom navigation destinations with selected state
SeekBar + RangeInfo Playback slider and volume slider (TalkBack volume keys remap to seek / volume)
Static / merged text Metadata rows that should be read as one focusable item

4. TalkBack gestures and focus

Gestures

Gesture Behavior
Swipe right / left Move through controls in the accessibility traversal order
Double-tap Activate buttons, tiles, menus, and similar controls
Explore by touch Move focus by dragging a finger across the screen
Volume up / down (on seek / volume) Change playback position (±10 seconds) or volume when those SeekBars are focused

Focus management

  • Player chrome remains visible while TalkBack is running (hideAfterTimeOut(0)) so controls stay reachable.
  • Settings modal is announced as a dialog; outside chrome is hidden from the accessibility tree while open, and focus is held on the dialog.
  • Search and TVE provider flows announce live result counts when TalkBack is running.

Areas with TalkBack support

Header and logo, Link Provider, search, navigation and profile actions, trays and carousels, schedule tiles, program guide date selector and program tiles, TV-provider selection, settings and account actions, watchlist / like / share, and player controls / captions / episodes.

Image
Figure 4. Content trays with TalkBack focus on the Featured Networks heading; Live & Upcoming and Featured Sports below; Home tab selected.


5. Accessibility by area

Header and navigation

  • Logo ({APP_NAME} Logo), Link Provider, and profile / account controls are labeled and TalkBack-operable.
  • Bottom tab bar items (Home, Browse, USA Sports, Live, Search, and other CMS-driven tabs) include accessible names and expose selected state.
  • When a TV provider is linked, provider branding (for example optimum.tv) can appear in the header in place of Link Provider.

Image
Figure 5. Bottom navigation — TalkBack focus on the Home tab (selected state).

Image
Figure 6. Bottom navigation — TalkBack focus on the Browse tab.

Image
Figure 7. Bottom navigation — TalkBack focus on the USA Sports tab.

Image
Figure 8. Bottom navigation — TalkBack focus on the Live tab.

Image
Figure 9. Bottom navigation — TalkBack focus on the Search tab.

Image
Figure 10. Linked provider branding (optimum.tv) in the header with TalkBack focus.

Image
Figure 11. Account menu with TalkBack focus on Account Settings; linked provider branding in the header.

Search

  • Back, search field, clear (Clear search), and search icon (Search View) actions are labeled.
  • Category filters expose selected / unselected state (for example Selected, Top Results, Button / Not Selected, …, Button. Double tap to activate.).
  • Result rows are TalkBack-activable and group into a focusable item whose accessible name is the result title.
  • Result counts are announced live (for example Search results for '{query}': N item(s) found).

Image
Figure 12. Search for “anna” — Top Results filter selected, result row focused (Anna Pigeon), clear control, and linked provider branding.

Home, trays, and carousels

  • Carousels and trays support TalkBack labeling (including headings where implemented).
  • Tray items and primary CTAs (for example Watch Now, Event Details) have accessible names.
  • Watchlist, like, and share actions are TalkBack-operable where offered.
  • Live / upcoming badges, air times, and related metadata are included in tile speech where implemented.

Image
Figure 13. Home hero — TalkBack focus on WWE Friday Night SmackDown block with rating, description, and Play All CTA.

Schedule and live listings

  • Schedule tiles expose program title, time, and live/upcoming status where implemented.
  • Decorative tile visuals can be hidden from the accessibility tree to avoid duplicate speech.
  • Tiles and related actions are TalkBack-operable.

Image
Figure 14. Live & Upcoming — TalkBack focus on the section heading.

Image
Figure 15. Live & Upcoming — TalkBack focus on a schedule tile (title, time, and status available to TalkBack).

Featured sports

  • Featured Sports items expose a meaningful accessible name and available action.

Image
Figure 16. Featured Sports — TalkBack focus on the section heading.

Image
Figure 17. Featured Sports — TalkBack focus on a tray item (for example NASCAR).

Browse, USA Sports, Live, and loading states

  • These destinations are available from the bottom navigation.
  • Loading / skeleton placeholders are not announced as meaningful content.
  • Once content is loaded, items expose accessible titles and actions.
  • Important dynamic status elsewhere (for example search and TVE provider result counts) uses polite live-region announcements.

Image
Figure 18. Browse — loading / skeleton placeholders stay out of the accessibility tree; TalkBack focus on the Browse tab.

Image
Figure 19. USA Sports — loading / skeleton placeholders stay out of the accessibility tree; TalkBack focus on the USA Sports tab.

Image
Figure 20. Live — loading / skeleton placeholders stay out of the accessibility tree; TalkBack focus on the Live tab.

Program guide (EPG)

  • Date dropdown is labeled (for example Selected Date: Today, Collapsed Dropdown).
  • Channel logos use the channel title as contentDescription.
  • Program tiles are TalkBack-activable (Play, Role.Button); a visible selection outline keeps assistive and sighted focus aligned on the current program.
  • Progress overlays are hidden from TalkBack when redundant.
  • Timeline labels use heading semantics where implemented.
  • Live tab remains selected while the On Now / schedule guide is open.

Image
Figure 21. Live / On Now program guide with date list focus (for example Sat 09/26), program cards, progress, and Live tab selected.

Video and show detail

  • Back control and provider branding in the header are labeled where shown.
  • Player / hero region and on-page metadata (title as heading, series/sport, description, rating, categories) are labeled for assistive technology.
  • Description expand / collapse exposes Video Description Expanded / Video Description Collapsed state where implemented.
  • Primary CTAs (for example Resume / Play) are labeled buttons.
  • Season selector is labeled (for example Current selected: Season 1, Collapsed Dropdown).
  • Watchlist (Add to watchlist) and Like / Liked actions are TalkBack-operable where offered.
  • Episode tiles are focusable buttons; rich episode titles on every tile continue to be improved across detail templates.

Image
Figure 22. Show detail — back, linked provider branding, TalkBack focus on title (heading), See More, Resume CTA, Season selector, and episode tray.

Account, forms, checkout, and settings

  • Account menu rows (for example Account Settings, Contact Us, App Settings, privacy links, Logout) are labeled buttons and TalkBack-operable.
  • Form fields and actions (including save, confirm, and related CTAs) have accessible names where implemented.
  • Password visibility toggles use Show password / Hide password.
  • Parental control exposes Parental Control enabled/disabled with Role.Switch.
  • Device rows can announce delete actions such as Delete {deviceType}, {address}.
  • Connected TV-provider branding uses the provider title as the accessible name.

TV provider login

  • Screen title Choose TV Provider (featured list) or Link Provider (full list) is marked as a heading.
  • Back control is labeled Back.
  • full list is an actionable control within the instructional text (Role.Button).
  • Search field uses placeholder Search; search icon is labeled Search View.
  • Provider tiles are buttons whose accessible name is the provider name.
  • Search announces how many providers were found (Search results for '{query}': N item(s) found).

Image
Figure 23. Choose TV Provider — back, title, instructional copy with full list, search, and provider grid tiles labeled by provider name.

Modals and overlays

  • Settings and related overlays keep a sensible TalkBack reading order where implemented.
  • The player Settings panel is announced as Settings, dialog; dismiss / close is labeled Close.
  • Bottom-sheet / alert overlays use heading semantics where implemented; TalkBack can disable dismiss-by-scrim so users do not lose context accidentally.
  • Dismiss / back controls are labeled.

6. Video player accessibility

Captions and subtitles

  • Closed captions / subtitles can be loaded, labeled, turned on or off, and selected from captions or settings panels.
  • The captions control is labeled Closed Captions and is announced as a Button (not a switch) for a clearer element type.
  • Caption / audio / quality options announce selection in context (for example Selected, {name}, Radio Button / Not Selected, {name}, Radio Button).

Controls and live status

Accessible player controls include:

Control (as shown) Spoken / accessible behavior
Player surface Video Player, Double Tap to activate player Controls
Close (X) Close
Title / metadata Labeled text; treated as an accessibility heading (for example show title and air date)
Picture-in-Picture Picture In Picture
Fullscreen Fullscreen (becomes Close when exiting landscape / fullscreen)
Rewind 10 / Forward 10 Rewind 10 Seconds / Forward 10 Seconds
Pause / Play Pause / Play
Playback slider Player Seekbar; runtime Seek bar {position} of {duration}; after seek announces Position {time}
Time display Spoken as elapsed of total (visible time text)
Volume: On Mute Button / Unmute Button; volume slider Volume {progress} of {max} with Increase / Decrease volume actions
Lock Screen Lock Screen / Unlock Screen; announced as Button
CC / OFF Closed Captions; announced as Button
Settings Settings Button; panel announced as Settings, dialog
Episodes Episode, Collapsed. Double tap to expand / Episode, Expanded. Double tap to collapse
Slow mo (where offered) Slow motion disabled / Slow motion enabled
LIVE Visible Live badge is focusable for assistive technology
Cast / provider logo Chromecast uses the system MediaRoute control; linked provider logo can expose the provider title

Live playback can show LIVE status. Seek controls expose progress values for assistive technology. While TalkBack is running, player controls do not auto-hide.

Image
Figure 24. Player controls — Close, title, Rewind 10 / Pause / Forward 10, slider and time, Volume, Lock Screen, Closed Captions, Settings, and Episodes.

Image
Figure 25. TalkBack focus on the Episodes control (expanded / collapsed announcement).

Image
Figure 26. Player Settings dialog — Settings heading with Close, Closed Captions / Video Quality / Audio Language categories, and caption options announced as Selected / Not Selected radio buttons.

TalkBack interaction notes

  • Play / Pause label tracks playback state.
  • Volume announces the action a double-tap performs (Mute Button / Unmute Button).
  • Rewind / Forward announce Rewind 10 Seconds / Forward 10 Seconds.
  • When the seek bar is focused, hardware volume keys seek by 10 seconds instead of changing speech volume.
  • Closed Captions and Lock Screen keep stable button roles for WCAG-style name / role / value clarity.
  • Episodes announces collapsed / expanded state and the next double-tap action.
  • During ads under TalkBack, non-ad chrome groups can be force-hidden while ad mute / play controls remain reachable.

7. Content interaction notes

Touch targets

Interactive elements should provide sufficiently large touch areas for reliable interaction. Android guidance recommends a minimum 48dp × 48dp touch target for interactive elements.

Image
Figure 27. Interactive controls (for example Event Details) sized for reliable TalkBack and touch interaction.


8. Accessibility testing

TalkBack

Primary flows to verify with TalkBack:

  • Home navigation and bottom tabs (selected state)
  • Hero content, Event Details, trays, and Watch Now
  • Search (filters, clear, result counts)
  • Browse / USA Sports / Live
  • Program guide date dropdown and program tiles
  • Choose TV Provider / Link Provider (search, full list, provider tiles)
  • Video / series detail (metadata, season selector, CTAs)
  • Video player (all chrome controls, captions, settings dialog, Episodes, seek / volume)
  • Account / settings (parental control, forms, connected provider)

Image
Figure 28. TalkBack exercised on primary Home / navigation flows.

Layout Inspector

Android Studio Layout Inspector can inspect Compose semantics for individual UI elements — content descriptions, roles, click actions, state, heading semantics, and accessibility focus.

Image
Figure 29. Layout Inspector — Compose component tree and attributes with semantics filter; live preview highlighting the Presidents Cup title text.

Image
Figure 30. Layout Inspector — Compose component tree with BottomBar Icon selected; attributes show semantics, and the live preview highlights the Home tab icon.


9. Coverage summary

Area Labels / semantics TalkBack Images Focus / selection Captions
Headings & global model Yes Yes — Yes —
Header / nav / search Yes Yes Logo / result labels Tab / filter selected —
Trays / carousels Yes Yes Mixed Yes —
Schedule Tile labels Yes Often hidden by design Yes —
Program guide Dropdown + Play action Yes Channel labels Card selection —
Detail pages Metadata + actions Yes Mixed Yes Page + player
Account / checkout Field & CTA labels Yes Where needed Yes —
TV provider / modals Names + search Live counts Provider names Yes —
Video player Control & time labels Gestures + keep-visible UI Episode / thumb Custom order / dialog Yes

10. Summary of accessibility themes

  1. Accessible names — labels on icon and custom controls
  2. Image text alternatives — descriptive labels for informative images; tree exclusion for decorative / redundant images
  3. TalkBack support — swipe, double-tap, explore-by-touch, and SeekBar key remapping
  4. Focus clarity — selected tabs, program-card outlines, player reading order, and keep-visible player chrome
  5. State disclosure — expanded, selected, mute/unmute, and related accessibility values
  6. Rich screen-reader copy — especially search / TVE live counts and player control labels
  7. Player media accessibility — captions, labeled controls, spoken time / seek position, live status, Episodes panel, and accessible settings

11. Out of scope for this document

  • Web / browser and Apple platforms (see companion ADA guides)
  • Formal legal certification or WCAG / Play Store Accessibility claims
  • Accessibility behavior of third-party SDKs or OS components outside the application's control (for example system Chromecast MediaRoute announcements)

12. Closing note

Accessibility support combines screen-level improvements (navigation, labeling, TalkBack access, and selection state) with video player support (captions, control labels, spoken time, keep-visible chrome, and in-player panels). Together, these make core browse, search, account, schedule, TV-provider, and playback journeys usable with TalkBack and Android assistive technologies.