Freedom #0
for everybody,
really?
We may be failing by 10-20% actually
Well, 100% actually...
Samuel Thibault <samuel.thibault@ens-lyon.org>, 
Jean-Philippe Mengual
Slides available on http://brl.thefreecat.org/
 
 
1
http://liberte0.org/ liste@liberte0.org (french/english?)


Gnuplot
 1
 0.8
 0.6
 0.4
 0.2
 0
-0.2
-0.4
-0.6
-0.8
sin(x)
cos(x)
-1
-10
-5
 0
 5
 10
 
Color blindness: 8  
% male, 0.5% female
2


Outline
● Introduction to accessibility
● Technological overview
● The problem is not really technical actually
● Discussion
● More details available in LSM videos
● Links on http://brl.thefreecat.org/
● Notably LSM 2010, “How to make applications 
 
 
3
accessible?”


What is accessibility?
AKA a11y
Usable by people with specific needs
● Blind
● Cognition (dyslexia, attention 
● Low vision
disorder, memory, ...)
● Deaf
● Motor disability (Parkinson, ...)
● Colorblind
● Elderly
● One-handed
See Accessibility HOWTOs
● You
“Handicap” depends on the situation
 
 
4
and is not necessarily permanent


Hardware
● Braille input/output
● Speech synthesis
● Joysticks
– Basically replace mouse
● Press button
– On-screen virtual keyboard
● Eye-tracking
● ...
 
 
5

 Don't focus on one technology
Even for a given disability
● Braille is not perfect
– A lot of blind people can't read brail e
– Braille devices are very expensive (several k€)
● Speech synthesis is not perfect
– Noisy environments
– Tedious for spelling issues
 
 
6


Dedicated software?
● e.g. edbrowse, a blind-oriented editor/browser
● Generally a bad idea!
– Oriented to just one disability
– Lack of manpower
● e.g. Web browser
– javascript/flash/table/CSS support?
● e.g. An office suite
– MSOffice/OpenOffice compatibility?
– Disabled & non-disabled working together
● Better use the same software
 
 
7
➔ Better make existing applications accessible


Status in a few words
● Text mode is generally quite well accessible
– But not so well suited to beginners
● Gnome quite accessible
– Gnome 3 was however almost a 
restart-from-scratch
● We're late compared to the Windows world
– We started less than a dozen years ago
– They started a couple of decades ago
● We're Stone Age compared to the Apple world
 
 
8
– Really good and integrated support


Overview
Accessibility device
Screen reader
Application
Accessibility
Abstract representation
Registry
bus
Visual Rendering
 
 
9


X accessibility, AT-SPI
X server
braille, speech, ...
pixmap
Orca
pango
text AT­SPI
atk
gtk
(bonobo/dbus)
gedit
 
 
10


Technically speaking
● A lot of applications are already technically 
accessible
– Console
– GTK
– KDE4 (“Real Soon Now”)
– Acrobat Reader
● A lot are not
– KDE3
– Xt
 
 
11
– Self-drawn (e.g. xpdf)


In practice
● A lot of technically-accessible applications 
actually aren't really usable
– A visually-organized mess of widgets...
First name:
Foo
Last name:
Bar
Password:
baz
➔ Screen reader “Script” for each application
 
 
12


Don't try to make applications accessible,
just make accessible applications
Quite often just a matter of
common sense from the start
Not a reason for not fixing
your existing apps of course,
it will just be a bit harder :)
 
 
13


Opening the discussion
with a few items
 
 
14

 This is all about freedom #0
“The freedom to run the program, for any 
purpose”
What about being able to use the program?
● RMS said a11y was just a “desirable feature”.
– “Desirable” only, really?
● RMS said “this is free software, you can modify 
it” (freedom #1)
– Can. Not. Happen.
 
 
15


A question of freedom
“The freedom to run the program, for any 
purpose”
What about being able to use the program?
● #0 only a legal freedom?
● #0 only a technical freedom?
● #0 rather about people freedom?
30 years of GNU has pretty much given us legal 
and technical freedom, what about focusing on 
 
 
16
people for the next decade?

 Why is accessibility so hard?
● Vint Cerf asked in Communications of the ACM 
November 2012:
“Why is accessibility so hard?”
Issues are mostly not technical, actually
 
 
17


A question of priority
● Should be prioritized
– Just like internationalization
– A “should” or “must” in the GNU Coding 
Standards?
– Evaluated on integration into the GNU 
project?
– …
 
 
18


A question of who doing it
● Concerns only a small fraction of population
– Already a hard time using computers...
– Almost nobody with both disabilities and 
programming skil s
– Almost nobody with awareness and 
programming skil s either
→ “This is free software, you can modify it”
can not work.
● Support has to be integrated
– Distributed among maintainers themselves
 
 
19
– Not borne by the tiny a11y community

Making applications 

accessible?
● Extremely diverse needs
● Generic screen reading interface
– Already supported by toolkits like gtk
– Requires logically built applications
● Do not make applications accessible,
make accessible applications
– From the start!
● Usually benefits everybody in the end
– Better overall design
 
 
20
– Nicer for all users: colors, contrast, tab, ...

“Accessibility of 

accessibility”...
“How to make accessible applications?”
● Very-few to many communication
● Just documentation?
– A HOWTO already exists, but mostly unknown
● Talks at conferences?
● Integrate in standard procedures?
● Testing?
– Doesn't actually really require hardware
 
– Can only be parti  al, but stil  a very good start 21

Developer/User 

communication issues
● You all know that
● Even more difficult when disabilities come into 
play...
● Don't even know/understand what they are 
supposed to “see”
● Patience, discussion, finding intermediary, ...?
 
 
22

Graal: accessibility 

everywhere
● Using a computer at the library, the airport, the 
university practice room, etc.
– First ask admin to install & configure 
software?!
→ Installed by default, ready for use
– Requires very close integration
– E.g. support in Debian Installer
 
 
23


What to do?
● accessibility@gnu.org mailing list
● Petered out quickly
● Revive?
● Raise awareness?
● Document?
● Integrate?
 
 
24


Discussion
● Accessibility everywhere, goal of next decade?
● A question of priority
● Usually benefits everybody in the end
● A question of who doing it
● Making accessible applications?
● Accessibility of accessibility...
● Developer/user communication issues
● A question of freedom #0
 
 
25
● What to do?


Backup slides
 
 
26


Linux Console accessibility
 
 
27


Text applications
● Usually work really great for braille output
● Always provide such equivalent of graphical 
applications, e.g. based on same shared lib
– Useful for servers via ssh too!
● The default output of screen readers is what the 
cursor is on
– Works great with shell, editor, etc.
– Doesn't work so great with semi-graphical 
apps
  ➔ Put the cursor app
 
ropriately!
28
– Even when invisible, e.g. mutt, aumix


Graphical applications
● Design your application without gui in mind first
– Logical order, just like CSS ☺
● Use standard widgets
– e.g. labeled text fields
– Avoid homemade widgets, or else implement atk 
yourself for them
– Always provide alternative textual content for 
visual content
● Keep it simple!
 
– Not only to make s  
creen reading easier, but to  29
make life easier for all users too!


Some pitfalls and advices
(from the accessibility howtos)
● Shouldn't have to use the mouse for anything
● Care of contrasts, configurable colors
● Avoid timing-based actions, or make them 
configurable
● No 2D organization, logical organization
● Keep it simple and obvious
● ...
 
 
30


About bugs
● Take users suggestions into consideration
– E.g. bracketed links in text web browsers
● Be patient with disabled people
– It's not easy for them to use your software
– It's even more difficult for them to explain their 
problems in an understandable way
● e.g. “brail e doesn't fol ow”
➔ Discuss!
 
 
31


About bugs (2)
● Try to keep in mind their disability and their 
consequences
– Yes, blind users don't care that the framebuffer 
doesn't show up properly!
● You could even contact your local institutes for 
disabled people, to discuss directly with users
 
 
32


Test it yourself! (textmode)
Brltty + gnome-terminal
● see doc on http://brl.thefreecat.org
 
 
33


Test it yourself! (guis)
Accerciser
● Check that
the tree of
widgets looks
sane and is
complete
 
 
34


Conclusion
● Accessibility is a concern for a lot of people
– 10% have major concerns
– 20% have minor concerns
● Dealing with it usually boils down to common 
sense
● It very often actually also helps other users
● But we need to raise awareness of this
 
 
35

Document Outline