Skip to main content
🎉 A11y Issue Detection Agent is now live! Detect accessibility issues like a WCAG expert with AI. Try now!
No Result Found
Connect and get help from 7,000+ developers on our Discord community. Ask the CommunityAsk the Community

Auto-generate screen reader accessibility reports

Automatically generate comprehensive screen reader accessibility reports to help you understand how native screen readers interpret your app’s user interface.

Screen Reader Automation is currently in the Beta phase and is available on Android devices under the Ultimate plan. To get access, contact BrowserStack Support. For more details on the Ultimate plan, check the pricing page.

When conducting automated App Accessibility tests on your app, you can generate a screen reader accessibility report to evaluate how native screen readers interpret and navigate through your app’s user interface.

The report includes detailed insights such as the screen reader’s spoken output, the focus order of the UI elements, and relevant accessibility metadata. These insights help you identify and fix potential barriers for users who rely on screen readers or other assistive technologies.

Supported apps

You can generate screen reader accessibility reports for the following app types:

Platform File format Screen reader
Android .apk
.aab
TalkBack

How screen reader reports help

Screen reader reports improve your app’s accessibility by providing the following insights:

  • Automated report generation: Integrates seamlessly into your test automation runs, enabling continuous accessibility checks across builds.
  • Focus checks: Ensures that all relevant elements receive focus during screen reader navigation.
  • Spoken output checks: Verifies that the screen reader’s spoken output for each element is accurate and meaningful.
  • Reading order checks: Verifies that the screen reader follows a logical order when reading elements.
  • Accessibility metadata verification: Confirms that all UI elements expose correct labels, roles, and states to assistive technologies.

Generate a screen reader report on BrowserStack App Accessibility testing

To generate a screen reader report during an App Accessibility testing session:

To enable accessibility testing, set the accessibility capability to true in your test suite configuration file.

In the test suite configuration file, configure the screenReaderAutomation capability under accessibilityOptions to enable screen reader report generation:

  • Generate report: Set autoReport to true to enable report generation.
  • Enable linear navigation (optional): Set linearNavigation to true to traverse scrollable content. By default, this is disabled and the report captures elements visible in the initial viewport. Enabling this mode might result in longer test execution times. See Coverage modes for details.
  • Set linear navigation timeout (optional): Configure linearNavigationTimeout to control traversal time for screens with extensive scrollable content. See Linear navigation timeout for configuration options.

For example, depending on your test suite framework, include the following configuration:

...
accessibility: true                 # Enable accessibility testing.
accessibilityOptions:
  screenReaderAutomation:
    autoReport: true                # Enable report generation
    linearNavigation: true          # Optional: Enable linear navigation (default: false)
    linearNavigationTimeout: 300000 # Optional: Set timeout in ms (default: 300000)
...

BrowserStack still supports the legacy screenReaderAutomationReport: true format, but it does not support linear navigation mode. We recommend using the new screenReaderAutomation configuration to access the full capabilities of automated screen reader testing.

...
services: [
  ['browserstack', {
    ...
    accessibility: true,                 // Enable accessibility testing.
    accessibilityOptions: {
      screenReaderAutomation: {
        autoReport: true,                // Enable report generation
        linearNavigation: true,          // Optional: Enable linear navigation (default: false)
        linearNavigationTimeout: 300000  // Optional: Set timeout in ms (default: 300000)
      }
    }
    ...
  }]
]
...

BrowserStack still supports the legacy screenReaderAutomationReport: true format, but it does not support linear navigation mode. We recommend using the new screenReaderAutomation configuration to access the full capabilities of automated screen reader testing.

curl -u "USERNAME:ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/espresso/v2/build" \
-d '{
    "app": "bs://$app_id",
    "testSuite": "bs://$test_suite_id",
    "devices": ["Samsung S24-14.0", "Google Pixel 8-14.0", "Samsung S21-11.0"],
    "deviceLogs": true,
    "project": "$PROJECT_NAME",
    "accessibility": true,
    "accessibilityOptions": {
        "screenReaderAutomation": {
            "autoReport": true,
            "linearNavigation": true,
            "linearNavigationTimeout": 300000
        }
    }
}' \
-H "Content-Type: application/json"

BrowserStack still supports the legacy screenReaderAutomationReport: true format, but it does not support linear navigation mode. We recommend using the new screenReaderAutomation configuration to access the full capabilities of automated screen reader testing.

Run your App Accessibility test.

Generating screen reader accessibility reports operates independently from automated App Accessibility tests. Setting the screenReaderAutomation capability only generates reports on how screen readers interpret your app’s UI. To test your app for accessibility issues, see automated App Accessibility testing.

Coverage modes

Screen reader accessibility reports can be generated in two modes:

  • Standard mode (default): Captures elements visible in the initial viewport. This mode is ideal for quick accessibility checks in CI/CD pipelines, screens with minimal scrolling, and rapid iterative testing during development. Set linearNavigation: false or exclude the parameter to use standard mode.
  • Linear navigation mode: Captures the complete screen reader traversal path, including elements in scrollable containers, carousels, and off-screen content. This mode replicates the full experience of a screen reader user navigating through your app and provides complete coverage. Use this mode for comprehensive accessibility validation before release, screens with infinite scroll or long lists, and complete traversal verification matching real user experience. Set linearNavigation: true to enable linear navigation mode.

The following table compares the two modes to help you choose the right one for your testing requirements:

Aspect Standard mode Linear navigation mode
Coverage Elements visible in initial viewport only Complete traversal including scrollable content
Performance Faster test execution (~2-3 minutes per screen) Longer test execution time (varies based on content complexity and configured timeout)
Use case Quick accessibility checks for simple screens Comprehensive validation for complex scrollable UIs
Snapshots captured Single snapshot per screen Multiple snapshots per screen as content scrolls
Best for Screens with minimal scrolling Infinite scroll, carousels, long lists

Linear navigation timeout

The linearNavigationTimeout parameter controls the maximum time allowed for the screen reader automation to traverse and capture elements during a single linear navigation session. This applies only when linear navigation mode is enabled and is particularly important for screens with extensive scrollable content.

The total execution time for linear navigation may exceed the timeout value, as it includes additional processing overhead such as screenshot capture, element analysis, and report generation. The timeout specifically limits the active traversal phase.

Parameter Value
Default 5 minutes (300000 ms)
Minimum 5 minutes (300000 ms)

If you set a value below this limit, the system displays a warning and automatically adjusts the value to 5 minutes.
Maximum 8 minutes (480000 ms)

If you set a value above this limit, the system displays a warning and automatically adjusts the value to 8 minutes.

Screen reader report checks

Screen reader automation performs the following accessibility checks on your app’s user interface:

Check Description
Focus order for interactive elements Ensure interactive elements are focused by the screen reader
Focus order for non-interactive elements Ensure non-interactive elements are focused by the screen reader
Meaningful reading order Reading sequence follows a logical visual order
Meaningful spoken output Spoken text is meaningful for focused elements
Meaningful spoken output for images Images have meaningful spoken text
Duplicate state info State information is not repeated in spoken output
Duplicate type info Element type is not repeated in spoken output
Missing visible label Visible label is present in spoken output

The “Meaningful reading order” check is not available when linear navigation mode is enabled. All other checks are performed in both standard and linear navigation modes.

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle