'A' is for Accessible... of the 508 kind. 'H' is for Hardware.

As far as history goes - suffice it to say I've worked in university/corporate settings for a number of years where accessibility in software projects has been a hot topic; web applications have been particularly challenging. But... why worry? I mean... every corporate, university, library, and Internet-cafe computer already have accessibility 'built in' to the OS don't they? To some degree yes, but this isn't a simple yes or no answer.

If you've ever been involved in [insert the scale of projects you typically work on here] application development where 508 compliance is key you'll know that there are huge gaps to traverse. If you haven't ready read Adobe's article Accessibility best practices for Flex yet - you should probably take a quick look. It will help set the tone for rest of this post... otherwise you might be thinking that this post is useless and a waste of time.

What kind of 'gaps' are there? My short list includes things like: lack of consistency in APIs between [pick your OSes], degraded experience in [pick your browser], lack of a single implementation/tool for application development, and that third party products/tools (i.e. JAWS) are typically needed to round-out the experience. A full plate to be sure.

Event after you've poured your soul into an app to make it 508 friendly... there aren't many options for non-audible (lights, buzzers, pager-motors) alerts; I haven't seen that on the new feature list for Window 7 or Snow Leopard. Oh well.

All this got me thinking... it would make a lot of sense if we wrapped 'accessibility' into a portable device. Something that the user could plug into a computer an voila - desktop, web, or Flash applications could take advantage of its features.

So, here is something that I've been messing with... an Emic Text-to-Speech SIP Module from Parallax driven by Flex through a combination proxy/policy server I've been working on. I'm using a Keyspan USB/serial converter here... of which I'll be ditching in the next week for a sweet FTDI serial / flash drive interface.

But how can applications 'hook up' to this serial device? Cool hardware is great - but easy configuration is going to be a must here! Ideally it's got to be easier than hooking up JAWS no? Hmmm... monkey patch the DisplayObject to send the text/label to the device... tie the alerts into your exception handling... and as far as auto-discovery is concerned - a little Merapi / AIR could make things just right. I'll have more to show in a month or so and will keep you posted.

Back to the badtastically awesome hardware. What is the end product going to look like? I'm not sure... but perhaps it wold look like a very large thumb drive. If any 3D designers out there have any sweet ideas - send them! I'll make sure you get billing/credits.

My current 'feature list' includes:

  • Storage space for Win/Mac proxy + policy server (written in Java)
  • Text-to-speech Engine
  • External speaker
  • Headphone Jack
  • Volume Control
  • Internal Vibrating Motor (non-audible alerts)
  • Vibration Intensity Control
  • Connection Status LED
  • Alert Status LED (tied to vibration)

So far so good! All I can say is that Sparkfun rocks and that my debit card is getting a lot of love right now. If there is anything that I love more than developing software - it's tinkering with hardware. If you have any other ideas or suggestions... drop me a line. I hope to be done with the first prototype by mid-October.