For those of you following the Firefox/Gecko platform development, or for those interested in helping out, this is a call for participation. If you’re not afraid to get your hands dirty a bit and would like to help the Firefox accessibility team, now would be a good time to get involved!

The problem: The code that calculates the names for any created accessibles has been growing over time and became largely unmaintainable. New features suich as adding the aria-label property support requires code duplication for HTML and XUL, and in general the code has many stylish un-niceties.

So, our team has started a code cleanup and code refactoring series to get the code into better shape and maintainability.

As with any refactor, the result should be identical in output with what we started out from. However, as those of you familiar with software development know, the risk of regressions is there and should not be discounted.

While we do have test cases for many of these instances already, there may still be cases we’ve missed. So any help we get from the community will help make sure that the refactor goes smoothly, but also help fill in any possible gaps in our testcases.

So, how can you help? By downloading and installing the latest nightly builds of Firefox 3.1 for Windows or Linux, and testing the heck out of them. Use your favorite screen reader, use your familiar web sites, use it for day-to-day surfing. Obviously the most likely pages you’ll find differences on, if any, will be those pages you visit frequently, sites you know what the output should be.

If you find something that is different from what you know, you can download the last Windows or last Linux build before the refactor, unzip it into a separate folder, and compare your findings using that build.

If you find differences you did not expect to find, you have two main choices that will get the developer team’s attention:

  1. File a bug in Bugzilla:
    • Component: Disability Access APIs
    • Version: Trunk
    • Platform: PC or whichever you use
    • OS: Windows or Linux, depending on where you found the bug.
  2. Post a message on the newsgroup (Google Groups mirror).

In any case, your bug report should contain the URL of the page you are experiencing the difference with, the expected output of the element, and the output you’re now getting. Also, is that element a graphic, link, heading, form field etc.? Also, you should mention what screen reader you’re using. If posting to the newsgroups, it will also help to mention the operating system.

How to update the nightly builds to pick up latest code changes: The builtin Check for Updates feature, if invoked from a nightly build, will always grab an update to the latest nightly build and install it for you. So, you only need to download and go through the installation process once. You can then daily check for updates and get the latest code that way.

The first build to see changes will be the October 11 build, build ID 1.9b2pre/20081011.

Working with different profiles: If you don’t want to put your regular profile into the hands of the Firefox nightly builds, you can start Firefox.exe or the ./firefox executable with the -p option to bring up Profile Manager. You can then create a new profile and start Firefox with that profile. That way, your Firefox 3.0.x profile won’t be touched by the 3.1 nightlies if you choose not to. I’ve found, however, that the nightlies are very stable already, and I often flip back and forth between 3.0.x and 3.1 builds on the same profile without problems. The one thing that most certainly would happen is that some extensions may not work in 3.1 yet.

I’d like to thank all of you in advance who decide to participate in this effort and help everyone who relies on Firefox accessibility by testing out the code refactor. You can make a real difference because we obviously can’t test all of the web pages out there, and yours may just be the one we might miss out on.

Recently, Apple announced better accessibility features in iTunes 8 and the 4th generation iPod Nano. This is a major breakthrough in accessibility because now, the maker of a mainstream hardware media player is taking steps to make sure the device is useable also by people with vision impairments. Previously, the only way to make certain types of MP3 players accessible was through projects like Rockbox, which provides a custom firmware for these players. This approach is never fully complete, because for the supported iPods, it does not allow the very specific features to work like DRM-protected media playback.

On the other hand, there are new approaches taken by assistive technology vendors such as HumanWare who manufacture new, modern devices like the VictorReader Stream, which is both a DAISY (Digital accessible information system) and Audible audio book player, and also an MP3 and Ogg Vorbis player. The revolutionary element of this is that it comes with a speech synthesizer, bilingual if you so choose, to read the titles or meta information of your MP3 or Ogg files to you.

The question I was asking myself when I read Apple’s announcement was if this now obsoletes such hardware specifically designed for the blind. And the answer came quickly, too: We’re not quite there yet. And unless Apple and other hardware manufacturers of mainstream players are ready to include blindness specific, or seemingly blindness specific, features into their players, there will always be a place and necessity for these specialized hardware devices.

I also asked myself whether I would choose a Stream or an iPod if I wanted to buy a new portable media player today. I already own a Stream, bought it in March of this year, so am in no immediate need to purchase a new device. And after some thinking, I came to the conclusion that a Stream today is still the better choice for me and possibly other blind users. Here are the reasons why I think this is the case.

More flexibility in speech output

The Stream offers in its firmware bilingual voice synthesis output. One is always English, the other is the language of one’s choosing. Since I am German, in my case a German voice is also on board. This allows me to listen to the meta data or file names of both English and German books or media files without having to compromise on one end. Apple’s approach, to synthesize the menu items and file names on the host computer via the speech APIs is monolingual. In other words, if I choose to synthesize the samples in German, all my English language MP3 meta data will also be read to me with German pronounciation rules, sounding a bit awkward.

No purchase of a speech synthesizer required

The speech synthesis voices are on board when you purchase a Stream. With the iPod solution, you are required to purchase at least one additional Microsoft Speech API 5 voice from somewhere. Granted, users of the JAWS screen reader are in luck, since Freedom Scientific ships RealSpeak Solo voices in multiple languages with their JAWS 8 and 9 releases, which can then be used to synthesize the menu prompts and file data. But others are required to purchase synthesis engines for varying prices to get the same functionality. And to be honest, I wouldn’t want my iPod to speak to me in the Microsoft Sam voice. If you’re using XP, open Control Panel, and there the Speech input/output panel, and let the default voice speak a sample to you. You’ll know what I mean… 🙂 And the voice selection on Vista is only slightly improved over that. And they’re all English only.

Support for DAISY audio books

The Apple iPod does not support the playback and navigation options that a modern dedicated DAISY player offers. DAISY books can be listened to in MP3 format, but no navigation among headings, phrases or the like is possible without the additional meta data present in DAISY books. Since one paradigm I live by is to always have the greatest flexibility when getting my content, I would not want to limit myself by excluding the possibility to read DAISY content.

Since more and more mainstream download shops also offer DAISY audio books now, bringing this format out of the niche of blindness-specific libraries, it is my hope that mainstream music players will soon adopt this format, too, and offer a wider choice in this regard.

Support for the Flac and Ogg Vorbis formats

OK, this is a strictly personal opinion: I prefer to rip my CD collection in Ogg Vorbis format, since I feel it is substantially superior to MP3. The iPod does not support Ogg Vorbis even in the latest of their devices.

Support for various text file formats

The Stream can read various types of text files to me: Plain text, HTML and XML, RTF, and even some types of braille formatted files, using its on-board speech synthesis engine.

Notetaking feature

The Stream allows me to take notes using either an external or the built-in microphone. Depending on the memory card that’s inserted, I can even record whole presentations with this. Granted, this, like the previous one, is a very specific feature, but an essential one for blind users. Quickly being able to record something without having to fiddle with the notetaking facility of one’s mobile phone is even more efficient than grabbing pen and paper to take a note.

More flexibility in memory usage

The Stream operates using standard SD or SDHC memory cards you can buy in any store, giving it virtually unlimited memory capacity. The Apple iPods have their Flash memory built in, restricting one to 8 or 16 gigabytes (in the case of the 4th generation Nano). In addition, because these speech prompts get copied to the iPod to make it accessible, using up memory as well, which counts against your available music storage space.

Freedom of choice when purchasing digital content

With the iPod, one is bound to Apple’s iTunes software and music store. Even though there is also DRM-free content available, the vaast majority of content is protected, and encoded in the not too impressive 128 kbit/s Aac format. For the record: Other music stores use protected 128 kbit/s Windows Media Audio (WMA) format, which I find equally unimpressive. If I purchase music for download, I usually go for DRM-free, high quality MP3 format. If I don’t find it, I go to Amazon and buy the CD to rip it in my favorite Ogg format. Call me old-fashioned, but I’m a guy who prefers to purchase whole albums rather than individual tracks. Feels incomplete somehow.

The Stream offers me that flexibility, the iPod limits me in that it won’t accept my Ogg files and requires me to always use Apple’s music store, or use iTunes to copy files across. Using the Stream, I can simply insert the SD card into my reader and copy the files over using my preferred file management tool, reinsert the card into the Stream, and off I go.

Do you have no arguments for the iPod in store?

The only thing I can currently think of is the price. The Stream costs about twice as much as the more expensive iPod Nano 4G with 16 gigabytes of memory.

One other argument some might think of is the trendiness of the device. For a blind person however, other than the feeling that one might look trendy, that should never be a criteria to choose a device. Granted, the Stream looks a bit–and I cite a friend’s 8 year old son–like a mobile phone of the mid 90’s, with its speaker and mike and the rather big keys and the edged case. The iPod for some might indeed have a much nicer form factor.

Looking at other features the iPod offers, I can only say that viewing fotos is sort of beside the mark, and being able to watch videos is only interesting if one wants to buy or rent TV shows or movies from the store. If you record from TV or have DVDs, there are always ways to extract the audio only, which is enough for a blind person.

Having said all the above, I’m not saying that Apple’s move was a bad one or that this is an invain endeavor. I can only repeat that I find it fantastic that Apple has taken these steps, and can only encourage them to continue this venture, and encourage others to follow this example. The more choice everyone has, the better.

And if someone from Apple reads this and thinks of making me a Christmas present, I’d be very grateful for the gesture, and write a positive review on my blog. 🙂