Android accessibility code samples
Browse code samples to learn how to build more accessible Android apps.
- Accessibility action
Accessibility action on Android
Accessibility actions provide alternative ways for for users of assistive technologies to perform actions.
- Accessibility announcement
Accessibility announcement on Android
Users of assistive technologies should be made aware of important changes in content through accessibility announcements.
- Accessibility dialog
Accessibility dialog on Android
A dialog overlays the screen and offers one or more actions to proceed.
- Accessibility focus indicator
Accessibility focus indicator on Android
Users should know which element has focus when using a keyboard or assistive technology.
- Accessibility focus
Accessibility focus on Android
Sometimes you need to programmatically move the accessibility focus to a specific element.
- Accessibility focusability
Accessibility focusability on Android
An element should indicate whether it should be focusable by assistive technologies or not.
- Accessibility group
Accessibility group on Android
It is easier and quicker for users of assistive technologies to interact with grouped elements.
- Accessibility hint
Accessibility hint on Android
An accessibility hint helps users to understand what will happen after performing an action.
- Accessibility label
Accessibility label on Android
An accessibility label helps users of assistive technologies to identify elements on the screen.
- Accessibility language
Accessibility language on Android
When content is written in multiple languages, foreign words should ideally be indicated in their respective language.
- Accessibility link
Accessibility link on Android
Links should be accessible for users of assistive technologies.
- Accessibility live region
Accessibility live region on Android
A live region allows users of assistive technologies to receive updates whenever important information on the screen changes.
- Accessibility modal
Accessibility modal on Android
A modal overlays the screen with additional content.
- Accessibility name
Accessibility name on Android
The accessibility name indicates the name used for interface elements by assistive technologies.
- Accessibility order
Accessibility order on Android
Assistive technologies try to determine a logical accessibility order based on the placement and properties of the elements on the screen.
- Accessibility role
Accessibility role on Android
An accessibility role helps users of assistive technologies to understand the purpose of elements on the screen.
- Accessibility state
Accessibility state on Android
An accessibility state helps users of assistive technologies to understand the state of elements on the screen.
- Accessibility value
Accessibility value on Android
An accessibility value helps users of assistive technologies to understand the state of elements on the screen.
- Element focus change
Element focus change on Android
Whenever an element receives focus, it should not automatically trigger an event which changes context.
- Element identification
Element identification on Android
Functionality that is repeated on multiple screens should use consistent identification.
- Element position
Element position on Android
Components that are repeated on multiple screens should have a consistent position.
- Input cancellation
Input cancellation on Android
Users should be able to cancel accidental interaction.
- Input content type
Input content type on Android
Setting the content type for input fields helps user entering data.
- Input errors
Input errors on Android
Users should be notified when they make input errors.
- Input gestures
Input gestures on Android
Gesture activated functionality should also be available without the use of gestures.
- Input instructions
Input instructions on Android
When a label might not describe the requested input sufficiently, you should add additional instructions.
- Input keyboard type
Input keyboard type on Android
Setting the keyboard type for input fields helps user entering data.
- Input label
Input label on Android
Input fields should have labels so that users know what input data is expected.
- Input motion
Input motion on Android
Provide an alternative way for actions activated by motion, to allow everyone to use the functionality.
- Input predictable
Input predictable on Android
Whenever a user provides input, there should be no change of context.
- Keyboard order
Keyboard order on Android
By adjusting the keyboard order, you can provide a great experience for users that control their device using a hardware keyboard.
- Keyboard shortcuts
Keyboard shortcuts on Android
Most people operate their smartphones with touch, but some people use an external keyboard.
Linting on Android
Linting is the process of running a tool which analyzes your code for potential errors.
- Audio control
Audio control on Android
Users should be able to control audio whenever it plays automatically.
- Audio description
Audio description on Android
Videos should include audio description when important visual details are shown which you cannot hear.
- Live captions
Live captions on Android
Captions should be provided in real-time to enable users to understand what is being said in live videos.
Captions on Android
Captions should be provided to enable users to understand what is being said in videos.
Transcript on Android
Videos should contain a transcript to allow users to read what is shown in media, such as a video or podcast.
- Reduced animations
Reduced animations on Android
Content which conveys a sense of motion can be a barrier for users.
Contrast on Android
Apps should provide enough contrast between text and its background so that it can be read by people with moderately low vision.
- Dark mode
Dark mode on Android
Dark mode darkens background colours and provides a more comfortable viewing experience in low light.
- Frequent flashes
Frequent flashes on Android
Rapidly flashing images or views can cause seizures for some users.
- Descriptive headers
Descriptive headers on Android
Screens should have descriptive headers, this helps users find specific content and orient themselves within your app.
- Descriptive labels
Descriptive labels on Android
Screens should have descriptive labels, these help users recognize which purpose controls have.
- Screen orientation
Screen orientation on Android
Apps should adapt to the preferred display orientation of the user.
Reflow on Android
Content on the screen should reflow based on the users' preferences.
- Search functionality
Search functionality on Android
Users might have difficulty finding a specific screen.
- Skip content
Skip content on Android
It can be helpful for users to skip repeated blocks of content.
- Adjustable timing
Adjustable timing on Android
Everyone, including people with disabilities, should have adequate time to interact with your app.
- Screen title
Screen title on Android
Each screen should have a descriptive title, which helps users with identifying the screen.
- Bold text
Bold text on Android
Apps should use bold text when users have indicated this as a preference in the system settings.
- Text element
Text element on Android
Always use text elements to display text, unless this is not possible due to styling, such as text logo's.
Localization on Android
Assistive technologies, such as the screen reader, use the locale for the pronunciation of utterances.
- Scale text
Scale text on Android
Apps should scale text to the size specified by users in the system settings.
- Text spacing
Text spacing on Android
Content should adapt to increased spacing between lines, words, letters, and paragraphs.
- Text truncation
Text truncation on Android
Text should never get truncated in your app, even when users have enlarged their font size.