Making Android apps voice outlay accessible

Integrating core accessibility into Android app growth is comparatively candid to do and should be deliberate as business as common for any project

While many people know iOS comes with built in voice outlay support in a form of VoiceOver, fewer seem wakeful that Android is throwing up. Since chronicle 2.2 a Talkback shade reader has been permitted to download from a Android Market and given chronicle 4 has been bundled with a handling system.

Setting adult voice output

To get started with Talkback go to Settings Accessibility Talkback and name On. It’s value doing a educational that can be found in a Talkback settings tab. You can also try alternatives to Talkback such as Spiel, Mobile Accessibility or Web Reader.

Setting adult voice output

The Talkback settings shade display a ‘Explore by touch’ tutorial

Once finished you’re giveaway to ramble your apps; however, Talkback can’t entrance web calm (either within hybrid apps or browsers) though a offer of dual offer add-ons:

  1. The Eyes-Free Keyboard – once downloaded from a Android Market and activated around Settings, a Eyes-Free Keyboard enables we to lift adult a practical keyboard or navigation row over a bottom third of your shade that we can use to submit calm or navigate content.
  2. Web scripts – activated around Settings Accessibility and selecting Enhance Web Accessibility a web scripts concede Talkback to correlate some-more uniformly with we content

Now we should be all set.

Making Android apps voice outlay accessible

The Android home shade display Eyes-Free navigation on a bottom third of a screen


The easiest approach to pledge voice outlay support is to use Android’s built in user interface controls. These are natively permitted as any already has a contentDescription assigned, that is where a tag or choice is housed. If regulating customary controls all we need to do is customise labels to simulate a definition of your content.

If building your possess controls we need to build a contentDescription yourself and allot an suitable alternative. This is germane to all user interface components including ImageButton, checkbox and ImageViews. Anything though a contentDescription will be abandoned by voice output, so do not allot one to musical images.

There is an difference for EditText components. These should have an android:hint instead of contentDescription. This allows a domain tag to be review as good as a essence of a domain when it has been filled in.

If we have controls that change state such as Play/Pause or Add/Remove buttons be certain to refurbish a contentDescription in line with their changes. Voice outlay also announces a control’s trait, therefore identifying either a control is a button, link, form component and so on. It’s critical to consider delicately about what a control does as users will generally design a symbol to perform an movement such as adding an object to favourites and a couple to open a new screen. It can be utterly disorientating to activate a symbol and be taken to a new screen.

All elements contingency be focusable around touch, keyboard and directional controllers. This is finished by assigning android:focusable=”true”, setFocus, isFocusable or requestFocus to controls. Focus sequence is dynamic by vicinity to beside calm relocating from tip left to bottom right. If this isn’t judicious we can conduct concentration sequence by assigning nextFocusDown, nextFocusLeft and nextFocusUp to components.

Occasionally it competence be suitable to censor calm from voice outlay users or broach choice content. For example, we competence wish to censor instructions on how to use a app that are targeted exclusively during sighted users and reinstate it with instructions for voice outlay users. By environment isScreenReaderActive we can detect either voice outlay is regulating and offer suitable content. A word of caution, however: use this technique judiciously, since 99 per cent of a time all calm should be entirely permitted to all users.

Input around a keyboard is unequivocally fiddly for voice outlay users. As such we wish to equivocate giveaway submit fields as most as probable and reinstate them with radio buttons, checkboxes and toggle buttons, that are easier to use and have reduction domain for submit errors.

Just as particular controls contingency be finished permitted so too contingency tradition views.

In offer to this, if building a hybrid app make certain web calm is permitted following desktop accessibility best practices by providing alternatives for images, good semantics, concentration sequence and labelling of form fields.


A useful growth apparatus for day to day contrast is Lint. This programmed apparatus checks for a subset of accessibility issues such as blank contentDescription and blank submit types. You can also write tradition scripts to exam for other issues we competence wish to flag.

Screen shot of Android Lint highlighting a blank contentDescription on an image

While useful for day-to-day development, Lint is not a consummate exam for accessibility. To unequivocally know either a app is permitted we need to exam it with infirm users, or exam calm yourself regulating Talkback. By doing this we will be means to consider not only if objects and form inputs are labelled though also either a labels sufficient report a context and make sense. In other words, we exam not only a accessibility of a app though how serviceable it is for voice outlay users.

Ideally we should exam while not looking during a screen. Unlike iOS, that uses Screen Curtain to switch a shade off while VoiceOver is running, Android has no built in functionality to do this. A workaround if contrast web calm is to set a shade liughtness to 0 in a browser accessibility settings. To exam apps we can use a download Shads, that lowers your shade liughtness to a unclothed minimum.

Once finished we can afterwards exam voice outlay support by regulating a following tests:

  • Are all objects labelled?
  • Are musical objects ignored?
  • Are all form inputs labelled?
  • Are changes of state announced?
  • Are a scold submit forms used?
  • Is calm sequence logical

If contrast web content, it’s value contrast not only in a local browser though also in Chrome and Firefox Nightly, both of that have glorious voice outlay support. Firefox Nightly also provides keyboard shortcuts to perform common actions such as navigate between headings, form elements, links and so on.

VN:F [1.9.22_1171]
Rating: 9.0/10 (1 opinion cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Making Android apps voice outlay accessible, 9.0 out of 10 formed on 1 rating

Leave a Comment

Comments are moderated. Please no link dropping, no keywords or domains as names; do not spam, and do not advertise!

five + 5 =