Blind Bargains

Opinion: Shady Code Alert: Amazon iPhone App Detects Voiceover and Quietly Disables Alexa

Earlier this week, I presented a brand new workshop on conversational assistants at the library where I work. Our discussion-based tech events are a chance for blind New Yorkers to explore what's new in accessible technology, And I was pretty excited to share how Google, Apple and Amazon have designed simple, conversational interfaces that work well for blind and sighted people alike.

Each interface has its quirks, of course, but they're all usable. I had been dreaming up an afternoon with the voice assistants for a while, but integration of Alexa into the Amazon iPhone app back in March is what convinced me to put it on our calendar. With Google Assistant, Siri and Alexa all available on smartphones, I wouldn't need to worry about budgeting for any extra devices, and I could encourage patrons to test-drive the assistants on tech they already have rather than spurring them to go out and buy more.
So I picked a date and made it my job to use all the assistants on my iPhone enough to find the strengths and flaws in each. There were plenty of limitations but no real show-stoppers.
Until my pre-flight check the day of the workshop.
I know it's my responsibility to update apps with care, and to re-test them after each update. But I got distracted by a flurry of summer travel and lulled by the confident cadence of my three new friends.
I opened the Amazon app that morning and the Voice Search button, my gateway to Alexa, was gone. Not unlabeled, not hiding from Voiceover. Just gone.
I checked for updates, of course. I uninstalled and reinstalled the app, like you do. I checked the Internet to see if anyone on Reddit was mad.
Nobody was mad except me.
I had to walk into the workshop with that didn't-do-my-homework feeling of completely justified shame and play a podcast of somebody else's successful Alexa demo. (Thanks, Applevis). I had to tell a roomful of people that I'd gone ahead and done a thing I warn people never to do; I'd planned my day around an untested update.
After the workshop, I couldn't stop obsessing about where that Voice Search button went, and when, and why. I called friends and polled everybody in the office and went on a tare about it via Facebook Live. Some people had the button; others did not. Everybody reporting that they could find the button was sighted, but when I showed my screen to some sighted people, they confirmed that my button was gone. Just in case, I turned off Voiceover and asked a sighted person to take one more look. No button in sight.
At this point, I could have (forgive me) dropped the mic. Nobody needs three voice assistants and I had two that were working just fine. But I could not rest: I had an unresolved trouble ticket of the soul. So I called Amazon tech support (both the regular Alexa team and the elite disability squad). They were lovely people and we tried a lot of things together, none of which brought my button back to me.
Finally, I asked someone in our tech ed department to write up the problem on Applevis. Couldn't hurt, I thought: even if it doesn't solve the problem, it'll be a good introduction to writing up issues and using forums.
Somebody named Joe responded to that forum post and solved the mystery. It's both simple and heartbreaking: "For sighted folks it's there". Specifically, it's there if, when you start the app, Voiceover isn't running.
There are good reasons for a developer to detect a running screen reader, I guess. Sometimes an app will notice that I'm running VO and pop up some helpful hints for me that would bore or confuse sighted users. I like that: it's genuinely helpful and it makes me feel like the developer cares about my little corner of the world. I've thought from time to time about how, in theory, screen reader detection could be exploited by an irresponsible developer to do something that's bad for blind users. I've wondered whether, when it happens, I would know.
It happened and I didn't know for the better part of a week.
As it turns out, the Amazon Voice Search feature works just fine with Voiceover, once you trick it into appearing by closing Amazon, turning off Voiceover and opening Amazon again. Crucially, though, the app continues to detect the state of Voiceover. When Voiceover is on, voice search queries work the same way they did before Alexa came to the app: you can search for a product or track an order, and that's about it. Pressing the Voice Search button with Voiceover off triggers a screen introducing you to Alexa and asking you if you'd like to opt in. If you do, subsequent voice searches go to Alexa, who is happy to read you the news, lead you through a round of Jeopardy or play you some tunes. Turn Voiceover back on, though, and you're back to Voice Search 2014-style: it's as if Alexa was never there.
I can't tell you what the developer was thinking when he or she made a deliberate decision to check for Voiceover and, upon finding it, present the user with a separate and unequal screen. At best, he or she was working from some flawed assumptions about how Voiceover works; at worst, someone decided that it would be easier to hide an accessibility problem and the feature it rode in on than to fix it.
Here's what I can tell you: wiping a feature off the map without the consent or knowledge of a user based on whether she's running a screen reader is a shady and disrespectful move. I personally believe that compelling cases for separate screens and workflows for screen reader users are pretty rare, and the few that I can think of involve creating an alternate means of accessing a feature rather than simply taking useful things away. When responsible developers decide to go with a forked approach, they document what diverges and why. That way, screen reader users understand how their workflow will differ from what's typical. If a developer absolutely cannot figure out how to implement a feature accessibly and decides to omit it from a forked user experience, decent alerts and documentation at least keep users in the loop about the problem and what's being done about it. Informed users can enter into dialog with developers, advocate for fixes to be prioritized, and suggest how the problem might be solved.
Perhaps this isn't written into the Amazon app's user story about us, but we work and live with, teach and learn from sighted people. Sometimes we share screens. Diverting us into whatever special lane you've constructed in such a way that we don't even know we've been moved is a surefire way to waste our time and lose our trust. For emerging technology users, this lack of transparency also sews seeds of confusion, self-doubt and the belief that blind and sighted people can't teach and learn about tech together.
I know that a ton of talented and passionate people at Amazon have been working hard to make accessibility better across Amazon's ecosystem. This one very bad call was probably made by someone working alone or in a small team. I hope that, should someone at Amazon happen to read this, they'll do what they can to straighten out the issue and address the flawed design thinking that gave rise to it.
I'm posting this here in addition to reporting the issue to Amazon directly because I think it's critical that our community understand how screen reader detection can be misused and that, when it happens, we may be unaware. In fact, coding with an eye toward keeping us oblivious may appeal to some developers. It may be time to have a dialog about how we can control whether and when we disclose that we're running a screen reader. That way, we can continue to engage with developers and ask them to do the right thing but, if we suspect or know that they're not using screen reader detection responsibly, we can remove it from their toolbox.

Category: Articles
Displaying 7 comments.
JEkis Saturday, 05-Aug-2017 4:01 PM ET:

Thank you for alerting the community to this situation. I'm glad you've reported to it to amazon. I'm now curious what, if anything, the official Apple developer guidelines say about the proper use of screen reader detection. If the rules are silent, this might be a good example to use in emails to, to illustrate the importance of implementing some strict rules on this matter.

gallagher123123 Saturday, 05-Aug-2017 8:27 PM ET:

Wow, for a company that cares about accessibility, this is a big mistake. They really need to fix this in the next update.

tallin32 Sunday, 06-Aug-2017 10:32 AM ET:

I posted this on Facebook along with a link back to this article, but am sharing it here as well. This explains nicely why I have reservations about screen reader detection. With this decision, Amazon decided, seemingly unilaterally, to shunt you into a different lane based on what assistive technology you're using. This is why screen reader detection should, in my view, be a privacy setting you should be able to switch on or off per app, even were it enabled by default. If the developer has done their job properly, as Chancey points out here, screen reader detection allows the developer to make the blind user aware of alternate user interface elements or workflows—or, in a worst case, issues the screen reader user might encounter. At worst, it opens us up to a world of assumptions that we can't fix until it comes around in their development backlog. And when you've made a sweeping assumption based on information you clearly have demonstrated you shouldn't have, I should be able to deny you access to that information. In this case, what should have been done, in my opinion, both as a blind user and a software developer, is to leave the voice search button in and allow access to Alexa. If you know there are accessibility issues, and anticipate a flood of bug reports, notify your support people, flag the bug as a duplicate and provide a link back to the original bug. As it is, I'm hoping at least some of us that are able to consistently reproduce this will file a complaint on this.

darknexus Monday, 07-Aug-2017 10:10 AM ET:

It's funny how this coincides roughly with built-in Alexa on accessible Fire tablets... Could Amazon be pulling some shady business practices on us?

angelhopp Monday, 07-Aug-2017 10:18 AM ET:

I complain to Amazon about this back in June and I say that nothing has been done about it yet. Keep posting guys let us know what is going on.

techlynne Monday, 07-Aug-2017 8:50 PM ET:

When first I encountered this anomaly, I thought I was going a bit bonkers! thank you so much, Chancey, for bringing this issue into the cold light of day where it belongs. After several unsuccessful attempts, I finally gave up trying to access the feature. I, too, had planned to show it at an information sharing group that I lead. I, too, will call Amazon about this horrendous and unfair piece of coding.

JanaJ Wednesday, 09-Aug-2017 12:38 AM ET:

Wow! That would explain why I can't use Alexa anymore! So, I have to turn off VoiceOver and keep it off while I use Alexa?! Ridiculous! I will definitely complain to Amazon. Sorry you had that experience, Chancey! Don't feel bad, it happens to even the most thorough of us at times. How dare we be human?! LOL!

You must be logged in to post comments.

Username or Email:
Keep me logged in on this computer

Or Forgot username or password?
Register for free

Copyright 2006-2017, A T Guys, LLC.