⡙⠑⠃⠊⠁⠝
ᅠ
Thanks for maintaining a desktop environment
But is it accessible?
Samuel Thibault
Slides & stuff on
http://wiki.debian.org/accessibility-maint
http://liberte0.org/
http://hypra.fr/
1
⡙⠑⠃⠊⠁⠝
Outline
● Introduction to accessibility
● Accessibility stack
● CHECKME list for desktops
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
⡙⠑⠃⠊⠁⠝ 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.
8
UNO rights of
⡙⠑⠃⠊⠁⠝
persons with disabilities
"Discrimination on the basis of disability" means any
distinction, exclusion or restriction on the basis of
disability which has the purpose or effect of impairing or
nullifying the recognition, enjoyment or exercise, on an equal
basis with others, of all human rights and fundamental
freedoms in the political, economic, social, cultural, civil or
any other field. It includes all forms of discrimination,
including denial of reasonable accommodation
"Reasonable accommodation" means necessary and
appropriate modification and adjustments not imposing a
disproportionate or undue burden, where needed in a
particular case, to ensure to persons with disabilities the
enjoyment or exercise on an equal basis with others of all
12
human rights and fundamental freedoms;
⡙⠑⠃⠊⠁⠝
A question of priority
● Should be prioritized
– Just like internationalization
13
⡙⠑⠃⠊⠁⠝
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 (and very difficult to work)
– Even fewer people with awareness and
programming skil s
→ “This is free software, you can modify it”
can not work.
● Support has to be integrated
– Distributed among maintainers themselves
14
– Not borne by the tiny a11y community
⡙⠑⠃⠊⠁⠝
Hardware
15
⡙⠑⠃⠊⠁⠝
Hardware
● Braille input/output
● Speech synthesis
● Joysticks
– Basically replace mouse
● Press button
– On-screen virtual keyboard
● Eye-tracking
● ...
16
⡙⠑⠃⠊⠁⠝ Don't focus on one technology
Even for a given disability, e.g. blindness:
● 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
17
⡙⠑⠃⠊⠁⠝
Piezo braille cell
● Usually 8 dots ~= one character
● Piezoelectric effect to move up/down
18
⡙⠑⠃⠊⠁⠝
Braille devices
● Serial, USB, bluetooth connection
● 12 / 20 / 40 / 80 cells, price ~= 150*n €
19
⡙⠑⠃⠊⠁⠝
Software interfaces
20
⡙⠑⠃⠊⠁⠝ 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
21
⡙⠑⠃⠊⠁⠝
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
22
➔ Better make existing applications accessible
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
23
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
24
⡙⠑⠃⠊⠁⠝
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
25
⡙⠑⠃⠊⠁⠝
Now the real stuff
Status, how it works, CHECKME
26
⡙⠑⠃⠊⠁⠝
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
27
– Really good and integrated support
⡙⠑⠃⠊⠁⠝
Generic methodology
Accessibility device
Application
Screen reader
Abstract representation
Accessibility
Registry
bus
Visual Rendering
53
⡙⠑⠃⠊⠁⠝ X accessibility, AT-SPI RPCs
X server
braille, speech, ...
pixmap
Orca
pango
text AT-SPI
gtk
atk
(bonobo/dbus)
gedit
58
⡙⠑⠃⠊⠁⠝ X accessibility, AT-SPI RPCs
X server
braille, speech, ...
pixmap
Orca
pango
getText
AT-SPI
gtk
atk
(bonobo/dbus)
gedit
59
⡙⠑⠃⠊⠁⠝ X accessibility, AT-SPI RPCs
X server
braille, speech, ...
pixmap
Orca
pango
change-notify
AT-SPI
gtk
atk
(bonobo/dbus)
gedit
60
⡙⠑⠃⠊⠁⠝ X accessibility, AT-SPI RPCs
X server
braille, speech, ...
pixmap
Orca
pango
text AT-SPI
gtk
atk
(bonobo/dbus)
gedit
Only on request from screen reader
61
⡙⠑⠃⠊⠁⠝
Abstract representation
● Window
– Vertical container
● Menu bar
– File Menu
●
Open Menu Item
●
…
– ...
● Horizontal container
– Text area
– Ok button
64
⡙⠑⠃⠊⠁⠝
Technically speaking
A lot of applications already technically accessible
– Console
– GTK2/3
– KDE-Qt4 sketchy, Qt5 improving
– Mono?
– Acrobat Reader
A lot are not
– KDE-Qt3
– Xt
65
– Self-drawn (e.g. xpdf)
⡙⠑⠃⠊⠁⠝
Debian packages
● brltty: braille drivers
● speech-dispatcher: speech drivers
● at-spi2-core: generic server parts of RPCs
● libgail*, libatk*: gtk-ish server parts of RPCs
● qt-at-spi: qt4 server part of RPCs
● Integrated in qt5 core
● gnome-orca: screen reader
80
⡙⠑⠃⠊⠁⠝
So, what do we want to achieve?
81
⡙⠑⠃⠊⠁⠝
So, what do we want?
At least, accessibility stack working in all desktops
● A matter of a few tests, see coming slides
– Include them in regular regression tests
● Allows to access applications
● I.e. allows “foreign user” use-case
– E.g. work with the regular user of the desktop
– May not be convenient, but far better than
nothing!!
Be completely accessible
82
● More involved, see coming slides
⡙⠑⠃⠊⠁⠝
Accessibility stack working
Goal: user just has to start orca to get speech
● Means the accessibility stack should be ready
● ATM, not enabled by default with gtk2, qt4 and
qt5 applications
●
export GTK_MODULES=gail:atkbridge
●
export QT_ACCESSIBILITY=1
●
export QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
● BTW, time to change that by default?
– Bugs? Need to get fixed anyway!
83
⡙⠑⠃⠊⠁⠝
Testing accessibility stack
In both dm then “joe” user GUI session
● At-spi-bus-launcher and at-spi2-registryd
running as proper user (dm then joe)
– /etc/xdg/autostart/at-spi-dbus-bus.desktop
● session dbus gives user's AT-SPI bus address:
dbussend session dest=org.a11y.Bus printreply
/org/a11y/bus org.a11y.Bus.GetAddress
● and xprop root AT_SPI_BUS returns it
● and toolkits enable their accessibility layer
⡙⠑⠃⠊⠁⠝
Testing accessibility stack
See http://wiki.d.o/accessibility-devel
● git clone git://git.debian.org/pkg-a11y/check-
a11y
● source env.sh
● make check
– Checks gtk2, gtk3, qt4, qt5
● ./troubleshoot
● orca -l sees accessible applications
– e.g. geany, gedit, ...
⡙⠑⠃⠊⠁⠝ How will the user start Orca?
“foreign user” use-case
● Can just ask the regular user to start Orca
● But shortcut very welcome!
– E.g. using a computer at a public library
● Gnome settled on super-alt-s
– How to decide a universal shortcut? See with
freedesktop?
● Autostart on plugging USB braille display?
⡙⠑⠃⠊⠁⠝ How will the user start Orca?
“regular user” use-case
● Automatic start, easy to enable
– Icon somewhere in the interface
● Must be accessible!!
– Command-line interface for Debian Installer
gconftool2 type bool set
/desktop/gnome/applications/at/screen_reader_enabled true
gsettings set org.gnome.desktop.a11y.applications screenreader
enabled true
xfconfquery c xfce4session p StartAssistiveTechnologies
qdbus org.kde.kaccessibleapp /Adaptor setSpeechEnabled true
● Add yours?
⡙⠑⠃⠊⠁⠝
Completely accessible
Desktop environment bits needs to be accessible
● Start menu, panel, task switching, ...
● Gtk/Qt: relatively easy for at least basic support
– Check out orca/accerciser
– Everything achievable with keyboard
● Self-drawn: has to interface with AT-SPI
(through ATK or natively)
● ATM, only gnome and mate are really
accessible enough, and xfce and lxde OKish.
– Having more choice always better!
⡙⠑⠃⠊⠁⠝
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 at-
spi yourself for them
– Always provide alternative textual content for
visual content
● Keep it simple!
– Not only to make s
creen reading easier, but to 90
make life easier for all users too!
⡙⠑⠃⠊⠁⠝
Test it yourself! (GUIs)
orca -e braille-monitor
● Then work as usual
● Only using keyboard
● Checking text appears there
And crash-test
● Turn on speech, switch off the screen
92
https://developer.gnome.org/accessibility-devel-guide/stable/
⡙⠑⠃⠊⠁⠝
Test it yourself! (GUIs)
Accerciser
● Sort of debugger
● Tree of widgets
● Properties
93
https://developer.gnome.org/accessibility-devel-guide/stable/
⡙⠑⠃⠊⠁⠝
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!
102
⡙⠑⠃⠊⠁⠝
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
103
⡙⠑⠃⠊⠁⠝
Conclusion
● Quite a few of your desktop users need
accessibility
● In any situation
– Library, practice rooms, etc.
● Please help us making accessibility
mainstream!
● debian-accessibility@lists.debian.org
● http://wiki.debian.org/accessibility-maint
115
Document Outline