Preamble -------- I'm a web accessibility obsessive and a member of the Ubuntu Accessibility team. I came looking to see what efforts OLPC was making towards accessibility, and was more than a little worried to find that there was almost nothing on the wiki about accessibility issues. I've been given to understand that they are just emerging on the project's radar. I don't yet have the skills for low-level desktop development, but I'm happy to help any other way I can. Apologies if the following post seems a bit scatter-brained or treads on anyone's toes; I don't have much familiarity with the OLPC project yet. With any luck, it will at least offer food for thought.
General Considerations ---------------------- Without accessibility, there can be no usability. We should plan for catering to the varying abilities of children with OLPC software. Their different needs ought to be built into the design, not an afterthought. The recently formed OATSoft organization "is dedicated to improving Assistive Technology and computer accessibility through the power of Open Source development techniques": http://www.oatsoft.org/ They are good people to turn to for advice. I see OLPC is currently using a Gecko-based web browser. It is therefore important to tie in our accessibility efforts with Mozilla's: http://www.mozilla.org/access/ Historically, Linux has an unimpressive record of being inaccessible at startup. Even at first boot, it should be possible to use OLPC accessibility features. Sugar should include multiple ways of communicating events: e.g. "sound icons" for the blind, visual alerts for kids who are deaf, quick dictionary/encyclopedia access and text accompanied by pictures to communicate with the cognitively challenged. It should avoid relying on users being able to process two things simultaneously. When specifying interfaces, it's important to learn from existing examples of software environments designed with the disabled in mind, such as: 1) Emacspeak: T. V. Raman's add-on for Emacs that turns it into "a complete audio desktop" http://emacspeak.sourceforge.net/ 2) Edbrowse: Karl Dahlke's similar customization of Ed http://www.eklhad.net/linux/app/ 3) Jonathan Chetwynd's pioneering work with SVG-based web content for people with cognitive disabilities: http://www.peepo.co.uk/ The commercial screen reader GW-Micro Window-Eyes has a free demo for developers and is a useful benchmark for assessing FOSS efforts: http://www.gwmicro.com/Developers/ All user-interface or content objects in Sugar should be made accessible to assistive technologies via an accessibility toolkit. This Sugar accessibility toolkit should probably bridge to AT-SPI, a neutral interface layer between particular toolkits and assistive technology software. AT-SPI has already been adopted by Java Swing, GTK+ 2, Mozilla, and OpenOffice.org, and there is a QT bridge in the works. AT-SPI documentation can be found at the Gnome Accessibility Project: http://developer.gnome.org/projects/gap/ For more information on AT-SPI's place within FOSS as a whole, consult the Free Standards Group's Accessibility Workgroup: http://accessibility.freestandards.org/ Preinstalled Assistive Technology --------------------------------- It's crucial that the OLPC laptop should come with assistive technology software as part of the basic package, including at the minimum: 1) A screen reader that represents interfaces and content to a speech synthesizer or braille display for the blind. There really needs to be an braille display add-on to the laptop for kids who are blind and deaf. 2) A software speech synthesizer for use by screen readers. I suspect software synthesizers will prove easier to customize and update than hardware alternatives. Ideally, Sugar should also include a speech dispatcher capable of sending text to different speech synthesizers, partly because different synthesizers may work be better choices for different languages. 3) A screen magnifier for children with poor eyesight. 4) An on-screen keyboard for children with motor disabilities. 5) How about speech recognition? Existing FOSS Solutions ----------------------- FOSS examples of screen readers include: a) SpeakUp (this can be incorporated as a kernel module to accessify the console) http://www.linux-speakup.org/ b) Gnopernicus backed by Baum (apparently development has stalled though) http://www.baum.ro/gnopernicus.html c) Orca backed by Sun http://www.gnome.org/projects/orca/ d) LSR (Linux Screen Reader) backed by IBM http://live.gnome.org/LSR See also the rather marvellous Fire Vox extension for Firefox: http://www.firevox.clcworld.net/ FOSS examples of speech synthesizers include: a) Festival http://www.cstr.ed.ac.uk/projects/festival/ b) Flite (Festival Lite) http://www.speech.cs.cmu.edu/flite/ c) eSpeak http://espeak.sourceforge.net/ d) KTTS http://accessibility.kde.org/developer/kttsd/ e) FreeTTS (needs Java) http://freetts.sourceforge.net/ There's also MBROLA, which is free for non-commercial, non-military use: http://tcts.fpms.ac.be/synthesis/mbrola.html FOSS examples of screen magnifiers include: a) Gnome Magnifier (I think this is technically part of Gnopernicus) b) KMagnifier http://kmag.sourceforge.net/ FOSS examples of on-screen keyboards include: a) GOK (Gnome Onscreen Keyboard) http://www.gok.ca/ b) onBoard https://wiki.ubuntu.com/Accessibility/Projects/onBoard c) OSK-ng (On-screen Keyboard Next Generation) https://wiki.ubuntu.com/Accessibility/Projects/OSK-ng FOSS examples of speech recognition include: a) Sphinx http://cmusphinx.sourceforge.net/html/cmusphinx.php b) ISIP http://www.ece.msstate.edu/research/isip/projects/speech/index.html c) CAVS http://www.cavs.msstate.edu/hse/ies/projects/speech/index.html d) Julius http://julius.sourceforge.jp/en/julius.html See also the VoxForge project: http://www.voxforge.org/ An Agenda for Accessibility --------------------------- May I suggest the following? 1) Create an accessibility section on your wiki. 2) Put together a team. I'm not who he or she is, but I see j5 works with OLPC and already has some experience hacking Orca: http://www.j5live.com/?p=258 My limited development skills notwithstanding, I'd be happy join the team too. 3) Start integrating SpeakUp into OLPC kernel. 5) Begin working out the details of a bridge from Sugar to AT-SPI. 6) Talk to your hardware folks about a braille display add-on. Depending on cost it could even be built in I suppose. 7) Try and work out which of the FOSS software above could work with Sugar's existing dependencies. OSK-ng is in an early stage of development but is planned to be cross-platform, so the developers are likely to be receptive to building a version for Sugar. -- Benjamin Hawkes-Lewis _______________________________________________ Sugar mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/sugar
