My team has been hard at work gearing up for the iOS 13 release. As a part of that, and one of the things I’m very passionate about, is making sure that any app that I work on is up to speed with the latest advances
Before we begin
Here are a couple of setup tips to make testing voice control easier:
Turn on Voice Control in your Accessibility Shortcut

This allows you to triple-click your home button to turn on and off voice control quickly.
Turn on Continuous Overlay

You’ll be able to use this to tell at-a-glance how your voice control labels will behave.
Accessibility labels
95% or more of your work will be done if you make sure you support accessibility labels throughout your app. If you’re not familiar with how to do this, I highly recommend this tutorial from Ray Wenderlich.
Shorten your names
In the Self-Employed app, we had implemented accessibility labels quite a while ago to support voiceover for our visually impaired users. We even added custom accessibility labels for our table view cells to give a summary of the details in that cell rather than just listing out a bunch of jumbled strings.

Unfortunately, those custom accessibility labels did not translate well for voice control users 😟. From my experiments, you cannot get voice control to tap on a named item unless you say the entire phrase. As you can see, the transaction cell labels, in particular, are very verbose and almost impossible for the user to say correctly.
Luckily, there’s a solution for this. As a part of the iOS 13 release, there is a new accessibility property accessibilityUserInputLabels
view.accessibilityUserInputLabels = ["Starbucks"]

Much cleaner! 🙌 Now, as you can see, voice control users can use the shortened name to access the table view cell.
You might be asking: well, now it looks like there are a bunch of duplicate names. How will it know which one to select? Say, for instance, I say “Tap Starbucks.” Voice control will then highlight all the instances of “Starbucks” it finds on the screen with a number and prompt the user to say which number they want to navigate to. Pretty snazzy 👌

One last thing to note is that if you decide to add more than one name in accessibilityUserInputLabels
Are you planning to implement voice control for your app? Have you encountered any other cool voice control features? I’d love to hear from you about your own accessibility journey 😊
1 thought on “Adopting Voice Control”