> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insito.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Accessibility

> How the Insito survey works with VoiceOver, TalkBack, large touch targets and reduced motion, and what to check in your own app.

Banks, insurers and healthcare apps have to be accessible. In the EU the
European Accessibility Act applies from June 2025. A survey shown inside your
app is part of your app, so both SDKs are built to work with screen readers
and system accessibility settings out of the box.

Applies to React Native SDK 0.4.0 and later, and Flutter SDK 0.4.0 and later.

## What the SDKs do

* **Screen readers.** Every control has a role, a label and a state:
  * NPS scores and rating stars are buttons that announce when they are
    selected. Score 0 and score 10 also read the anchor labels, for example
    "0 out of 10, Not at all likely".
  * Single choice options are radio buttons and multiple choice options are
    checkboxes. Both announce checked or not checked.
  * Question titles are headings. A required question reads "Required" after
    its text.
  * The close button has a label. The open-text counter reads as
    "12 of 500 characters".
* **Focus.** When the survey opens, the screen reader announces it and moves
  focus into the survey. After **Next**, focus moves to the new question. While
  the survey is open, your app's content behind it is hidden from the screen
  reader.
* **Touch targets.** Every control is at least 48 × 48 dp. On phones the
  11 NPS buttons wrap into two rows (0–5 and 6–10) so they can stay that size.
  Long rating scales wrap the same way.
* **Reduced motion.** With Reduce Motion on (iOS) or animations removed
  (Android), the survey appears and changes step without animating.
* **Dismiss gestures.** In Flutter, the screen reader's escape gesture closes
  the survey (two-finger scrub on iOS, the dismiss action on Android).

## Translating what screen readers say

The spoken text uses the same label system as the buttons. Set it per language
in [Dashboard → Labels](https://docs.insito.app/dashboard/labels.md) under **Screen reader**, or in code
with `init()` labels. Insito ships starter translations for every supported
language. See the label keys for
[React Native](https://docs.insito.app/sdk/react-native/labels.md#screen-reader-labels) and
[Flutter](https://docs.insito.app/sdk/flutter/labels.md#screen-reader-labels).

## What to check in your app

* **Brand Kit colours.** The SDK uses the colours you choose. Keep text
  readable against its background (WCAG asks for a contrast ratio of at least
  4.5:1 for normal text), especially button text on your primary colour.
* **Question text.** Write questions that make sense when read aloud, and avoid
  using emoji or images as the only way to convey meaning.
* **Test with a screen reader.** Turn on VoiceOver or TalkBack and complete a
  survey on a real device. Check that you can reach and answer every question,
  hear the selected state, and close the survey.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.