Vega Web App Accessibility Testing FAQ and Checklist

Testing accessibility for Vega Web Apps involves setting up assistive technologies, running through a verification checklist, and resolving common issues.

Vega Web Apps should follow WCAG 2.2 AA and WAI-ARIA guidelines. For implementation guidance on semantic HTML, ARIA attributes, focus management, and typography, see the official Accessibility Guide for Web Apps.

FAQ

Setup

How do I enable VoiceView?

Any of the following methods:

  • Navigate to Accessibility Settings → Toggle VoiceView ON
  • Hold down the Back and Menu keys on the Fire TV remote for 2 seconds
  • Via shell: vega device shell then run vdcm set "com.amazon.devconf/system/accessibility/VoiceViewEnabled" "ENABLED"

How do I disable VoiceView?

Navigate to Accessibility Settings → Toggle VoiceView OFF.

How do I hide elements from VoiceView?

Use aria-hidden="true" on purely decorative content, duplicated content, or offscreen/collapsed content. See MDN docs for details.

How do I label an element when the default accessible name is missing?

<button aria-label="Close dialog">X</button>

How do I announce dynamic content changes?

Use aria-live:

<div aria-live="polite" id="status">
  <!-- Text inserted here will be announced -->
</div>

See MDN aria-live docs for more details.

What testing tools are recommended?

For validating markup before deploying, use browser-based tools:

How do I test on the device?

Enable VoiceView on a physical Fire TV device, navigate with the remote, and verify announcements match expectations. VoiceView can also be enabled on the Vega Virtual Device via shell, but for the most accurate results, test on physical hardware. Use the testing checklist below as your guide.

Troubleshooting

Why are no items spoken when VoiceView is enabled?

Check your accessibility markup. Elements need either semantic HTML tags (<button>, <a>) or appropriate ARIA roles and labels to be recognized by VoiceView.

Why do UI elements read as “button” with no description?

The elements have an accessibility role set as “button” but no accessibility label or description. Add aria-label or visible text content.

Why do UI elements read as something different from what’s visually displayed?

The app isn’t properly setting the focused element from the accessibility perspective. Ensure the element receiving focus matches what’s visually highlighted.

Why is a title or UI element spoken more than once?

Duplicate accessibility announcements. Check for redundant aria-label, aria-describedby, or duplicate text nodes in the DOM.

Why is there continuous reading during video playback?

Incorrect use of labels is placing focus on content details instead of the video player component. Ensure focus is not placed on elements that aren’t visually focused during playback.

Why isn’t audio ducking working?

When VoiceView speaks during video playback, VoiceView speech should get priority and video audio should duck. If this isn’t happening, verify your media player is properly integrated with the platform audio focus system.

Testing checklist

The following are suggested minimum checks. Your app may require additional testing based on its specific features.

Feature Test Case
VoiceView Enable and disable VoiceView via Accessibility Settings
Navigate through app with VoiceView enabled — verify voice prompts for each UI element
Landing on a new screen: header, description, usage hints, orientation text, and focused item are spoken
Navigate using DPAD/Select to all actionable elements — focused element is spoken in full
Focused element speaks usage hints, orientation text, described-by, and static text after ~0.5s pause
Images and icons have descriptive alt text that VoiceView reads
Review mode (hold Menu 2s with VoiceView on): linear navigate all text and controls with Left/Right, change granularity with Up/Down
Accessibility gestures work (e.g., double-click to activate)
VoiceView and Alexa voices do not speak over each other — VoiceView volume reduces or pauses
Transitional/loading pages are announced with ETA when device is unresponsive >5 seconds
Magnifier Enable and disable magnification via Accessibility Settings
Zoom in/out on all screens — layout is preserved and scroll works
Navigate using DPAD/Select — magnifier follows focus
Explore using Menu+DPAD to pan all text and controls
1.5x zoom on first use, then preserves user preference
Captions/Subtitles Enable and disable subtitles in player and global settings
User can set caption styles (CC Settings in local player and global setting)
Subtitles are accurate and in sync with audio
Subtitle settings persist across sessions
Focus/Visual Indicator Every actionable element has a visible focus ring
Consistent, logical focus order (top-to-bottom, left-to-right)
Focus not lost after user action (e.g., modal close returns focus to expected element)
Navigation All areas accessible via remote (DPAD, Back, Select) without touch input
No trap zones — can navigate away from all areas (modals, menus, carousels)
Latency Accessibility metadata loads as part of standard payload
User is informed content is loading (visual and audible)
User is not blocked if connection times out or goes offline

Last updated: May 14, 2026