[sugar] An agenda for accessibility?

Benjamin Hawkes-Lewis bhawkeslewis
Tue Nov 7 08:11:56 EST 2006


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



More information about the Sugar-devel mailing list