Differences between revisions 2 and 51 (spanning 49 versions)
Revision 2 as of 2011-02-20 18:29:07
Size: 707
Comment:
Revision 51 as of 2012-07-15 19:37:27
Size: 13900
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page describes the accessibility stack of Debian and provides configuration hints for users. For development details, please look at [[accessibility-devel]].


== Links ==
#language en
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[fr/accessibility|Français]] - [[de/accessibility|German]] - [[it/accessibility|Italiano]] [[es/accessibility|Spanish]] -~
----


This page describes the accessibility stack of Debian and provides
configuration hints for users. For development details, please look at
[[accessibility-devel]].

TODO: magnification tools.

<<TableOfContents()>>

== Debian installer accessibility ==

The Debian installer has braille, speech, and contrast
accessibility features which are documented in
[[http://www.debian.org/releases/stable/i386/ch05s02.html|the installation manual for the stable release]], [[http://d-i.alioth.debian.org/manual/en.i386/ch05s02.html | the last upload of the installation manual for the testing release]] , as well as the current draft for next upload on svn://svn.debian.org/svn/d-i/trunk/manual/en/boot-installer/.

USB devices are automatically detected, serial devices need configuration at boot.

In addition to the existing hardware speech support in the installer of Squeeze (Debian 6.0), software speech will be supported in Wheezy (Debian 7.0), the daily
builds (the netboot mini.iso for instance [[http://d-i.debian.org/daily-images/i386/daily/netboot/gtk/mini.iso|i386]] [[http://d-i.debian.org/daily-images/amd64/daily/netboot/gtk/mini.iso|amd64]]) have it: when you get at the boot menu (a beep is emitted), simply press s and enter.

If speech synthesis does not come up, we need information to find out where the bug is. Inside the installer, press alt-f2 to switch to a shell console, press enter to start the shell, and type

{{{amixer scontrols}}}

and post the output to debian-accessibility@lists.debian.org so we can know whether a sound card was detected and what the volume level names are. If only an error message shows up, or if you do not have resources to be able to read the shell console, please try to run a live CD, make sound work with it, and post the output of lsmod to debian-accessibility@lists.debian.org so we can know what sound driver is missing.

Images for squeeze with software speech can be downloaded from
[[http://people.debian.org/~sthibault/espeakup/]] but they don't seem
to be working any more due to kernel update in the official archive. As
a replacement, the testing images (i.e. Wheezy) can be downloaded from
[[http://www.debian.org/devel/debian-installer]] , and when given the
archive mirror choice, type '&lt;' to get back to main menu, change
the priority to lowest, enter the mirror selection part again in the main menu, and then
one can choose to install Squeeze instead of Wheezy, and change the
priority to high again with the same method.

To record some boot option and thus avoid typing them blindly, one can
remaster an image by using the script below:

http://people.debian.org/~sthibault/remaster-append.sh

== Braille support ==

Braille device support is handled by DebianPkg:brltty, which is
started as a background daemon. Most displays work under brltty,
connected via either a serial port, USB or bluetooth. Details
on supported braille devices can be found on the brltty website
(http://www.mielke.cc/brltty/).
It also provides screen reading support for the
Linux text console. Screen reading support for the gnome desktop is
provided by [[DebianPkg:gnome-orca|Orca]] . It does not drive braille
devices itself, it "connects" to brltty via BrlAPI to do so. If Orca
does not manage to output braille, make sure that

 * {{{/etc/brlapi.key}}} exists and contains something (the actual
 content doesn't matter, as long as it is not empty).
 * you have read permission on {{{/etc/brlapi.key}}}
 * brltty is up and running.

Some braille devices have an integrated braille keyboard. Brltty
supports simulating keypresses on the text console. For proper
simulation on Xorg (handle non-qwerty layouts, in particular), the
DebianPkg:brltty-x11 package should be installed. It provides xbrlapi,
which should be started at Xorg session startup, '''before''' starting
orca.

The PC keyboard can also be used as a braille keyboard. In
{{{/etc/brltty.conf}}}, uncomment {{{key-table keypad}}}, and restart
brltty. One can then switch to braille by pressing insert+asterisk on
the numpad, and switch back to normal by pressing insert+slash on the
numpad. The default is to use the {{{asdfjkl,}}} keys as braille keys,
but {{{/etc/brltty/kbd-braille.kti}}} can be modified to use other
keys.

One can also type unicode braille patterns (not letters, pure braille,
shown as such on the screen) thanks to the [[DebianPkg:console-braille|console-braille]] package,
which includes keyboard layouts and the {{{setbrlkeys}}} program to
load them easily.

Brltty also has very basic graphical screen reading support, which is
limited to text fields, e.g. edit's main widget, or gnome-terminal's
terminal. This is shipped in the DebianPkg:brltty-x11 package, and can
be started by running
{{{
brltty -b ba -x as
}}}

at Xorg session startup. {{{-b ba}}} tells it to connect via BrlAPI
to the already-running brltty that drives the actuall braille device.
{{{-x as}}} selects the At-Spi driver, which performs graphical screen
reading.

== Speech support ==

Debian provides a lot of speech syntheses, a list can be found in
[[http://blends.alioth.debian.org/accessibility/tasks/speechsynthesis|the speechsynthesis blend task]].
Screen readers can often directly use some of the speech
syntheses, or use generic interfaces, such as gnomespeech, or
speech-dispatcher. Gnome-speech is mostly just a thin common layer.
speech-dispatcher is more evolved: it runs as a daemon, which screen
readers can connect to in order to emit speech. speech-dispatcher then
has several modules to support various speech syntheses.

== Accessible boot ==

Warning: this is still a draft! It's not even working yet.

An option to get an accessible bootloader is to use petitboot. The
principle is to make the normal bootloader (e.g. Grub) boot Linux
normally, but making it start petitboot and brltty. Petitboot provides
the list of kernels to boot, and permits to append parameters, and then
uses kexec to boot the desired kernel.

This however does not support booting Windows, only Linux.

First, create a {{{/boot/petitboot.sh}}} file containing for instance:

{{{
\#!/bin/sh
/bin/mount none /tmp -t tmpfs
/etc/init.d/udev start
/usr/sbin/pb-discover &
/sbin/brltty
/usr/sbin/petitboot-nc
}}}

And make it executable:

{{{chmod +x /boot/petitboot.sh}}}

Then, create a boot entry for petitboot. For instance, copy/paste from
{{{/boot/grub/grub.cfg}}} a Linux entry, which is known to boot fine, to the
end of {{{/etc/grub.d/40_custom}}} , append at the end of
the {{{linux}}} line (that specifies the {{{vmlinux}}} file)
{{{init=/boot/petitboot.sh}}} , and name the menu entry
{{{petitboot}}}. So for instance it should look like:

{{{
menuentry 'petitboot' --class debian --class gnu-linux --class gnu --class os {
    ...
    echo 'Loading Linux <version> ...'
    linux /boot/vmlinuz-<version> root=blabla ro init=/boot/petitboot.sh
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-<version>
}
}}}

Eventually, make it the default in grub: in {{{/etc/default/grub}}}, set

{{{GRUB_DEFAULT="petitboot"}}}

and run {{{update-grub}}} to update {{{/boot/grub/grub.cfg}}}.

== Console fonts ==

The Linux text console font can be tuned to get better accessibility:
in /etc/default/console-setup, one can set FONTFACE to Terminus, in
order to be able to select bigger fonts such as even FONTSIZE=32x16. That will
of course reduce the amount of text displayed on the screen too. To
fine-tune the exact amount of text displayed on the screen,
SCREEN_WIDTH and SCREEN_HEIGHT can be set.

The console-braille package provides braille fonts, which you can use
to type unicode braille patterns, and show braille on the physical
screen. This is incompatible with using FONTFACE, as you will need to
specify both the normal font and the braille font in the FONT variable,
see example in {{{/etc/default/console-setup}}} .

== Screen off ==

To save battery, or to get some privacy, it can be interesting to shut
the screen down. On the text console, that can be done through

{{{
setterm -blank force
}}}

On the graphical X11 console, that can be done through

{{{
xset dpms force off
}}}

== Graphical User Interface ==

Currently, you can access the GNOME desktop with
Orca. Please see the article [[Orca]] and the
[[http://library.gnome.org/users/gnome-access-guide/|GNOME accessibility guide]] for more details.
=== Color Themes for accessibility ===

The [[DebianPkg:gnome-mag|GNOME magnifier]] supports inverting
colors. However, some people prefer other colors for the
graphical environment or prefer to have only high contrast
without all colors inverted. For this there is a package called
[[DebianPkg:gnome-accessibility-themes]], where different themes are
included. You can install it with
{{{
aptitude install gnome-accessibility-themes
}}}
These can then be selected in the preferences menu of GNOME.

=== gdm accessibility ===

The gdm graphical greeter supports accessibility, orca just needs to be enabled. But the default gdm (at least in Lenny) installed doesn't support this feature. So you need, firstly, remove gdm. Secondly and lastly, install gdm3 (apt-get install gdm3). Then, you can enable orca with two ways:

 * It is enabled automatically when accessibility features were enabled to access the Debian Installer
 * It can be enabled by clicking on the "accessibility" icon which brings a configuration panel.
 * It can be enabled by hand by running:{{{
su -s /bin/sh -c "gconftool-2 --type bool --set /desktop/gnome/applications/at/screen_reader_enabled true" Debian-gdm}}}

== Troubleshooting ==

=== Xorg issues ===

Xorg may not want to start if no actual physical screen is attached
to the video board. This should be reported to the video driver being
used, you can cite
http://lists.freedesktop.org/archives/xorg/2009-March/044206.html
for the rationale behind fixing it.

In the meanwhile, one can use the dummy driver, which will not
make use of any graphical card, and still let the gnome desktop start
etc. Install the DebianPkg:xserver-xorg-video-dummy package, and add the
following lines to {{{/etc/X11/xorg.conf}}} (create one if you don't have
any):

{{{
Section "Device"
    Identifier "noscreendevice"
    Driver "dummy"
EndSection
}}}

=== speech-dispatcher issues ===

Some users use the ibmtts or viavoice speech-synthetiser with orca, and
they think that it is not convenient. According to them, the speech
synthetiser is slow, its reactivity is slow, and it often crashes. The
problem is that no alternative seems to exist, as gnome-speech is no
longer supported by ibmtts' vendors.

However, the package who connects ibmtts to gnome-speech is
under the LGPL. So, it was packaged and its name in Debian is
gnome-speech-ibmtts.

How can you install it? Firstly, install ibmtts or viavoice speech
synthetiser. Then, run (as root user):
{{{
apt-get install gnome-speech-ibmtts
}}}

NOTE: if you install ibmtts after the Debian package, you have to
do:
{{{ dpkg-reconfigure gnome-speech-ibmtts}}} otherwise, the viavoice
config file will not be generated and orca will not see viavoice at the
starting of the preferences menu.

NOTE: you likely will need to do, before the first reboot of orca, a
backup of your {{{~/.local/share/orca}}}, then delete the contents of
its contents. Do this with:
{{{
cp -Rp ~/.local/share/orca ~/.local/share/orcabackup
rm -r ~/.local/share/orca/*
}}}

You will need to recreate all your preferences (shortcuts, etc.).


This process allows users who do not want to use speech-dispatcher
immediately to find a solution. Anyway, this solution is not ideal for
the long-time future, as gnome-speech, or at-spi, will be deprecated
with Gnome-3. It can however be a good transition. But it does not work
for amd64 architectures. Only i386 is supported.



Note that you do not experience this issue if you migrate from lenny
(5.0) to squeeze (6.0), as the migration maintains the necessary
configuration so that ibmtts can be accessed via gnome-speech.

== Tips and tricks ==

Orca can be enabled to start automatically in the user session by hand by running

{{{
gconftool-2 --type bool --set /desktop/gnome/interface/accessibility true
gconftool-2 --type bool --set /desktop/gnome/applications/at/visual/startup true
}}}

If you would like to have sound effects to help you navigating on the GNOME desktop, run {{{
sudo aptitude install freedesktop-sound-theme
gconftool-2 --type bool --set /desktop/gnome/sound/event_sounds true}}}


More tips are available on [[http://brl.thefreecat.org/wiki/]]

== Related links ==
Line 7: Line 304:
 * #debian-a11y on the oftc IRC network.
 * [[http://markhobley.yi.org:9088|The Accessibility Users' Wiki]]

 * [[http://delysid.org/gnome.html|Gnome for the Blind]].
 * [[http://live.gnome.org/Orca|GNOME's screen reader and screen magnification software]]: [[Orca]].
 * [[http://blends.alioth.debian.org/accessibility/|Accessibility blend]]
 * [[http://blends.alioth.debian.org/accessibility/tasks/|Accessibility blend tasks]]
 provides official information. Only a few developers can modify it.
* #debian-a11y on the oftc IRC network, come and chat with us!
 * [[http://delysid.org/gnome.html|Gnome for the Blind]] provides some
 information about gnome accessibility support

 * [[http://live.gnome.org/Orca|GNOME's screen reader and screen magnification software]]:
[[Orca]]
 * [[http://blends.alioth.debian.org/accessibility/|Accessibility blend]],
 provide automatically-generated information on accessibility,
 like list statistics, and package descriptions and bugs.

 * [[http://blends.alioth.debian.org/accessibility/tasks/|Accessibility blend tasks]],
 provides an insight in the set of packages that Debian
 ships for various needs (braille, speech, OCR, ...)

Translation(s): English - Français - German - Italiano Spanish


This page describes the accessibility stack of Debian and provides configuration hints for users. For development details, please look at accessibility-devel.

TODO: magnification tools.

Debian installer accessibility

The Debian installer has braille, speech, and contrast accessibility features which are documented in the installation manual for the stable release, the last upload of the installation manual for the testing release , as well as the current draft for next upload on svn://svn.debian.org/svn/d-i/trunk/manual/en/boot-installer/.

USB devices are automatically detected, serial devices need configuration at boot.

In addition to the existing hardware speech support in the installer of Squeeze (Debian 6.0), software speech will be supported in Wheezy (Debian 7.0), the daily builds (the netboot mini.iso for instance i386 amd64) have it: when you get at the boot menu (a beep is emitted), simply press s and enter.

If speech synthesis does not come up, we need information to find out where the bug is. Inside the installer, press alt-f2 to switch to a shell console, press enter to start the shell, and type

amixer scontrols

and post the output to debian-accessibility@lists.debian.org so we can know whether a sound card was detected and what the volume level names are. If only an error message shows up, or if you do not have resources to be able to read the shell console, please try to run a live CD, make sound work with it, and post the output of lsmod to debian-accessibility@lists.debian.org so we can know what sound driver is missing.

Images for squeeze with software speech can be downloaded from http://people.debian.org/~sthibault/espeakup/ but they don't seem to be working any more due to kernel update in the official archive. As a replacement, the testing images (i.e. Wheezy) can be downloaded from http://www.debian.org/devel/debian-installer , and when given the archive mirror choice, type '<' to get back to main menu, change the priority to lowest, enter the mirror selection part again in the main menu, and then one can choose to install Squeeze instead of Wheezy, and change the priority to high again with the same method.

To record some boot option and thus avoid typing them blindly, one can remaster an image by using the script below:

http://people.debian.org/~sthibault/remaster-append.sh

Braille support

Braille device support is handled by brltty, which is started as a background daemon. Most displays work under brltty, connected via either a serial port, USB or bluetooth. Details on supported braille devices can be found on the brltty website (http://www.mielke.cc/brltty/). It also provides screen reading support for the Linux text console. Screen reading support for the gnome desktop is provided by Orca . It does not drive braille devices itself, it "connects" to brltty via BrlAPI to do so. If Orca does not manage to output braille, make sure that

  • /etc/brlapi.key exists and contains something (the actual content doesn't matter, as long as it is not empty).

  • you have read permission on /etc/brlapi.key

  • brltty is up and running.

Some braille devices have an integrated braille keyboard. Brltty supports simulating keypresses on the text console. For proper simulation on Xorg (handle non-qwerty layouts, in particular), the brltty-x11 package should be installed. It provides xbrlapi, which should be started at Xorg session startup, before starting orca.

The PC keyboard can also be used as a braille keyboard. In /etc/brltty.conf, uncomment key-table keypad, and restart brltty. One can then switch to braille by pressing insert+asterisk on the numpad, and switch back to normal by pressing insert+slash on the numpad. The default is to use the asdfjkl, keys as braille keys, but /etc/brltty/kbd-braille.kti can be modified to use other keys.

One can also type unicode braille patterns (not letters, pure braille, shown as such on the screen) thanks to the console-braille package, which includes keyboard layouts and the setbrlkeys program to load them easily.

Brltty also has very basic graphical screen reading support, which is limited to text fields, e.g. edit's main widget, or gnome-terminal's terminal. This is shipped in the brltty-x11 package, and can be started by running

brltty -b ba -x as

at Xorg session startup. -b ba tells it to connect via BrlAPI to the already-running brltty that drives the actuall braille device. -x as selects the At-Spi driver, which performs graphical screen reading.

Speech support

Debian provides a lot of speech syntheses, a list can be found in the speechsynthesis blend task. Screen readers can often directly use some of the speech syntheses, or use generic interfaces, such as gnomespeech, or speech-dispatcher. Gnome-speech is mostly just a thin common layer. speech-dispatcher is more evolved: it runs as a daemon, which screen readers can connect to in order to emit speech. speech-dispatcher then has several modules to support various speech syntheses.

Accessible boot

Warning: this is still a draft! It's not even working yet.

An option to get an accessible bootloader is to use petitboot. The principle is to make the normal bootloader (e.g. Grub) boot Linux normally, but making it start petitboot and brltty. Petitboot provides the list of kernels to boot, and permits to append parameters, and then uses kexec to boot the desired kernel.

This however does not support booting Windows, only Linux.

First, create a /boot/petitboot.sh file containing for instance:

\#!/bin/sh
/bin/mount none /tmp -t tmpfs
/etc/init.d/udev start
/usr/sbin/pb-discover &
/sbin/brltty
/usr/sbin/petitboot-nc

And make it executable:

chmod +x /boot/petitboot.sh

Then, create a boot entry for petitboot. For instance, copy/paste from /boot/grub/grub.cfg a Linux entry, which is known to boot fine, to the end of /etc/grub.d/40_custom , append at the end of the linux line (that specifies the vmlinux file) init=/boot/petitboot.sh , and name the menu entry petitboot. So for instance it should look like:

menuentry 'petitboot' --class debian --class gnu-linux --class gnu --class os {
    ...
    echo 'Loading Linux <version> ...'
    linux /boot/vmlinuz-<version> root=blabla ro init=/boot/petitboot.sh
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-<version>
}

Eventually, make it the default in grub: in /etc/default/grub, set

GRUB_DEFAULT="petitboot"

and run update-grub to update /boot/grub/grub.cfg.

Console fonts

The Linux text console font can be tuned to get better accessibility: in /etc/default/console-setup, one can set FONTFACE to Terminus, in order to be able to select bigger fonts such as even FONTSIZE=32x16. That will of course reduce the amount of text displayed on the screen too. To fine-tune the exact amount of text displayed on the screen, SCREEN_WIDTH and SCREEN_HEIGHT can be set.

The console-braille package provides braille fonts, which you can use to type unicode braille patterns, and show braille on the physical screen. This is incompatible with using FONTFACE, as you will need to specify both the normal font and the braille font in the FONT variable, see example in /etc/default/console-setup .

Screen off

To save battery, or to get some privacy, it can be interesting to shut the screen down. On the text console, that can be done through

setterm -blank force

On the graphical X11 console, that can be done through

xset dpms force off

Graphical User Interface

Currently, you can access the GNOME desktop with Orca. Please see the article Orca and the GNOME accessibility guide for more details.

Color Themes for accessibility

The GNOME magnifier supports inverting colors. However, some people prefer other colors for the graphical environment or prefer to have only high contrast without all colors inverted. For this there is a package called gnome-accessibility-themes, where different themes are included. You can install it with

aptitude install gnome-accessibility-themes

These can then be selected in the preferences menu of GNOME.

gdm accessibility

The gdm graphical greeter supports accessibility, orca just needs to be enabled. But the default gdm (at least in Lenny) installed doesn't support this feature. So you need, firstly, remove gdm. Secondly and lastly, install gdm3 (apt-get install gdm3). Then, you can enable orca with two ways:

  • It is enabled automatically when accessibility features were enabled to access the Debian Installer
  • It can be enabled by clicking on the "accessibility" icon which brings a configuration panel.
  • It can be enabled by hand by running:

    su -s /bin/sh -c "gconftool-2 --type bool --set /desktop/gnome/applications/at/screen_reader_enabled true" Debian-gdm

Troubleshooting

Xorg issues

Xorg may not want to start if no actual physical screen is attached to the video board. This should be reported to the video driver being used, you can cite http://lists.freedesktop.org/archives/xorg/2009-March/044206.html for the rationale behind fixing it.

In the meanwhile, one can use the dummy driver, which will not make use of any graphical card, and still let the gnome desktop start etc. Install the xserver-xorg-video-dummy package, and add the following lines to /etc/X11/xorg.conf (create one if you don't have any):

Section "Device"
    Identifier "noscreendevice"
    Driver     "dummy"
EndSection

speech-dispatcher issues

Some users use the ibmtts or viavoice speech-synthetiser with orca, and they think that it is not convenient. According to them, the speech synthetiser is slow, its reactivity is slow, and it often crashes. The problem is that no alternative seems to exist, as gnome-speech is no longer supported by ibmtts' vendors.

However, the package who connects ibmtts to gnome-speech is under the LGPL. So, it was packaged and its name in Debian is gnome-speech-ibmtts.

How can you install it? Firstly, install ibmtts or viavoice speech synthetiser. Then, run (as root user):

apt-get install gnome-speech-ibmtts

NOTE: if you install ibmtts after the Debian package, you have to do:  dpkg-reconfigure gnome-speech-ibmtts otherwise, the viavoice config file will not be generated and orca will not see viavoice at the starting of the preferences menu.

NOTE: you likely will need to do, before the first reboot of orca, a backup of your ~/.local/share/orca, then delete the contents of its contents. Do this with:

cp -Rp ~/.local/share/orca ~/.local/share/orcabackup
rm -r ~/.local/share/orca/*

You will need to recreate all your preferences (shortcuts, etc.).

This process allows users who do not want to use speech-dispatcher immediately to find a solution. Anyway, this solution is not ideal for the long-time future, as gnome-speech, or at-spi, will be deprecated with Gnome-3. It can however be a good transition. But it does not work for amd64 architectures. Only i386 is supported.

Note that you do not experience this issue if you migrate from lenny (5.0) to squeeze (6.0), as the migration maintains the necessary configuration so that ibmtts can be accessed via gnome-speech.

Tips and tricks

Orca can be enabled to start automatically in the user session by hand by running

gconftool-2 --type bool --set /desktop/gnome/interface/accessibility true
gconftool-2 --type bool --set /desktop/gnome/applications/at/visual/startup true

If you would like to have sound effects to help you navigating on the GNOME desktop, run

sudo aptitude install freedesktop-sound-theme
gconftool-2 --type bool --set /desktop/gnome/sound/event_sounds true

More tips are available on http://brl.thefreecat.org/wiki/