Supporting accessibility in your distribution Some feedback - - PowerPoint PPT Presentation

supporting accessibility in your distribution some
SMART_READER_LITE
LIVE PREVIEW

Supporting accessibility in your distribution Some feedback - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

1

⡙⠑⠃⠊⠁⠝

ᅠ Supporting accessibility in your distribution

Some feedback from Debian

Samuel Thibault Slides & stuff on http://brl.thefreecat.org/ http://liberte0.org/

slide-2
SLIDE 2

4

⡙⠑⠃⠊⠁⠝

Outline

  • Introduction to accessibility
  • Hardware
  • Software interfaces
  • Discussion
  • Guidelines
slide-3
SLIDE 3

5

⡙⠑⠃⠊⠁⠝

Gnuplot

Color blindness: 8% male, 0.5% female

slide-4
SLIDE 4

6

⡙⠑⠃⠊⠁⠝

Gnuplot 5!!

Color blindness: 8% male, 0.5% female

slide-5
SLIDE 5

7

⡙⠑⠃⠊⠁⠝

What is accessibility?

AKA a11y Usable by people with specific needs

  • Blind
  • Low vision
  • Deaf
  • Colorblind
  • One-handed
  • You
  • Cognition (dyslexia, attention

disorder, memory, ...)

See Accessibility HOWTOs

  • Motor disability (Parkinson, ...)
  • Elderly

“Handicap” depends on the situation and is not necessarily permanent 10% handicapped – 20% limited

slide-6
SLIDE 6

8

⡙⠑⠃⠊⠁⠝

Hardware

slide-7
SLIDE 7

9

⡙⠑⠃⠊⠁⠝

Hardware

  • Braille input/output
  • Speech synthesis
  • Joysticks

– Basically replace mouse

  • Press button

– On-screen virtual keyboard

  • Eye-tracking
  • ...
slide-8
SLIDE 8

10

⡙⠑⠃⠊⠁⠝ Don't focus on one technology

Even for a given disability

  • Braille is not perfect

– A lot of blind people can't read braille – Braille devices are very expensive (several k€)

  • Speech synthesis is not perfect

– Noisy environments – Tedious for spelling issues

slide-9
SLIDE 9

11

⡙⠑⠃⠊⠁⠝

Piezo braille cell

  • Usually 8 dots ~= one character
  • Piezoelectric effect to move up/down
slide-10
SLIDE 10

12

⡙⠑⠃⠊⠁⠝

Braille devices

  • Serial, USB, bluetooth connection
  • 12 / 20 / 40 / 80 cells, price ~= 150*n €
slide-11
SLIDE 11

13

⡙⠑⠃⠊⠁⠝

Software interfaces

slide-12
SLIDE 12

14

⡙⠑⠃⠊⠁⠝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

slide-13
SLIDE 13

15

⡙⠑⠃⠊⠁⠝

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

➔ Better make existing applications accessible

slide-14
SLIDE 14

16

⡙⠑⠃⠊⠁⠝

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

slide-15
SLIDE 15

17

⡙⠑⠃⠊⠁⠝

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

– Really good and integrated support

slide-16
SLIDE 16

43

⡙⠑⠃⠊⠁⠝

Generic methodology

A c c e s s i b i l i t y b u s S c r e e n r e a d e r R e g i s t r y A p p l i c a t i

  • n

A c c e s s i b i l i t y d e v i c e A b s t r a c t r e p r e s e n t a t i

  • n

V i s u a l R e n d e r i n g

slide-17
SLIDE 17

48

⡙⠑⠃⠊⠁⠝

X accessibility, AT-SPI

O r c a a t k X s e r v e r p i x m a p b r a i l l e , s p e e c h , . . . A T

  • S

P I ( b

  • n
  • b
  • /

d b u s ) t e x t p a n g

  • g

t k g e d i t

slide-18
SLIDE 18

51

⡙⠑⠃⠊⠁⠝

Abstract representation

  • Window

– Vertical container

  • Menu bar

– File Menu

  • Open Menu Item

– ...

  • Horizontal container

– Text area – Ok button

slide-19
SLIDE 19

52

⡙⠑⠃⠊⠁⠝

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 – Self-drawn (e.g. xpdf)

slide-20
SLIDE 20

59

⡙⠑⠃⠊⠁⠝

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

– Even when invisible, e.g. mutt, aumix

Text applications

slide-21
SLIDE 21

60

⡙⠑⠃⠊⠁⠝

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 screen reading easier, but to

make life easier for all users too!

slide-22
SLIDE 22

66

⡙⠑⠃⠊⠁⠝

Discussion

slide-23
SLIDE 23

67

⡙⠑⠃⠊⠁⠝

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.

slide-24
SLIDE 24

69

⡙⠑⠃⠊⠁⠝ 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

slide-25
SLIDE 25

71

⡙⠑⠃⠊⠁⠝

A question of priority

  • Should be prioritized

– Just like internationalization

slide-26
SLIDE 26

72

⡙⠑⠃⠊⠁⠝

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 skills

– Almost nobody with awareness and

programming skills either

→ “This is free software, you can modify it” can not work.

  • Support has to be integrated

– Distributed among maintainers themselves – Not borne by the tiny a11y community

slide-27
SLIDE 27

73

⡙⠑⠃⠊⠁⠝

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

slide-28
SLIDE 28

74

⡙⠑⠃⠊⠁⠝

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

slide-29
SLIDE 29

75

⡙⠑⠃⠊⠁⠝

So, what to do?

slide-30
SLIDE 30

76

⡙⠑⠃⠊⠁⠝

Software Distribution

Text-based distribution

Installation, configuration, ...

A plethora of software, often text equivalents

  • gg123, mc, o3tohtml...

Please continue packaging those! Accessibility-related packages

Brltty, AT-SPI, Orca, ...

slide-31
SLIDE 31

77

⡙⠑⠃⠊⠁⠝

Testing it

Make sure that it works

  • In textmode

– readers access VT & soundcard, before login

  • /dev/vcsa

– they simulate keypresses

  • TIOCSTI
  • uinput
slide-32
SLIDE 32

⡙⠑⠃⠊⠁⠝

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
slide-33
SLIDE 33

⡙⠑⠃⠊⠁⠝

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

slide-34
SLIDE 34

⡙⠑⠃⠊⠁⠝

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!
slide-35
SLIDE 35

82

⡙⠑⠃⠊⠁⠝

How to bootstrap?

slide-36
SLIDE 36

83

⡙⠑⠃⠊⠁⠝

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!

slide-37
SLIDE 37

⡙⠑⠃⠊⠁⠝

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
slide-38
SLIDE 38

85

⡙⠑⠃⠊⠁⠝

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 – Software speech synthesis (s <enter>)

slide-39
SLIDE 39

86

⡙⠑⠃⠊⠁⠝

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

slide-40
SLIDE 40

87

⡙⠑⠃⠊⠁⠝

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

slide-41
SLIDE 41

89

⡙⠑⠃⠊⠁⠝

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

slide-42
SLIDE 42

90

⡙⠑⠃⠊⠁⠝

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. “braille doesn't follow”

➔ Discuss!

slide-43
SLIDE 43

91

⡙⠑⠃⠊⠁⠝

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

slide-44
SLIDE 44

92

⡙⠑⠃⠊⠁⠝

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

slide-45
SLIDE 45

93

⡙⠑⠃⠊⠁⠝

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
  • Sustainability
slide-46
SLIDE 46

102

⡙⠑⠃⠊⠁⠝

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

mainstream!