Stitcher And TalkBack: The World In My Ears

Shortwave Radio --- and DXing was one my hobbies growingup--- I spent many hours listening to far-off radio stations---and in the process developed a love for languages. Fastforward to the late 90's, and one could now listen to radiostations from all around the world on the Internet --- but thistime without the hiss and static of shortwave propogation. But there was acatch --- you needed to be at your computer to listen to thesestations. At home, I solved this problem by setting up a set ofliving room speakers connected to the computer in myoffice-bedroom; with a wireless keyboard, this brought Internet radio to my living room.

Fast-forward to the next decade, and I now have the Internetin my pocket in the form of a smart phone. I recently discoveredStitcher on the Android Market --- and it got me the final mile tohaving ubiquitous access to Internet Radio!

Using Stitcher With TalkBack

There is little more to say other than try it out!.Stitcher on Android is a simple Android application thatworksout of the box with TalkBack. Once you install stitcherfromMarket, use the arrow keys or trackball on your phone tobrowse through the various categories. Clicking on stations launchesplayback immediately. Note that for now, the stop buttonin the player is not navigable by the trackball --- Ihave gotten used to hitting it by dead-reckoning since it alwaysappears in afixed position. In the last few weeks, stitcher hasreplaced StreamFuriously, my previous Internet Radio solution on Android.

So here's to happy listening!A brief note on the title of thispost --- The World In My Ears was also the title of abook on DXing by Arthur Cushen fromNew Zealand --- I remember hearing his voice in the 80's on the BBC's World Service.

An Eyes-Free View Of Android At The Google IO Sandbox

Google IO 2010 is playing home to over 5,000 attendees in SanFrancisco this week. A number of Google Access engineers are atthe conference consuming and producing information --- here is abrief view of some of the exciting bits seen on the Android showfloor from an eyes-free perspective.

Hardware And New Devices From An Eyes Free Perspective

Many of the phone manufacturers were showing off their latestdevices on the show floor --- visit the Android Sandboxat Google IO to see these first hand. Charles and I walkedthrough the various displays Wednesday (May 19) afternoon to testdrive these devices first-hand --- given the large number ofAndroid devices coming out every week, this was a uniqueopportunity to see many of these devices for the firsttime. Here are some highlights:

  • All devices were running Android 1.6 or later, andconsequently, Settings/Accessibility was available onevery device. Having worked on this for the last2 years, it's extremely gratifying to see phone manufacturersincluding accessibility in their devices.
  • We found one device from Motorola where we couldn't find theaccessibility setting --- the booth representative promised tocheck after we pointed this out --- waiting to hear back.
  • My favorite device was the LG Ally --- check this device outif you get a chance.
    • Device to be sold by Verizon.
    • Device has an elegant tactual feel.
    • Front of the device sports hardware answer/hangupbuttons.
    • The pull-out qwerty keyboard is a pleasure to use --- I wouldrate this one of the best designed cell phone keyboards I'veseen.
  • Android devices continue to show up in many shapes and sizes--- re-emphasizing that there is a device for everyone. Thismakes it even more important to choose a device that meets yourparticular needs.

Software --- Android Applications Galore

We also visited the various vendors showing off their latestAndroid applications. What was gratifying was that even thoughmost of these developers had paid little thought to eyes-freeuse --- and were blissfully unaware of the existence of anAndroid Accessibility API, their applications worked for the mostpart with Accessibility enabled. Where there were gaps, we wereable to show developers what they needed to do --- everyone wasextremely receptive. Below is a brief summary of what we saw ---and a shout-out to all the friendly developers wemet:

Where

This is a very accessible application I have been usingfor a while --- the developers were thrilled to hear that it wasaccessible since they had made no special effort.

Aloqua

A competing application to Where with a veryslick visual UI. This application doesn't raise the appropriateAccess Events at present because it's a custom UI. When we firsttalked to their lead developer he was extremely hesitant sayingI dont want to change my custom UI. However, I could hear his face light up when we said You dont need tochange your look and feel --- you just need to set a couple ofcustom Java properties (specifically, property ContentDescription

Pandora

Another favorite of mine that works well with access ---except --- the player controls are unlabeled. I showed them theapplication in action on my Droid --- looking forward to seeingthis application become even more usable.

NPR News

There are many NPR tools on the Android Market --- NPRNews is the official application.The application was originally written by a Googler and OpenSourced --- I have been using it for about 4 months and it'scompletely accessible. It could do with some power-user shortcutkeys to make it even more efficient.

MLB At Bat

I had originally played with this application during lastyear's World Series; at the time, the application was quiteusable with TalkBack. I'm happy to report that nothing hasregressed --- the application still continues to to work well,except for a couple of glitches with unlabled playercontrols.The booth representatives had actually heard of accessibility ---and were receptive to fixing the remaining issues.

Summary: The light-weight design of the Android Access layerhas proven valuable in making sure that it makes it on toevery device. The minimal set ofresponsibilities the API places on developers has meant that alarge number of Android applications are accessible out of the box.

Audio Books On Android --- Thanks Librivox!

In my previousarticle, I alluded to an Audio Books application forAndroid. I did not go into much detail on the application itselfbecause I felt it deserved an article of its own.So heregoes!

In Praise Of Librivox

If you aren't familiar with the Librivox project, please visitLibrivox.orgto see the wonderful work that that project is doing. Androidapplication AudioBooks brings the wonders of Librivoxto Android --- now, you can carry all 30,000 audio books andcounting in your pocket and access themanywhere.Here are some highlights:

  • Browse, and quickly play available audio books. You canbrowse by several criteria.
  • Books you listen to get downloaded to your device and areavailable for offline listening.
  • All books provide a table of contents, allowing you to jumpto a specific portion of a book.
  • 90% of the application user interface is completelyaccessible with TalkBack --- see below for missing accessfeatures.

The only glitche with using application AudioBookswith the Android Access API is that the player controls withinthe audio-book player are presently missing contentdescriptions --- this is Android-API speak to say that thecontrols are images with missing labels. So the first time youuse this app, you'll need someone to tell you the buttons ---alternatively just experiment to discover theirfunctions. There are pause, play, rewind and forward buttons ---if the friendly folk who developed this application stumble uponthis post, please get in touch, and I can show you what you needto add to your code to make the eyes-free experience evensmoother.

Happy Listening --- And Share And Enjoy!

Microlog, Microlog4Android, SLF4J and Other Stuff

Right now a lot of interesting stuff are happening with both Microlog and Microlog4Android. I have been working with Microlog, while Jarle has been working on Microlog4Android (M4A). Let me start with Microlog.

I have started the work on Microlog V3.0. To start with I have been able to make the structure a little bit easier. For example I have removed some abstract classes, like the AbstractFileAppender. This was created for one purpose only, to be able to re-use parts of the file logging functionality between Microlog and M4A. A nice side effect of this construction is that we save some memory, both in terms of the memory footprint and run-time memory. Some bugs are fixed and there are some minor improvements.

Even though Microlog is my long time sweetheart, the most exciting things are happening within the M4A project. When moving the code from the Microlog to M4A, we skipped a lot of code. It was the core and only a few appenders that was moved. Working with the Android platform is quite different and the needs are a little bit different. For example, there is not really a need to log to the console. Instead we have replaced the ConsoleAppender with the LogCatAppender. This works as the built in log classes.  The reason for moving Microlog to the Android platform was to give Android developers more opportunities than the built in logging facilities. It is possible to use the logcat tool to log to file, but in that case you do not get the normal logcat logging in Eclipse. I have never heard of any way of logging to a file on the SD card or on the device, using the Android logging classes. With M4A it is possible to log to a file on the SD card. Just use the modified FileAppender to use M4A to log to file.

Another unique feature in Microlog is the ability to log to a remote server. This far we have the HTTPAppender which logs to a HTTP server. This is definitely something that is not possible with the standard Android logging facility. The HTTP logging is ideal for field test or similar, where the developers need to collect logs in a central place. No need to transfer log file manually. Note that during the development it might be more natural for individual developers to log to a file.

But that is not all! The most prominent addition is the SLF4J implementation. This gives you as a developer freedom to change the logging implementation whenever you feel like it. For example you want to use M4A during development for file logging, but want to remove the logging at deployment time. Just replace the M4A jar with the NOP implementation. If you want to revert back to good old Android LogCat logging (only), use the SLF4J implementation.

Last but not least, we have changed the PropertyConfigurator to read configuration files from an Android resource directory. The microlog.properties file could either be stored in the /res/raw or the /assets directory.

For those of you that want to try it out, it is available for download at: http://code.google.com/p/microlog4android/downloads/list
 
Please note that the latest release (V0.5) is rather experimental, but please try it out and give us feedback.

Using Android Market Eyes-Free

The Android Market is a treasure-trove of applications ---many of which work out of the box with Android's Access API, andas a result, the freely available screenreaders on theplatform. Working with Market can be initially daunting, giventhe large collection applications; additionally, there are acouple of spots in the workflow that need accessimprovements. While we get those fixes pushed, here is astep-by-step overview of using Android Market with TalkBack,including the work-arounds for moving over some of theafore-mentioned hurdles.

Android Market: A Brief Overview

Rather than giving a detailed explanation of all of AndroidMarket's user interface, I'll sketch my day-to-day mode of usingMarket --- personally, I find task-oriented help guides far moreusable.

Task: Find Application
  • I typically launch Android Market from within theApplications list in the Eyes-Free shell.On my Droid, I typically do this with the keyboardalready opened since I know I'll be typing very soon.
  • I press the Search capacitive button on thebottomright of the display to bring up the search tool. Note thatMarket can sometime take a few seconds to launch depending onyour network --- TalkBack should announce Market whenit's ready.
  • Type a search query --- as an example, try audiobooks
  • Use the D-Pad arrow keys (up/down) to navigate the list ofresults. TalkBack speaks each entry as you move through thelist.
  • Find one you like; for this example, we'll use one of myfavorite Market applications --- AudioBooks from projectLibrivox.
  • Press the Enter key on the keyboard to open thisapplication
  • This takes you to a screen that lists a short description,and comments from various users on the application. Theinstall button is on the bottom of this screen.
  • And here comes the sticking point in the Market UI thatwe're working on fixing; when you cursor through this list, youdont always get to the install button.But no fear, youcan still install the application!
  • While we work on creating and pushing the fix for the above,I typically install applications by tapping the screen where theinstall button appears. The bad news is that Ipresentlydo this by dead reckoning; the good news is that theinstall button always appears at a consistent spot. Theeasiest way to learn to do this is to have someone put yourfinger on the button the first time, and then learn its positionrelative to the pull-out keyboard. While we know that this is notan ideal eyes-free experience, this little trick opens up atreasure-trove of applications.
  • Tap the install button, and you come to thepermissions screen. Cursor to the OK button,and press Enter Depending on the layout of that screen,you may once again need to use dead-reckoning. At this point, Iroutinely click those on-screen buttons, rather than wasting time attempting to cursor to the button.
  • And voila, the AudioBooks application shoulddownload and install!
Task: Browse Market

In addition to searching, you can also browse the Market foravailable applications, use the cursor keys on the D-Pad forbrowsing. Once selected, installing an application follows thesame workflow as above.

And The Best Is Yet To Come

Once installed, you can try out the application by pulling down the status bar.Look for the next posting in this series for details on using application AudioBooks --- it is one of my all time Market favorites.

Powered by Blogger