ᅠ 
Supporting accessibility
in your distribution
Some feedback from Debian
Samuel Thibault
Slides & stuff on http://brl.thefreecat.org/
http://liberte0.org/
 
 
1


Outline
● Introduction to accessibility
● Hardware
● Software interfaces
● Discussion
● Guidelines
 
 
4


Gnuplot
 
Color blindness: 8  
% male, 0.5% female
5


Gnuplot 5!!
 
Color blindness: 8  
% male, 0.5% female
6


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
and is not necessarily permanent
 
 
7
10% handicapped – 20% limited


Hardware
 
 
8


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

 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
 
 
10


Piezo braille cell
● Usually 8 dots ~= one character
● Piezoelectric effect to move up/down
 
 
11


Braille devices
● Serial, USB, bluetooth connection
● 12 / 20 / 40 / 80 cells, price ~= 150*n €
 
 
12


Software interfaces
 
 
13

 Why making GUI accessible?
(when textmode seems so easier to make 
accessible)
● A lot of stuff is not available in textmode
– e.g. real javascript support
● Business applications
● Non-tech people need to get help from non-
tech people around
 
 
14


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
 
 
15
➔ Better make existing applications accessible


Design principles
● Same software, made accessible
– Understand each other, get help, etc.
● Synchronized work
– Just alternate input/output
– Being able to work together
● Pervasive
– Shouldn't have to ask for software installation / 
configuration
 
 
16


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
 
 
17
– Really good and integrated support


Generic methodology
Accessibility device
Application
Screen reader
Abstract representation
Accessibility
Registry
bus
Visual Rendering
 
 
43


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


Abstract representation
● Window
– Vertical container
● Menu bar
– File Menu

Open Menu Item


– ...
● Horizontal container
– Text area
– Ok button
 
 
51


Technically speaking
● A lot of applications are already technically 
accessible
– Console
– GTK
– KDE-Qt4/5 (“Real Soon Now”)
– Acrobat Reader
● A lot are not
– KDE-Qt3
– Xt
 
 
52
– Self-drawn (e.g. xpdf)


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 semigraphical apps
➔ Put the cursor appropriately!
 
 
59
– 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  60
make life easier for all users too!


Discussion
 
 
66

 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.
 
 
67

 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
 
 
69


A question of priority
● Should be prioritized
– Just like internationalization
 
 
71


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
 
 
72
– Not borne by the tiny a11y community

The

specialized distribution trap
There shouldn't be specialized distributions
● Accessibility is orthogonal to any other concern
– It's orthogonal to blends and tasks
– Users should be able to choose blend&task
● All (music, medecine, teaching, …) distributions 
should be accessible
● Specialized distros tend to be specific
● Specialized distros are interesting testbeds, 
though
 
 
73

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
 
 
74


So, what to do?
 
 
75


Software Distribution
Text-based distribution
Installation, configuration, ...
A plethora of software, often text equivalents
ogg123, mc, o3tohtml...
Please continue packaging those!
Accessibility-related packages
 
Brltty, AT-SPI, Orca, ...
 
76


Testing it
Make sure that it works
● In textmode
– readers access VT & soundcard, before login
● /dev/vcsa
– they simulate keypresses
● TIOCSTI
● uinput
 
 
77


Testing it
In both dm then “joe” user GUI session
● at-spi-bus-launcher, at-spi2-registryd running as 
the proper user (dm then joe)
● session dbus gives user's AT-SPI bus address:
dbus­send ­­session ­­dest=org.a11y.Bus ­­print­reply 
/org/a11y/bus org.a11y.Bus.GetAddress

● and xprop ­root AT_SPI_BUS returns it
● “accerciser” tool seeing applications
● Orca runs and speaks
 
 


It needs to be enabled!
● GTK2
gconftool­2 ­­get 
/desktop/gnome/applications/at/screen_reader_enabled

● GTK3 schema
gsettings get org.gnome.desktop.a11y.applications screen­
reader­enabled

gsettings get org.mate.interface accessibility
● KDE4/5
echo $QT_ACCESSIBILITY
● XFCE
 
 
Xfconf­query ­c xfce4­session ­p StartAssistiveTechnologies


More bits
Some applications need more
● GTK2: libgail module
● KDE4: qt-at-spi plugin
● Open/LibreOffice: GTK frontend
● Java: Java-atk-wrapper
– problem with multi-threading :(
● Typing from braille device: xbrlapi
● 32bit apps: 32bit equivalents!
 
 


How to bootstrap?
 
 
82


How to bootstrap?
Entering a cyber café, how to access computers?
● Autodetection
– USB braille devices
● Shortcuts
– Existing: XAccess (standard shortcut), Compiz 
zoom.
– Speech synthesis?
● Accessibility panel
– Needs to be accessible itself!
 
 
83


How to bootstrap? (2)
Accessibility installed by default
● You never know who will need it
– At home
– At workplace
– At library
– ...
● Ready to be easily enabled
● GPII: e.g. a USB key with a config file
 
 


How to bootstrap? (3)
Brand new computer, let's install Linux!
● Same issues and potential solutions
● Nowadays: “accessible” installation CDs
– e.g. start speech synthesis by default
● But all installation CDs should be accessible!
– Including e.g. all Debian forks for various uses
● Debian installer
– USB braille auto-detection
– High contrast or hardware speech by hand
 
 
85
– Software speech synthesis (s <enter>)


Installer TODO
Details available on http://brl.thefreecat.org/
● Switch to text mode
– and run brltty (udev script) or speakup
● Graphical accessibility
– AT-SPI & Orca
● Color themes
● Enable same accessibility features at reboot!
● Being able to pass parameters for tuning them
 
– Kernel cmdline or  preseed
86


Has to be testable
By all maintainers
● Debian installer: wiki page documents testing
● Part of the regression tests
● No need for specific hardware
– Qemu has virtual braille device
 
 
87

 What about the bootloader?
Mostly not accessible nowadays, but improving
● Beep to tell that the menu is shown (done)
● Keyboard shortcuts (done)
● Beep to tell which item is selected
● Pre-synthesized ogg files saying entries
– Sound drivers in the bootloader!?
● Screen reader
– For the core, just another alternative terminal
 
 
89


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!
 
 
90


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
 
 
91


More general ideas
Getting people involved
Subscribe to foo-accessibility
Make sure yourdistrib.org is accessible
Add an “accessibility” chapter to the installation 
manual
Add an “accessibility” chapter the Maintainers' 
guide
Add an “accessibility” tag to bugs
Cc-ed to foo-accessibility
 
 
92


Discussions
Foo-accessibility mailing list
● Good to centralize user knowledge
● Shouldn't become a “side-park”
– Discussions should happen on main lists
– Cc foo-accessibility
Discussing is essential
● Find compromises so it can be mainstream
● Involve other maintainers
  ●
 
93
Sustainability


Conclusion
● Quite a few of your distribution users need 
accessibility
● Right from the start
– Yes, blind people do reinstall their PC at 2am 
too :)
– No, they don't necessarily have a sighted 
sibling near them at 2am either :)
● In any situation
– Library, practice rooms, etc.
● Please help us making accessibility 
 
 
102
mainstream!

Document Outline