Android accessibility code samples
Browse code samples to learn how to build more accessible Android apps.
Accessibility code samples
- Accessibility action
Accessibility action on Android
Accessibility actions provide alternative ways 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 value of elements on the screen.
Element code samples
- 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 code samples
- 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 code samples
- 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.
Quality code samples
- Linting
Linting on Android
Linting is the process of running a tool which analyzes your code for potential errors.
Media code samples
- 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
Captions on Android
Captions should be provided to enable users to understand what is being said in videos.
- Transcript
Transcript on Android
Videos should contain a transcript to allow users to read what is shown in media, such as a video or podcast.
Screen code samples
- Reduced animations
Reduced animations on Android
Content which conveys a sense of motion can be a barrier for users.
- Contrast
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 colors 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
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.
Text code samples
- 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
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.