Ice Cream Sandwich (Accessibility) Leaves Me Cold…
I just got a new “Ice Cream Sandwich” (Android 4.0) tablet. It’s a Samsung Galaxy Tab 2, the 7-inch model. The Tab is a nice little device, and I’m a big fan of the Android operating system generally. However, accessibility of the Android platform has been a problem from the beginning. With this new tablet and operating system, there is some decent news from the perspective of accessibility for people with disabilities, and I will get to that. But after many hours of experimentation and testing, I have to admit Google Android accessibility remains undercooked. It still feels fragmented, inconsistent, and just plain “beta.” It contrasts starkly with the exceptional accessibility of Apple iOS.
Since part of my job is keeping on the lookout for improvements in disability-related IT, I was hoping for a tablet that might compete with the iPad in terms of accessibility. But my Galaxy Tab running Ice Cream Sandwich does not fully deliver. Some of my anticipation was heightened by Google, which promoted improvements to Android accessibility. The unfortunate truth, though, is that the “new and improved” screen reading facility in Ice Cream Sandwich remains for blind users difficult to use effectively, and Android still is missing critical functionality, such as the ability to “zoom” the screen and enhance screen contrast – things that have been available on iPad since it was first released. (And it should be noted that Apple hasn’t been sitting still either. iOS 5 introduced Assistive Touch, functionality that can improve usability for people with motor disabilities. The virtual directional pad (d-pad), which is a component of the Eyesfree Keyboard, is the only analogous software on Android, but it is hardly equivalent. With iOS 5, we also saw improvements in VoiceOver, the iOS screen reader. Yes, Google is moving forward on accessibility, but it has a ways to go before it can truly compete with iOS.)
The Google-built screen reader, which comes on all newer Android devices, is called TalkBack. The latest Android version adds to TalkBack a facility called “Explore by Touch.” The idea is the blind or low-vision user can run a finger over the screen and, when Explore by Touch is on, TalkBack will announce any accessibly coded label, button, input, or text his finger touches. This touch-enabled interface is positional. You have to drag your finger over an item to “find” it. In practice, the process entails a good bit of luck and is complicated by the wide variety of interface layout patterns in Android programs and the variety of widgets one can place on the home screens.
By contrast, there is generally greater consistency of layout in iOS apps and the home screens contain only app icons and folders. Also, an iOS user using VoiceOver, the native screen reader, can swipe the screen right or left at any location on the screen and accessible interface items are announced sequentially. In Android, with Explore by Touch on, when you have dragged your finger around until you have stumbled upon the thing you want to activate, you must then tap directly on it. This is not always easy. On many occasions in testing I would tap an adjacent item. But the situation is especially problematic when presented with a dialog. In “Settings,” for example, often it is necessary to confirm a change. After toggling a setting, a confirmation dialog is positioned in the center of the screen. It has two buttons on it, OK and Cancel. Not only must I drag around on the screen until I chance upon the dialog, but then I must also locate on the dialog the proper button and tap it. Contrast this discovery and tapping procedure to the experience on iPad and iOS devices: An iOS VoiceOver user can swipe a finger anywhere on screen to move sequentially to the button. And once the button is discovered, a double-tap anywhere on screen performs the action. Of course, if you want, you can also drag your finger around on the iOS device screen to locate items, just like in Android with Explore by Touch.
In Android, without being able to see the screen, dragging around to locate items and tapping in a relatively precise location proves often to be difficult and error-prone. Explore by Touch could be acceptable for someone with low vision, though, and having interface items read aloud could be welcome to users with non-vision-related print disabilities. But I cannot imagine the experience creating a lot of Android converts among blind users.
Additionally, crucial applications on Android, including the default web browser, are not accessible by touch. I also had difficulty initially finding a touch accessible keyboard. After some hunting around, I discovered the Eyesfree Keyboard, which was written by Google but is a separate installation. The Eyesfree Keyboard works with Explore by Touch and with TalkBack without Explore by Touch turned on. The default Galaxy keyboard and all other keyboards that I tried were inaccessible. (Note the AFB’s review of Ice Cream Sandwich which discusses use of the Eyefree Keyboard in some detail.) By contrast on iOS the stock (and only) virtual keyboard is accessible to VoiceOver, and there are even multiple non-visual, fully accessible typing modes available.
Before moving on to discuss some upsides to Android accessibility (the emergence of a few pretty decent e-book readers), I want to bullet some more problems:
- TalkBack, Explore by Touch, and the Eyesfree Keyboard are all necessary for Android to have baseline non-visual accessibility, but the fact is that all this software doesn’t play perfectly together. It feels like an amalgam of partial solutions and incremental steps. For example, there is no way to select the Eyesfree Keyboard with Explore by Touch on. The order has to be to first choose the Eyesfree keyboard and then enable Explore by Touch. And if you have Explore by Touch on with the Eyesfree Keyboard’s virtual directional pad (d-pad) exposed (see Figure 1), anything that is covered by the d-pad is no longer directly touchable. This might be corrected somewhat if there were a simple way to hide and expose the d-pad, but I could find no such toggle.
- As mentioned, in addition to an accessible “touch” keyboard, the Eyesfree Keyboard installation gives you a virtual directional pad. The d-pad (enabled and visible when the keyboard isn’t exposed) takes up the bottom third of the screen. The d-pad allows for swiping up and down and right and left to move between objects on the home screens or within an interface. You tap anywhere on the d-pad to perform the focused action. In theory this is a welcome concession, virtualizing the directional pad or roller what was a common hardware interface on older Android devices. And with the d-pad you get a mode of interaction that is somewhat similar to iOS’s flick navigation. However, there are some inconsistencies with d-pad navigation: In the web browser (which, remember, is not usable via Explore by Touch) you swipe up and down to read “chunks” of text – items in a list, discrete blocks of text, such as headings or links, etc. But on the Home screens, you swipe right and left to move forward and backward through lists of on-screen icons. Right or left or up or down? It depends on the program, and the user must make an initial guess and learn from experience. By contrast, iOS’s sequential flick navigation is consistently right and left. Up and down flicks access features that allow you to skip between elements or perform other actions, such as reading from the top of the page/interface.
- The “earcons” – audible cues that sound in a variety of circumstances (when you switch a home page, when you hit the top or bottom of a list, when you “swipe” through items, etc.) are significantly louder than the default text-to-speech voice and sometimes drown her voice out. There is no means for adjusting the relative volume of TTS and earcons. I had to find an alternative TTS engine on the Google Store and set its volume independently.
- In my experience, the Eyesfree Keyboard very often got “stuck” open, when I wanted it to be replaced by the d-pad. For instance, when I finish typing and submit a search in Google, I would like the keyboard to get out of the way and the d-pad to come back. But often the keyboard would stay. Oddly, sometimes the keyboard would act like the d-pad, responding to right/left up/down swipes. Somehow the d-pad and virtual keyboard functionality got “blended.”
- There are also inconsistencies with the reading of text, even text generated by the Android OS. For example, dialogs get read, but alert notifications that appear, say, when you are in an app and you typed in an incorrect username or password, are not voiced uniformly. And some dialogs – for example, a TTS selection dialog in one of my otherwise accessible installed e-readers – are not accessible to TalkBack at all, whether navigating via d-pad or Explore by Touch. Some of this lack of consistency and unevenness may be attributable to developers having missed something when coding an app, but certainly TalkBack should voice standard on screen alerts.
- Finally, add to these problems inconsistency in the design of Android devices. My Galaxy Tab has a 7-inch viewing area. That is, the active screen area is seven inches from its top right to its bottom left corner. But the smooth glass surface is significantly bigger than the touch-enabled/visible screen portion. There is a half-inch wide inactive border. There is no bevel in the glass or any other border between active and inactive areas that a non-visual user could perceive by touch. Trying to use the thing with my eyes closed, often I found my finger was off of the active portion of the screen when I was hunting for buttons or other interface items. This is a device-specific issue, not necessarily Android’s problem. But wouldn’t you think the developers of TalkBack and Explore by Touch would be aware of the variety of Android devices and provide some auditory or haptic feedback when the user drags his finger off the active region?
To sum up, for non-visual access, Android is broken in critical ways. It feels like – and is! – a bunch of separate programs: TalkBack, Explore by Touch, Eyesfree Keyboard. The accessibility components themselves have obvious bugs and holes, and the integration points between them have not been smoothed out. In contrast, iOS presents a relatively seamless experience and system-wide consistency.
It is worth pointing out, though, that there are many good developers inside and outside of Google contributing to Android accessibility. Significantly, Mozilla developer Marco Zehe is working to make Firefox on Android accessible. Though I have not been impressed with accessibility in the latest Android OS, I know there are people at work making it better.
Android E-book Reader Accessibility, Less Chilly
The situation may be somewhat rosier for a portion of Android users with disabilities. As already mentioned, having interface items read aloud might help users with low-vision or certain cognitive and reading-related disabilities. This is particularly the case for electronic access to books. And there are now four semi-accessible e-readers on Android: Blio, Google Books, Go Read, and the IDEAL eBook Reader.
It should be pointed out that none of the e-readers works very well with TalkBack. None provides TalkBack direct access to the book text. Instead, the user can launch the e-book reader application using TalkBack, and then, once in a book’s text content, the e-book reader’s text-to-speech implementation takes over. The inconsistency of the experience might be jarring from a blind perspective but is decent for users with learning disabilities and other non-vision impaired users who have print disabilities.
Here is a summary of accessible Android e-readers:
- Blio: Written by KNFB, a partnership between Kurzweil and the National Federation of the Blind, many in the disability community have been holding out hope that Blio would deliver an optimal reading experience for users with disabilities. Blio on PC and iPad are decent applications for both vision impaired users and users who need synchronized highlighting with text to speech. Blio for Android has a number of interesting capabilities but has some significant problems, as well. There is a free “Blio Accessibility Service” add-on that will make Blio voice most of its interface, including the list of books in your library. This facility works with Talkback on or off. It’s a nice option and could be useful for many readers with print disabilities. Tapping on a word in a book pops open a menu that allows the user to select the granularity of reading – character, word, sentence, line, paragraph, page, or “continuous.” Once chosen, a swipe up or down on the book page moves forward or back by the selected unit of granularity and reads the word, sentence, paragraph, etc., aloud, highlighting the read portion in purple. All is well – in principle. In practice, however, the Tablet is finicky with the swipes. Sometimes they work, sometimes they don’t. Sometimes swipes turn the page or bring up the menu or otherwise do something other than expected. Sentence mode seems to work best. But to progress through a book, you must be willing to swipe downward a lot – for each sentence. Not terribly practical. Without the add-on, if you want something read aloud, Blio requires a separately purchased voice, “Grace.” While there used to be per-publisher restrictions that prevented TTS reading of many books, these restrictions apparently no longer exist on Blio Android. It now appears that any book in your library can be read aloud, with either the add-on enabled reading or with Grace. Reading with Grace is facilitated by per-word highlighting that synchronizes with the text-to-speech. However, the playback speed using Grace cannot be adjusted — a significant limitation, because Grace’s play speed is painfully slow. It’s hard to imagine a strong reader having the patience to track Grace’s languid pace. A strong reader would opt for the add-on, whose TTS speed is set via Android’s global settings. However, slow readers might benefit from Grace. Young children in particular might like it, especially in picture books. Children’s picture books and other books which have complex layouts mirroring the original book can be purchased through the Blio store. A reader can progress though picture books by using a feature called “Guided Zoom.” When reading a book with Guided Zoom turned on, the user taps the page and Blio zooms in to a small readable portion of the page and draws a gray rectangle around the content. A tap “zooms” the reader to the next bit of text. With Grace reading the book, Guided Zoom advances as soon as the zoomed section has been read. While Grace currently is the only option for synthetic TTS with Guided Zoom, some Blio books have pre-recorded audio. Blio comes with a professionally voiced version of Beatrix Potter’s Peter Rabbit. Combining the prerecorded audio and text highligting with Guided Zoom makes for a unique and compelling reading experience for kids. However, it is unclear how many books in the Blio store have pre-recorded audio or support TTS with Guided Zoom. Blio on Android will read ePub format books, but its “picture books” are in a format called XPS, which is rarely used by publishers. It’s probably safe to assume, however, that Blio’s bookstore partner, Baker & Taylor, has retooled for some amount of XPS production. With ePub 3 supporting complex layouts and pre-recorded “media overlays,” we can hope moves away from XPS and toward ePub 3 for its print fidelity books.
- Google Play Books: As long as read aloud functionality has been authorized by the publisher, books in your Google Books library can be read aloud by text-to-speech. All books in Google Books are either purchased or, if in the public domain, acquired free of charge through the Google Play Book Store. You cannot import books into Google Books, like you can with the other e-book readers. (There are complaints about this limitation in the Google Books forums.) During “Read Aloud,” a sentence is highlighted in yellow and read aloud. This highlighting may be amenable to many print disabled visual readers — the yellow is easy on the eyes. Speech rate is set by adjusting the global text-to-speech speed. Google Books also synchronizes across platforms. So when I quit reading on the Galaxy Tab, I can fire up Chrome on my laptop and I’m on the same page. The obvious limitation for Read Aloud is the publisher restrictions – and many publishers are goofily still refusing to allow TTS. While there is no native app TTS ability on the Google Chrome browser app, I can install the free Chrome app, ChromeVox, within Chrome on my PC and use ChromeVox to read to me. The latest version of ChromeVox draws an orange box around the sentence or paragraph being read. And ChromeVox uses my laptop’s built-in text-to-speech voices. Though the experience of reading with ChromeVox + Chrome in Google Books is, right now, pretty rocky – the unit of playback seems to default to the individual word and book navigation is confusing using ChromeVox – there is a clear path forward for cross-platform e-book accessibility for Google Books.
- IDEAL eBook Reader: (Note: The IDEAL Group’s e-book reader is not available on the Android Market/Google Play Store, as of this writing. I am commenting on a pre-release beta version. You can read about the project at ePub 3 Reader) This is one of the best disability-oriented e-readers I have seen for Android. It has options to set synchronized highlighting reading to either highlight by paragraph or sentence, and the foreground and background colors for both plain and highlighted text are completely configurable. The line, word, and letter spacing can be independently configured, allowing a reader to fine-tune infinitely. You can also take notes, highlight passages, and set bookmarks. Navigation with speech enabled is handled through swipes and taps. The interaction model needs refining – for example, you swipe right to advance to the next readable unit (sentence or paragraph) but you cannot swipe left to move backward. Zooming, also, feels a bit buggy. But if the product continues to develop, it could be an excellent option, and the fact that it already supports some features of ePub 3 makes it unique.
- Go Read: Made by Bookshare, a key provider of accessible e-text for people with disabilities, Go Read is a free ePub and DAISY reader, based on the open-source FBReader. Bookshare also makes the excellent Read2Go application for iPad. Read2Go only reads DAISY books, but it does an incredibly good job with them, making Read2Go probably the best disability-oriented book player on the Apple app market. Go Read, while less full-featured, is a decent alternative for Android. The big advantage is support for ePub books. But the synchronized highlighting reads only by the sentence – there is no word-by-word highlighting, like in Read2Go. The highlight color is pale orange over black text on a white background. There is no ability to change this or to enlarge or change the font face. Still, there is a lot to be said for the simplicity of the application, and of the four e-book readers discussed here, I found Go Read to be the most stable and have the most accurate synchronization between text-to-speech and highlighting.
In all of the e-readers mentioned, it is possible to set a bookmark. Google Books and the IDEAL eBook Reader allow you to take notes, as well. However, only Google Books synchronizes the notes across platforms. Kindle, of course, does this too, but Kindle is not accessible on Android. So, as go-to study tools, the book readers on Android haven’t quite arrived. But for casual reading or making your way quickly through articles or books in ePub format, these readers are all pretty serviceable.
A final piece of advice as you delve into speech on Android: Ditch the stock TTS synthesized voices for a third-party voice. Inova and SVox supply high quality voices for Android. Inova’s “Kendra” US English voice is especially good, I think, and all the Inova voices are free while the Inova speech engine goes through beta testing on Android. The SVox voices are less than $3 – so, not a huge investment, either. In addition to clarity and pronunciation that is vastly improved over the stock Android voices, you will notice that the Inova and SVox speech engines can read significantly faster than the default engine.