1## 3.10\. Accessibility
2
3Android provides an accessibility layer that helps users with disabilities to
4navigate their devices more easily. In addition, Android provides platform APIs
5that enable accessibility service implementations to receive callbacks for user
6and system events and generate alternate feedback mechanisms, such as
7text-to-speech, haptic feedback, and trackball/d-pad navigation.
8
9If device implementations support third-party accessibility services, they:
10
11*   [C-1-1] MUST provide an implementation of the Android accessibility
12    framework as described in the [accessibility APIs](
13    http://developer.android.com/reference/android/view/accessibility/package-summary.html)
14    SDK documentation.
15*   [C-1-2] MUST generate accessibility events and deliver the appropriate
16    `AccessibilityEvent` to all registered [`AccessibilityService`](
17    http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html)
18    implementations as documented in the SDK.
19*   [C-1-3] MUST honor the `android.settings.ACCESSIBILITY_SETTINGS` intent to
20    provide a user-accessible mechanism to enable and disable the third-party
21    accessibility services alongside the preloaded accessibility services.
22*   [C-1-4] MUST add a button in the system's navigation bar allowing the user
23    to control the accessibility service when the enabled accessibility services
24    declare the [`AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON`](
25    https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html#FLAG%5FREQUEST%5FACCESSIBILITY%5FBUTTON)
26    . Note that for device implementations with no system navigation bar, this
27    requirement is not applicable, but device implementations SHOULD provide a
28    user affordance to control these accessibility services.
29
30
31If device implementations include preloaded accessibility services, they:
32
33*   [C-2-1] MUST implement these preloaded accessibility services as [Direct Boot Aware](
34    https://developer.android.com/reference/android/content/pm/ComponentInfo.html#directBootAware)
35    apps when the data storage is encrypted with File Based Encryption (FBE).
36*   SHOULD provide a mechanism in the out-of-box setup flow for users to enable
37    relevant accessibility services, as well as options to adjust the font size,
38    display size and magnification gestures.
39