Size: 17342
Comment: Split the extremely long line for activating orca in the gnome 3 user session
|
Size: 45926
Comment: do not hardcode the release version
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[fr/accessibility|Français]] - [[de/accessibility|German]] - [[it/accessibility|Italiano]] - [[es/accessibility|Spanish]] -~ | ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[fr/accessibility|Français]] - [[de/accessibility|German]] - [[it/accessibility|Italiano]] - [[pt_BR/accessibility|Português (Brasil)]] - [[es/accessibility|Spanish]] -~ |
Line 5: | Line 10: |
Line 7: | Line 11: |
configuration hints for users. For development details, please look at [[accessibility-devel]]. TODO: magnification tools. |
configuration hints for users. For general package maintainer information on accessibility in Debian, please look at the [[accessibility-maint|accessibility maintainer page]]. For development details, please look at [[accessibility-devel]]. |
Line 13: | Line 17: |
== Please help us help you == It would be very helpful for disabled users to provide test scenarios, so that non-disabled developers can know how to test accessibility packages, and thus help the accessibility team. Please see <<mid(20131008210138.GA9212@type.youpi.perso.aquilenet.fr)>> for details. |
|
Line 18: | Line 29: |
[[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 (may be old)]], as well as the [[http://d-i.debian.org/manual/en.i386/ch05s02.html | current draft for next upload ]] (also 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. First and foremost, we need the exact URL where you have downloaded the installer image, otherwise we won't ever manage to find a bug which could only exist on the image you have used (and which has to be fixed too!) 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://www.debian.org/releases/stable/i386/ch05s02|the installation manual for the stable release]], as well as the [[http://d-i.debian.org/manual/en.i386/ch05s02.html |current draft for next upload ]] (also on https://salsa.debian.org/installer-team/installation-guide/tree/master/en/boot-installer). Specifically, here is the support status for various releases: * Hurd - braille (serial-only), contrast * kFreeBSD - contrast * Linux - braille, contrast, and speech Braille USB devices are detected automatically; serial devices need configuration at boot. All accessibility support is available on all images except the non-gtk netboot mini.iso image, which does not have speech support. For instance, one can use the CD-1 image from http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ or the DVD-1 image from http://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/. Software speech is supported since Debian Wheezy (Debian 7): when you get to the boot menu (a beep should be emitted to indicate this), simply press 's' and enter. It can also be triggered from the win32-loader by choosing the expert installer, the graphical mode installation, and by appending {{{speakup.synth=soft}}} to the kernel command line. Note, however, that the windows boot menu is not accessible; one has to press down and enter while it is showing up at boot (for 30s, by default). Starting from Debian Stretch (Debian 9), expert installation, rescue mode, and automatic installation are also available with accessibility support. The procedure slightly differs for UEFI and BIOS systems: BIOS systems require pressing '''return''' after each command, UEFI systems don't. Please use the instructions below as appropriate. After the boot has completed, a beep will be emitted on BIOS systems, while UEFI systems will beep twice. To access the advertised functionality, one has to first enter the "advanced" submenu from the boot menu by typing 'a' (on BIOS systems this has to be followed by '''return'''; on UEFI systems that must not be done). To enable speech, pressing 's' (again, followed by '''return''' on BIOS systems but not on UEFI systems) will enable speech support. Now various shortcuts are available: 'x' for expert installation, 'r' for rescue mode, or 'a' for automated installation. Again, these need to be followed by '''return''' when using a BIOS system. Also, all of this is with a qwerty keyboard layout. Starting from Debian Buster (Debian 10), 'd' can be used in the boot menu to enable the high-contrast (dark) theme. Some recent Intel sound cards need non-free firmware, so you may need to use the unofficial image that includes them (from http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/). If the speech volume level is too low, you can type CapsLock-2 to make it higher (and CapsLock-1 to make it lower). If you prefer a faster speech rate, you can type CapsLock-6 (or CapsLock-5, to make it slower). When installation is done via braille or speech, the same braille and speech parameters will get enabled on the installed system. [[Accessibility/Orca|Orca]] will also be enabled for the user account that is created at installation. Speech synthesis should come up within the installer. If it does not, please provide enough information to let us find out where the bug is. First and foremost, we need the exact URL you used to download the installer image; otherwise, we won't ever manage to find a bug which could only exist on the image you have used (and which has to be fixed too!). Inside the installer, press alt-f2 to switch to a shell console, press enter to start the shell, and type {{{amixer -c 0 scontrols}}} {{{amixer -c 1 scontrols}}} {{{cat /proc/asound/cards}}} {{{echo /sys/class/sound/card*/id}}} {{{cat /sys/class/sound/card*/id}}} {{{lsmod}}} {{{dmesg | grep firmware}}} {{{cat /var/run/espeakup.card}}} {{{amixer -c 0 scontents}}} {{{amixer -c 1 scontents}}} (for these, the important sections to report are the Master, Headphone, Speaker, and PCM) Then, 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 the same commands above to debian-accessibility@lists.debian.org so we can know what sound driver is missing. If speech synthesis does not come up at reboot into the installed system, we also need information to find out where the bug is. Please post to debian-accessibility@lists.debian.org the results of the same command above, plus {{{cat /etc/default/espeakup}}} To pre-record some boot options and thus avoid typing them blindly, one can remaster an image by using the script below: |
Line 50: | Line 147: |
== 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 |
Testing accessibility in the Debian installer is documented on [[DebianInstaller/Accessibility|the Debian installer accessibility page]]. == LiveCD accessibility == The GNOME LiveCD images from https://www.debian.org/CD/live/ have screen reader support. At the boot menu, a beep should be emitted to indicate that one has to press enter. The desktop then launches (TODO: add beep) and one can press super-alt-s (aka windows-alt-s) to start [[Accessibility/Orca|Orca]]. == 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 |
Line 57: | Line 166: |
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 |
Brltty also provides screen reading support for the Linux text console. Screen reading support for GNOME and other desktop environments is provided by [[Accessibility/Orca|Orca]]. It does not control braille devices itself; it connects to brltty via BrlAPI to do so. If Orca does not manage to output braille, make sure that: |
Line 66: | Line 176: |
* 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 |
* Try {{{ls -l /etc/brlapi.key}}} and check that the first column of the output contains an {{{r}}} three times. * brltty is up and running * Execute {{{systemctl is-active brltty}}} Some braille devices have an integrated braille keyboard. Brltty supports simulating keypresses on the text console. For proper simulation on Xorg (handling 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 [[Accessibility/Orca|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 numeric keypad. Switch back to normal by pressing insert+slash on the keypad. 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 a2}}} at Xorg session startup. The {{{-b ba}}} option tells it to connect via BrlAPI |
Line 98: | Line 210: |
{{{-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 {{{-x a2}}} option selects the At-Spi driver, which performs graphical screen reading. == Speech Support == Debian provides a lot of software speech synthesizers. A list can be found in |
Line 105: | Line 218: |
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. |
Screen readers can often directly use some of the speech synthesizers, or use generic interfaces such as speech-dispatcher. speech-dispatcher runs as a daemon. Screen readers can connect to this in order to emit speech. speech-dispatcher then has several modules to support various speech syntheses. Some of them are free both as in free speech and free beer: * speech-dispatcher-espeak-ng: Uses espeak, provides a very large range of language support * speech-dispatcher-festival: Uses festival * speech-dispatcher-flite: Uses flite Some of them are free as in free beer but not free speech * speech-dispatcher-pico: Uses the non-free (but shipped in Debian) Pico. * speech-dispatcher-espeak-ng + mbrola + mbrola-yourlang: Uses the non-free (but shipped in Debian) mbrola. * speech-dispatcher-cicero: Uses Cicero (deprecated) Others are non-free: * speech-dispatcher-baratinoo: Use the non-free Baratinoo / Voxygen, which needs to be installed separately * speech-dispatcher-ibmtts: Uses the non-free IBMTTS / Eloquence, which needs to be installed separately. * speech-dispatcher-kali: Uses the non-free Kali, which needs to be installed separately. * speech-dispatcher-voxin: Uses the non-free Voxin, which needs to be installed separately. Speech synthesizers are known to have issues with pulseaudio (especially on the command line). It is recommended to run pulseaudio as root or disable/remove pulseaudio, as described in [[#Run_Pulseaudio_as_root]] or [[#Disable_Pulseaudio]]. === Text Console === Software speech synthesizers are supported on the text console. There are three screen readers within Debian which can make use of them: [[DebianPkg:speakup]], [[DebianPkg:brltty]], and [[DebianPkg:fenrir]]. ==== BRLTTY ==== BRLTTY offers mature screen reading support for the console, including speech. You have the choice of using [[DebianPkg:espeak]] directly or via [[DebianPkg:speech-dispatcher]]. These can be installed with the [[DebianPkg:brltty-espeak]] or the [[DebianPkg:brltty-speechd]] package, respectively. It is necessary to activate the speech driver in the configuration of BRLTTY. Open {{{/etc/brltty.conf}}} and edit it: 1. When using [[DebianPkg:brltty-espeak]], uncomment or insert the following line: {{{speech-driver es}}} 2. When using [[DebianPkg:brltty-speechd]], uncomment or insert the following line: {{{speech-driver sd}}} Afterwards, reload BRLTTY with {{{sudo service brltty restart}}}. ==== Speakup ==== Speakup is an in-kernel screen reader for the Linux text console. See the [[http://linux-speakup.org/spkguide.txt|Speakup User's Guide]] for details. The simplest way to use Speakup is by means of the [[DebianPkg:espeakup]] package. This plugs the espeak software synthesizer directly into the in-kernel screen reader. You need to add {{{speakup_soft}}} to {{{/etc/modules}}} in order to get the kernel part loaded so that espeakup can work. The configuration file (/etc/default/espeakup) can be used to set both the voice and card to be used. Another way is use Speakup is by installing [[DebianPkg:speech-dispatcher]] and [[DebianPkg:speechd-up]]. {{{Speech-dispatcher}}} needs to be started in system-wide mode: {{{/etc/default/speech-dispatcher}}} needs to contain {{{RUN=yes}}}. Please see the section [[#speech-dispatcher|about speech-dispatcher]] for more details. Hardware speech synthesizers are also supported on the text console through the speakup drivers. Before Debian Buster (10), however, this required disabling of the the 8250 serial port driver, by setting this variable in {{{/etc/default/grub}}}: {{{GRUB_CMDLINE_LINUX="8250.nr_uarts=0"}}} One can then, for instance, add this line in {{{/etc/modules}}} to get a speakup module loaded: {{{speakup_dectlk}}} <<Anchor(speech-dispatcher)>> === Speech-Dispatcher === ToDo: needs to be written. Document: * aim of spd * installation * configuration: alsa, modules, ... * system vs. user service Also, if you do not have pulseaudio installed, you need to make speech-dispatcher revert to Alsa: in {{{/etc/speech-dispatcher/speechd.conf}}}, uncomment the line {{{AudioOutputMethod}}} and set it this way: {{{AudioOutputMethod "alsa"}}} ==== Testing Speech-Dispatcher ==== You can test whether speech-dispatcher works by running {{{spd-say "some text"}}} Or, if you want to test a specific module such as espeak: {{{spd-say -o espeak "some text"}}} If these do not produce sound, check out the log files in {{{$XDG_RUNTIME_DIR/speech-dispatcher/log}}}, which can possibly be one of {{{/run/user/1000/speech-dispatcher/log}}}, {{{~/.cache/speech-dispatcher/log}}}, or {{{/tmp/runtime-$USER/speech-dispatcher/log}}}. Note that {{{$USER}}} needs to be replaced by the actual user name. === Audio Level === Starting from Stretch (Debian 9), the audio levels are reset to a default value at bootup. If you want to change that default value, set the audio levels to the desired value (e.g. using alsamixer from the DebianPkg:alsa-utils package) and save the settings by running {{{alsactl store}}} as root. == Embossers == Embossers can easily be used in text mode by means of CUPS (Common Unix Printing System) drivers. Starting from Stretch (Debian 9), dedicated drivers have been added to the DebianPkg:cups-filters package. See /usr/share/doc/cups-filters/README.gz for the details, but basically, you can add an embosser just like a printer. During the driver selection, choose the "Generic" maker and choose the "Generic Braille embosser" model. This will provide several options to set formatting, page numbering, etc. The Index braille embossers have their own driver, under the "Index" maker. This provides better options for text formatting and graphical embossing. Up to Jessie (Debian 8), only the generic text driver is available: In the printers panel (accessed through the printer icon in the control panel or directly by browsing http://localhost:631/ and clicking on Administration), add a printer, choosing the connection (USB, parallel port, etc.). You can freely choose a description to your liking. For the driver selection, choose the "Generic" maker and choose the "Generic text-only printer" choice. To print, you can then just run {{{lp test.txt}}}. If your embosser doesn't do so automatically, you may need to reformat your text to the width of the paper by using the fmt command. For example, to set a width of 40 columns, use: {{{ fmt -40 < test.txt > test2.txt lp test2.txt }}} |
Line 114: | Line 381: |
GRUB can be made to beep when it is ready to take keyboard presses: in {{{/etc/default/grub}}} , uncomment or add the following line: |
=== Audible beeps === GRUB can be made to beep when it is ready to take keyboard presses. In {{{/etc/default/grub}}}, uncomment or add the following line: |
Line 121: | Line 390: |
and run {{{update-grub}}} An option to get a completely 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 with the desired options. This however does not support booting Windows, only Linux. First, install the {{{petitboot}}} package, create a {{{/boot/petitboot.sh}}} file containing for instance: |
and run {{{update-grub}}}. === Keyboard Shortcuts === It is possible to assign keyboard shortcuts to boot menu entries. For instance, to make the letter 'a' a shortcut for an entry, add {{{--hotkey=a}}} just after the {{{menuentry}}} word of that entry: {{{ menuentry --hotkey=a 'Linux' { ... } }}} However, this does not work for the auto-generated boot entries (from {{{update-grub}}}). As a workaround, you can create manual entries in {{{/etc/grub.d/40_custom}}} and assign shortcuts there. If you are unsure of the format, you can look for {{{menuentry}}} in {{{/boot/grub/grub.cfg}}} and copy this as a template. === Complete Accessibility === An option to get a completely 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 parameters to be appended. It then uses kexec to boot the desired kernel with the desired options. However, this does not support booting Windows, only Linux. First, install the DebianPkg:petitboot package, create a {{{/boot/petitboot.sh}}} file containing for instance: |
Line 183: | Line 474: |
=== Grub magnification === Grub does not include magnification, but the font size can be increased easily by generating a font file: {{{ grub-mkfont -s 60 -o /boot/grubfont.pf2 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf }}} Size 60 can be changed to better fit your needs. And adding to {{{/etc/default/grub}}} the line {{{ GRUB_FONT="/boot/grubfont.pf2" }}} to actually use thefont. {{{update-grub}}} needs to be rerun after modifying {{{/etc/default/grub}}}. It does not need to be re-run if you re-run grub-mkfont to set a different font size. |
|
Line 192: | Line 503: |
The console-braille package provides braille fonts, which you can use | The DebianPkg:console-braille package provides braille fonts, which you can use |
Line 198: | Line 509: |
== 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 using this script: {{{#!highlight bash #!/bin/sh output=$(xrandr | grep ' connected ' | awk '{print $1}' | head -1) screenSize=$(xrandr | awk 'BEGIN {foundOutput=0} / '$output' / {foundOutput=1} /\*\+/ {print $1} /^[^ ]/ {if(foundOutput) exit 0}') if [ "$screenSize" != "" ]; then xrandr --output $output --fb $screenSize --off espeak -v es "Monitor apagado" else xrandr --output $output --auto espeak -v es "Monitor encendido" fi }}} |
Another possibility is to use fbterm, which has a -s option to generate big font sizes: {{{fbterm -s 40}}} Fbterm is however not compatible with brltty and speakup. |
Line 227: | Line 518: |
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. |
Currently, you can access the GNOME, MATE, XFCE, LXDE, LXQt desktops with Orca. Please see the article [[Accessibility/Orca|Orca]] and the [[http://library.gnome.org/users/gnome-access-guide/|GNOME accessibility guide]] for more details. For Gnome 3, it is useful to read [[https://help.gnome.org/users/gnome-help/stable/shell-keyboard-shortcuts.html.en|the gnome shell shortcut guide]] As a first start, one thing you need to know is that the application menu can be opened with the alt-f1 shortcut. The simplest way to install these graphical user environments is to install the corresponding tasks, for instance: {{{ apt install task-gnome-desktop }}} Another, lighter, way is to install Xorg and the environment meta-package by hand, but you will probably miss quite a few things. For instance: {{{ apt-get install xorg xserver-xorg-video-all xserver-xorg-input-all desktop-base menu gnome-core }}} And also make sure to have orca installed to access it: {{{ apt-get install orca }}} Each desktop has a way to enable accessibility. You can also do it by hand, see among the tips&tricks below. For KDE qt4 applications accessibility such as vlc player, the DebianPkg:qt-at-spi package needs to be installed, and the {{{QT_ACCESSIBILITY}}} environment variable has to be set to {{{1}}}: {{{ export QT_ACCESSIBILITY=1 }}} (this should already be done by /etc/X11/Xsession.d/90qt-a11y) Note: not every application written using the gtk or qt toolkits is accessible, even when accessibility is enabled. For example, spotify remains not accessible. Note: the default configuration of speech-dispatcher uses pulseaudio, which will refuse to run as root. This means that when logging in as root, the graphical session will not get speech output. A way to circumvent this is to configure speech-dispatcher to use the ALSA output: in {{{/etc/speech-dispatcher/speechd.conf}}}, set the following line: {{{ AudioOutputMethod= "alsa" }}} |
Line 232: | Line 570: |
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 |
To enable high contrast or to invert colours, a package called [[DebianPkg:gnome-accessibility-themes]]exists , where different themes are |
Line 243: | Line 578: |
Colors can be inverted using [[DebianPkg:xcalib]] too, i.e.: {{{ xcalib -i -a }}} will just invert the whole desktop. === Color Blindness === For colorblindness, the [[DebianPkg:kmag|KDE magnifier]] program includes options to alter the color of just a region (not the whole screen). It has settings for protanopia, deuteranopia, titranopia, and achromatopsia. === Making cursor bigger === Installing the DebianPkg:big-cursor package should be making the cursor bigger in various cases. On the MATE desktop, one can use the following to set a bigger cursor: {{{ gsettings set org.mate.peripherals-mouse cursor-size 48 }}} (or values even bigger than 48) Both a black and a white cursor can be configured: * white: {{{gsettings set org.mate.peripherals-mouse cursor-theme mate}}} * black: {{{gsettings set org.mate.peripherals-mouse cursor-theme mate-black}}} === Full Screen magnification support === There are several options for full screen magnification. Pick the one that works best for you. ==== Option 1: Compiz ==== Enhanced magnification support is provided by the ezoom plugin of [[Compiz]] ==== Option 2: Resolution ==== The simplest way is to lower the screen resolution: '''`xrandr -s 800x600`''' To reset the screen resolution, use: `xrandr -s 0` ==== Option 3: Panning ==== It is possible to zoom in without changing the screen resolution. Only a portion of the screen will be visible, so move the mouse to the screen edges to pan around. To enable panning: `xrandr --output VGA1 --mode 640x480 --fb 1280x1024 --panning 1280x1024` To turn off panning: `xrandr -s 0` ==== Option 4: Changing DPI ==== A method which works for some toolkits is to tell the Xserver that it had a higher resolution display than it really has: To change DPI: `xrandr --dpi 200` which will make everything basically two times bigger (200 dpi instead of the standard 96dpi or even 75dpi). That will notably work in Qt. For gtk2, one can put the following in {{{~/.gtkrc-2.0}}}: {{{ gtk-font-name = "DejaVu Sans 20" gtk-cursor-theme-size = 64 gtk-icon-sizes = "gtk-menu=48,48 : gtk-button=48,48 : gtk-dialog = 128,128" style "default" { GtkRange::slider_width = 56 GtkRange::stepper_size = 56 GtkPaned::handle-size = 20 GtkCheckMenuItem::indicator-size = 48 GtkCheckButton::indicator-size = 48 GtkOptionMenu::indicator-size = 48 GtkTreeView::indicator-size = 48 GtkTreeView::expander-size = 40 } class "GtkWidget" style "default" }}} For gtk3, one can set this environment variable: {{{export GDK_SCALE=2}}} Other toolkits may need other configuration. Ideally they'd just pick up the DPI... ==== Option 5: Desktop Environment ==== The previous solutions work for any Debian system. However, depending upon which desktop environment you have installed, you may also have a simple graphical way to enable zooming. For example, [[DebianPkg:Gnome-Shell]] and [[DebianPkg:Cinnamon]] both include a Universal Access icon {{attachment:universalaccess.svg}} on their dock with a menu option to enable full screen zoom & pan. The Cinnamon magnifier however does not support focus tracking, the gnome-shell one does. === Magnifying Glass === Some people prefer using a virtual magnifying glass instead of magnifying the entire screen. The screen resolution is not changed, instead a small window is added which shows a magnified version of a portion of the screen. Usually you can choose where to be magnify by dragging inside the window or by having the program always magnify the region around the mouse. There are again different possibilities, you are free to choose from the following: ==== Option 1: Kmag ==== The [[DebianPkg:kmag|KDE screen magnifier]] can be installed with `apt-get install kmag`. Kmag is simple to use. It will take up more disk space (>200MiB) if you don't already have KDE installed. Although designed for KDE, Kmag works with any desktop environment, including Gnome and Cinnamon. ==== Option 2: Virtual Magnifying Glass ==== If you have trouble reading only occasional words, you may prefer Virtual Magnifying Glass (VMG). Its advantage is that it is usually not visible, unlike programs such as kmag which create a window that always covers part of your screen. Clicking on the VMG icon in the tray shows a zoomed lens around your mouse pointer. Moving the mouse, moves the lens. Clicking anywhere closes the program. (Tip: To change the zoom level, roll the mouse-wheel.) VMG is available from Stretch (Debian 9) and later. It can be installed fine on Jessie systems too, the .deb can be obtained on https://packages.debian.org/sid/vmg , and installed with {{{ dpkg -i vmg_3.7.1-1_amd64.deb apt-get -f install }}} === Controlling the mouse from the keyboard === One can use the keypad to move the mouse. One needs to enable the xkb option keypad:pointerkeys for that. This can be temporarily achieved by: {{{ setxkbmap -option keypad:pointerkeys }}} And permanently, by adding the line {{{ Option "XkbOptions" "keypad:pointerkeys" }}} to /etc/X11/xorg.conf.d/00-keyboard.conf To actually enable it, one has to type shift-numlock. The numpad keys then move the mouse and keypad 5 simulates the mouse click. '/', '*' and '-' can be used to switch between left, middle, and right button. '0' and 'del' hold and release the button. Type shift-numlock to get a normal numpad again. |
|
Line 245: | Line 717: |
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: | The gdm graphical greeter supports accessibility, orca just needs to be enabled. But in Lenny the default installed gdm doesn't support this feature. So for Lenny you need, firstly, to remove gdm, and install gdm3 instead. Squeeze (Debian 6) and later already use gdm3 by default. Then, you can enable orca with either of four ways: |
Line 249: | Line 726: |
* 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}}} |
* Starting from Jessie (Debian 8), it can be enabled by typing the menu-alt-s shortcut. * It can be enabled by hand by running (for Squeeze, Debian 6): {{{ su -s /bin/sh -c "gconftool-2 --type bool --set /desktop/gnome/applications/at/screen_reader_enabled true" Debian-gdm }}} or for Wheezy (Debian 7) and later: {{{ su -s /bin/sh -c 'eval $(dbus-launch) ; export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID ; GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true' Debian-gdm || true }}} === lightdm accessibility === The lightdm graphical greeter supports accessibility, orca just needs to be enabled. Create the directory {{{/etc/xdg/lightdm/lightdm.conf.d}}}, then create the file {{{/etc/xdg/lightdm/lightdm.conf.d/80_orca-dm-wrapper.conf}}} and write the following in it: {{{ [SeatDefaults] greeter-wrapper=/usr/bin/orca-dm-wrapper }}} === libreoffice accessibility === To make libreoffice accessible, one has to install [[DebianPkg:libreoffice-gtk3]]. === 32bit applications accessibility === If you are running a 64bit system, and use some 32bit applications, having DebianPkg:libatk-adaptor installed will not be enough for making 32bit applications accessible: you need to also install the 32bit version of the package. If you have not done it already, enable i386 package installation, as documented in great details on [[Multiarch/HOWTO]]: {{{ dpkg --add-architecture i386 }}} Then update the APT database: {{{ apt-get update }}} and you can now install the 32bit version of the GTK bridge: {{{ apt-get install libatk-adaptor:i386 libgail-common:i386 }}} and of the Qt bridge: {{{ apt-get install qt-at-spi:i386 }}} === Java accessibility === To access Java applications, one needs to install the DebianPkg:libatk-wrapper-java package. Unfortunately, in Debian versions before 9 (Stretch) OpenJDK has disabled accessibility by default (See DebianBug:705511). It has to be reenabled by hand. In the file {{{/etc/java-6-openjdk/accessibility.properties}}} for Debian 7 (Wheezy) or {{{/etc/java-7-openjdk/accessibility.properties}}} for Debian 8 (Jessie) the following line must be uncommented (the # in front needs to be removed): {{{ assistive_technologies=org.GNOME.Accessibility.AtkWrapper }}} Also, only the GTK look and feel has accessibility support, so in the file {{{/etc/java-6-openjdk/swing.properties}}} for Debian 7 (Wheezy) or {{{/etc/java-7-openjdk/swing.properties}}} for Debian 8 (Jessie) the following line must be uncommented (the # in front needs to be removed): {{{ swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel }}} === Upgrading the Assistive Technology At Spi === The assistive technology At Spi is the base for graphical interface accessibility, including Orca. To benefit from the latest advances in it, it is often useful to try a more recent version. Debian does not update to newer upstream versions of software, once released. An exception is the {{{backports}}} service that provides selected packages in more recent versions for a stable system. For a Debian 10 ‘Buster’ system, add this to your {{{/etc/apt/sources.list}}} : {{{ deb http://ftp.debian.org/debian buster-backports main }}} and run {{{ apt-get update apt-get install at-spi2-core/buster-backports gir1.2-atspi-2.0/buster-backports gir1.2-atk-1.0/buster-backports libatk-adaptor/buster-backports python3-pyatspi/buster-backports orca/buster-backports libatk-wrapper-java-jni/buster-backports libatk-wrapper-java/buster-backports }}} If you need the development packages (e.g. to build Orca), you can run {{{ apt-get install libatspi2.0-dev/buster-backports libatk-bridge2.0-dev/buster-backports }}} For a Debian 9 ‘Stretch’ system, add this to your {{{/etc/apt/sources.list}}} : {{{ deb http://ftp.debian.org/debian stretch-backports-sloppy main }}} and run {{{ apt-get update apt-get install at-spi2-core/stretch-backports-sloppy gir1.2-atspi-2.0/stretch-backports-sloppy gir1.2-atk-1.0/stretch-backports-sloppy libatk-adaptor/stretch-backports-sloppy python3-pyatspi/stretch-backports-sloppy orca/stretch-backports-sloppy libatk-wrapper-java-jni/stretch-backports-sloppy libatk-wrapper-java/stretch-backports-sloppy }}} If you need the development packages (e.g. to build Orca), you can run {{{ apt-get install libatspi2.0-dev/stretch-backports-sloppy libatk-bridge2.0-dev/stretch-backports-sloppy }}} Eventually, restart your graphical session to get the new software running or reboot your system. |
Line 260: | Line 860: |
[[http://wiki.debian.org/Xen|Debian Xen wiki pages]]. === qemu/kvm === qemu/kvm can be run in text-mode, by using the {{{-curses}}} option. Of |
[[Xen|Debian Xen wiki pages]]. === QEMU/KVM === QEMU/KVM can be run in text-mode, by using the {{{-curses}}} option. Of |
Line 294: | Line 894: |
Line 295: | Line 897: |
=== No Speech After Login In GNOME === If Orca only says "Welcome to Orca" and seems to be silent then, you are actually on an empty desktop. To get the focus, press Alt+F1 for the menu or Alt+F2 for the run-dialog. === No Sound === In rare cases, the system might boot with the volume being too low or with a muted sound card. The following commands might solve this: {{{ amixer set Master 50%+ amixer set PCM 50%+ amixer set Master unmute}}} Note: the 50% is an example value. You can use any other value that suits you. === BRLTTY/braille stops after boot === In Wheezy (Debian 7) there has been added a program called [[DebianPkg:modemmanager|modemmanager]] which scans serial (and possibly usb2serial) devices to detect it as a modem. Unfortunately this destroys the communication with braille displays connected via those ports. Just {{{ apt-get remove modemmanager }}} to repair this issue. === Inaccessible GNOME 3 session / no fallback mode === It can happen that you end up in a inadequately accessible GNOME 3 session. For instance, if you press alt+f1 for the menu, nothing is spoken. This has to do with the not-yet well accessible GNOME shell. Please see below how to resolve this problem. '''Debian Jessie (GNOME >= 3.8)''' In Debian Jessie with GNOME version >= 3.8, there is a mode called GNOME classic. This one uses the GNOME shell directly to achieve GNOME 2 alike user experience. When using startx, you can set up your .xinitrc as follows to use this mode: {{{ if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi exec gnome-session --session=gnome-classic }}} |
|
Line 317: | Line 967: |
=== 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. |
The support is however broken since Squeeze (debian 6), see DebianBug:696965, the following patch can be applied to Xorg to fix it: {{{ diff --git a/src/dummy_driver.c b/src/dummy_driver.c index 6062c39..566a006 100644 --- a/src/dummy_driver.c +++ b/src/dummy_driver.c @@ -813,7 +813,7 @@ dummyDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, poin switch (op) { case GET_REQUIRED_HW_INTERFACES: flag = (CARD32*)ptr; - (*flag) = HW_SKIP_CONSOLE; + (*flag) = 0; return TRUE; default: return FALSE; }}} === Run Pulseaudio as root === To be able to run speech both at the text console and in graphical sessions, one can run pulseaudio as root. This is not recommended by upstream pulseaudio so one has to tinker a bit: put this into /root/.config/pulse/client.conf : {{{ default-server = unix:/tmp/pulse.sock autospawn = no }}} and put this into $HOME/.config/pulse/default.pa {{{ .include /etc/pulse/default.pa load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse.sock }}} === Disable Pulseaudio === Pulseaudio can cause problems when running a console screen reader as root that is using ALSA, as for instance Speakup or BRLTTY. Apart from running Pulseaudio as root, it can be disabled as well. There are two options available. The first one works for MATE or an even more light-weight desktop environment by removing the package: {{{ sudo apt remove pulseaudio }}} For other desktop environments like GNOME it is impossible to remove Pulseaudio. Disabling works as follows: 1. Execute the command {{{ dpkg-divert --add --rename /usr/share/alsa/pulse-alsa.conf }}} 2. Instruct pulseaudio not to spawn itself automatically. Edit {{{/etc/pulse/client.conf}}} and search for a line like: {{{ ; autospawn = yes }}} and change it into {{{ autospawn = no }}} Hint: you should reconfigure Speech-Dispatcher to use a different audio output method. Edit {{{/etc/speech-dispatcher/speechd.conf}}} and change the line {{{ # AudioOutputMethod "pulse" }}} to {{{ AudioOutputMethod "libao" }}} You need to restart Speech-Dispatcher: {{{ killall speech-dispatcher; speech-dispatcher }}} If you configured Speech-Dispatcher to run system-wide, the command to restart it is: {{{ systemctl restart speech-dispatcher }}} and you should add root to the audio group using {{{sudo adduser root audio}}}. |
Line 366: | Line 1064: |
Orca can be enabled to start automatically in the Gnome 3 user session by hand by running {{{ |
=== speakup and package configuration questions === When using the speakup screen reader, the default frontend for package configuration is not convenient. One can switch to the Readline frontend by default by running {{{ dpkg-reconfigure debconf }}} and choose Readline. One can also choose the frontend for just a session by running {{{ export DEBIAN_FRONTEND=readline }}} === Accessibility in chroots === In order for applications to be accessible from within chroots, they need to have access to the at-spi bus. This bus lives in both /tmp and $HOME, so the following is needed, in addition to the usual at-spi configuration inside the chroot: {{{ mount /tmp /where/the/chroot/is/tmp -o bind mount /home /where/the/chroot/is/home -o bind }}} And as usual, the DISPLAY and XAUTHORITY environment variable should set to the value they have outside the chroot, in order to access the X display. === Screen off === To save battery or to get some privacy, it may be desirable to turn off the monitor. There are three approaches, but not all of them work with every computer. The second approach requires administrator privileges and the third one is a bit more involved. 1. Install DebianPkg:brightnessctl and use these commands: . To switch the monitor off: {{{brightnessctl s 0%}}} . To switch the monitor on: {{{brightnessctl s 100%}}} 2. Install the package DebianPkg:vbetool and use these commands: . To switch the monitor off: {{{sudo vbetool dpms off}}} . To switch the monitor on: {{{sudo vbetool dpms on}}} . It is also a good idea (but not required) to add a setting to your sudoers file to allow this command to be executed without password prompt. Add in {{{/etc/sudoers}}}:<<BR>> {{{user ALL=(root) NOPASSWD: /usr/sbin/vbetool}}}<<BR>> (where "user" must be replaced with the user name.) 3. This approach differs for the console and X. . Console: . To switch the monitor off: {{{setterm -blank force}}} . To switch the monitor on: {{{setterm -blank poke}}} . The commands need to be run directly on the Linux console. When using DebianPkg:screen or DebianPkg:tmux, the output must be directed to the used TTY, e.g. for tty1:<<BR>> {{{sudo sh -c 'setterm -blank force > /dev/tty1'2}}} . Graphical X11 interface:<<BR>> The following script allows to toggle the display off and on again: {{{#!highlight bash #!/bin/sh output=$(xrandr | grep ' connected ' | awk '{print $1}' | head -1) screenSize=$(xrandr | awk 'BEGIN {foundOutput=0} / '$output' / {foundOutput=1} /\*\+/ {print $1} /^[^ ]/ {if(foundOutput) exit 0}') if [ "$screenSize" != "" ]; then xrandr --output $output --fb $screenSize --off espeak -v es "Monitor apagado" else xrandr --output $output --auto espeak -v es "Monitor encendido" fi }}} ==== Prevent Automatic Monitor Reactivation ==== After some time of inactivity or also when switching from the Linux console to an X session, the monitor will be activated again after a key press. To automatically switch off the monitor again, you could create a script. For this, open a text file with any text editor and insert the following: {{{ #!/bin/sh while [ 1 ]; do sudo vbetool dpms off sleep 20 done }}} Instead of {{{sudo vbetool dpms off}}}, any of the commands from the described variants can be used.<<BR>> Afterwards, save the file and make it executable using {{{chmod u+x YOUR_SCRIPT_NAME}}} (with the actual file name) and run it in the background using {{{./YOUR_SCRIPT_NAME &}}} === Sound effects On The GNOME Desktop === 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 |
Line 370: | Line 1173: |
GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true }}} It can be enabled to start automatically in the Gnome 2 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}}} |
GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds true }}} === faster speaking eSpeak === The eSpeak speech synthesis can speak faster by adding a configuration option to the appropriate voices file. Those voices files can be found under {{{/usr/lib/i386-linux-gnu/espeak-data/voices/}}}. Pick there your language file (e. g. en-us or de). Open the appropriate file as administrator in a text editor and insert the following line: {{{ speed 150 }}} This will make eSpeak speak 50 % faster. === More Tips === |
Line 396: | Line 1202: |
* [[http://blends.alioth.debian.org/accessibility/|Accessibility blend]], | * [[https://help.gnome.org/users/gnome-help/3.12/shell-keyboard-shortcuts.html.en|GNOME 3 Shell keyboard shortcuts]] * [[http://blends.debian.org/accessibility/|Accessibility blend]], |
Line 399: | Line 1206: |
* [[http://blends.alioth.debian.org/accessibility/tasks/|Accessibility blend tasks]], | * [[http://blends.debian.org/accessibility/tasks/|Accessibility blend tasks]], |
Translation(s): English - Français - German - Italiano - Português (Brasil) - Spanish
This page describes the accessibility stack of Debian and provides configuration hints for users. For general package maintainer information on accessibility in Debian, please look at the accessibility maintainer page. For development details, please look at accessibility-devel.
Contents
- Please help us help you
- Debian installer accessibility
- LiveCD accessibility
- Braille Support
- Speech Support
- Embossers
- Accessible boot
- Console fonts
-
Graphical User Interface
- Color Themes for accessibility
- Color Blindness
- Making cursor bigger
- Full Screen magnification support
- Magnifying Glass
- Controlling the mouse from the keyboard
- gdm accessibility
- lightdm accessibility
- libreoffice accessibility
- 32bit applications accessibility
- Java accessibility
- Upgrading the Assistive Technology At Spi
- Virtualization
- Troubleshooting
- Tips and tricks
- Related links
Please help us help you
It would be very helpful for disabled users to provide test scenarios, so that non-disabled developers can know how to test accessibility packages, and thus help the accessibility team. Please see <20131008210138.GA9212@type.youpi.perso.aquilenet.fr> for details.
Debian installer accessibility
The Debian installer has braille, speech, and contrast accessibility features which are documented in the installation manual for the stable release, as well as the current draft for next upload (also on https://salsa.debian.org/installer-team/installation-guide/tree/master/en/boot-installer). Specifically, here is the support status for various releases:
- Hurd - braille (serial-only), contrast
- kFreeBSD - contrast
- Linux - braille, contrast, and speech
Braille USB devices are detected automatically; serial devices need configuration at boot.
All accessibility support is available on all images except the non-gtk netboot mini.iso image, which does not have speech support. For instance, one can use the CD-1 image from http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ or the DVD-1 image from http://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/.
Software speech is supported since Debian Wheezy (Debian 7): when you get to the boot menu (a beep should be emitted to indicate this), simply press 's' and enter. It can also be triggered from the win32-loader by choosing the expert installer, the graphical mode installation, and by appending speakup.synth=soft to the kernel command line. Note, however, that the windows boot menu is not accessible; one has to press down and enter while it is showing up at boot (for 30s, by default).
Starting from Debian Stretch (Debian 9), expert installation, rescue mode, and automatic installation are also available with accessibility support. The procedure slightly differs for UEFI and BIOS systems: BIOS systems require pressing return after each command, UEFI systems don't. Please use the instructions below as appropriate. After the boot has completed, a beep will be emitted on BIOS systems, while UEFI systems will beep twice. To access the advertised functionality, one has to first enter the "advanced" submenu from the boot menu by typing 'a' (on BIOS systems this has to be followed by return; on UEFI systems that must not be done). To enable speech, pressing 's' (again, followed by return on BIOS systems but not on UEFI systems) will enable speech support. Now various shortcuts are available: 'x' for expert installation, 'r' for rescue mode, or 'a' for automated installation. Again, these need to be followed by return when using a BIOS system. Also, all of this is with a qwerty keyboard layout.
Starting from Debian Buster (Debian 10), 'd' can be used in the boot menu to enable the high-contrast (dark) theme.
Some recent Intel sound cards need non-free firmware, so you may need to use the unofficial image that includes them (from http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/).
If the speech volume level is too low, you can type ?CapsLock-2 to make it higher (and ?CapsLock-1 to make it lower). If you prefer a faster speech rate, you can type ?CapsLock-6 (or ?CapsLock-5, to make it slower).
When installation is done via braille or speech, the same braille and speech parameters will get enabled on the installed system. Orca will also be enabled for the user account that is created at installation.
Speech synthesis should come up within the installer. If it does not, please provide enough information to let us find out where the bug is.
First and foremost, we need the exact URL you used to download the installer image; otherwise, we won't ever manage to find a bug which could only exist on the image you have used (and which has to be fixed too!).
Inside the installer, press alt-f2 to switch to a shell console, press enter to start the shell, and type
amixer -c 0 scontrols
amixer -c 1 scontrols
cat /proc/asound/cards
echo /sys/class/sound/card*/id
cat /sys/class/sound/card*/id
lsmod
dmesg | grep firmware
cat /var/run/espeakup.card
amixer -c 0 scontents
amixer -c 1 scontents
(for these, the important sections to report are the Master, Headphone, Speaker, and PCM)
Then, 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 the same commands above to debian-accessibility@lists.debian.org so we can know what sound driver is missing.
If speech synthesis does not come up at reboot into the installed system, we also need information to find out where the bug is. Please post to debian-accessibility@lists.debian.org the results of the same command above, plus
cat /etc/default/espeakup
To pre-record some boot options and thus avoid typing them blindly, one can remaster an image by using the script below:
http://people.debian.org/~sthibault/remaster-append.sh
Testing accessibility in the Debian installer is documented on the Debian installer accessibility page.
LiveCD accessibility
The GNOME LiveCD images from https://www.debian.org/CD/live/ have screen reader support. At the boot menu, a beep should be emitted to indicate that one has to press enter. The desktop then launches (TODO: add beep) and one can press super-alt-s (aka windows-alt-s) to start Orca.
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/). Brltty also provides screen reading support for the Linux text console.
Screen reading support for GNOME and other desktop environments is provided by Orca. It does not control 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
Try ls -l /etc/brlapi.key and check that the first column of the output contains an r three times.
- brltty is up and running
Execute systemctl is-active brltty
Some braille devices have an integrated braille keyboard. Brltty supports simulating keypresses on the text console. For proper simulation on Xorg (handling 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 numeric keypad. Switch back to normal by pressing insert+slash on the keypad. 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 a2
at Xorg session startup. The -b ba option tells it to connect via BrlAPI to the already-running brltty that drives the actuall braille device. The -x a2 option selects the At-Spi driver, which performs graphical screen reading.
Speech Support
Debian provides a lot of software speech synthesizers. A list can be found in the speechsynthesis blend task. Screen readers can often directly use some of the speech synthesizers, or use generic interfaces such as speech-dispatcher. speech-dispatcher runs as a daemon. Screen readers can connect to this in order to emit speech. speech-dispatcher then has several modules to support various speech syntheses.
Some of them are free both as in free speech and free beer:
- speech-dispatcher-espeak-ng: Uses espeak, provides a very large range of language support
- speech-dispatcher-festival: Uses festival
- speech-dispatcher-flite: Uses flite
Some of them are free as in free beer but not free speech
- speech-dispatcher-pico: Uses the non-free (but shipped in Debian) Pico.
- speech-dispatcher-espeak-ng + mbrola + mbrola-yourlang: Uses the non-free (but shipped in Debian) mbrola.
- speech-dispatcher-cicero: Uses Cicero (deprecated)
Others are non-free:
- speech-dispatcher-baratinoo: Use the non-free Baratinoo / Voxygen, which needs to be installed separately
- speech-dispatcher-ibmtts: Uses the non-free IBMTTS / Eloquence, which needs to be installed separately.
- speech-dispatcher-kali: Uses the non-free Kali, which needs to be installed separately.
- speech-dispatcher-voxin: Uses the non-free Voxin, which needs to be installed separately.
Speech synthesizers are known to have issues with pulseaudio (especially on the command line). It is recommended to run pulseaudio as root or disable/remove pulseaudio, as described in #Run_Pulseaudio_as_root or #Disable_Pulseaudio.
Text Console
Software speech synthesizers are supported on the text console. There are three screen readers within Debian which can make use of them: speakup, brltty, and fenrir.
BRLTTY
BRLTTY offers mature screen reading support for the console, including speech. You have the choice of using espeak directly or via speech-dispatcher. These can be installed with the brltty-espeak or the brltty-speechd package, respectively.
It is necessary to activate the speech driver in the configuration of BRLTTY. Open /etc/brltty.conf and edit it:
1. When using brltty-espeak, uncomment or insert the following line:
speech-driver es
2. When using brltty-speechd, uncomment or insert the following line:
speech-driver sd
Afterwards, reload BRLTTY with sudo service brltty restart.
Speakup
Speakup is an in-kernel screen reader for the Linux text console. See the Speakup User's Guide for details.
The simplest way to use Speakup is by means of the espeakup package. This plugs the espeak software synthesizer directly into the in-kernel screen reader. You need to add speakup_soft to /etc/modules in order to get the kernel part loaded so that espeakup can work. The configuration file (/etc/default/espeakup) can be used to set both the voice and card to be used.
Another way is use Speakup is by installing speech-dispatcher and speechd-up. Speech-dispatcher needs to be started in system-wide mode: /etc/default/speech-dispatcher needs to contain RUN=yes.
Please see the section about speech-dispatcher for more details.
Hardware speech synthesizers are also supported on the text console through the speakup drivers. Before Debian Buster (10), however, this required disabling of the the 8250 serial port driver, by setting this variable in /etc/default/grub:
GRUB_CMDLINE_LINUX="8250.nr_uarts=0"
One can then, for instance, add this line in /etc/modules to get a speakup module loaded:
speakup_dectlk
Speech-Dispatcher
ToDo: needs to be written. Document:
- aim of spd
- installation
- configuration: alsa, modules, ...
- system vs. user service
Also, if you do not have pulseaudio installed, you need to make speech-dispatcher revert to Alsa: in /etc/speech-dispatcher/speechd.conf, uncomment the line AudioOutputMethod and set it this way:
AudioOutputMethod "alsa"
Testing Speech-Dispatcher
You can test whether speech-dispatcher works by running
spd-say "some text"
Or, if you want to test a specific module such as espeak:
spd-say -o espeak "some text"
If these do not produce sound, check out the log files in $XDG_RUNTIME_DIR/speech-dispatcher/log, which can possibly be one of /run/user/1000/speech-dispatcher/log, ~/.cache/speech-dispatcher/log, or /tmp/runtime-$USER/speech-dispatcher/log. Note that $USER needs to be replaced by the actual user name.
Audio Level
Starting from Stretch (Debian 9), the audio levels are reset to a default value at bootup. If you want to change that default value, set the audio levels to the desired value (e.g. using alsamixer from the alsa-utils package) and save the settings by running alsactl store as root.
Embossers
Embossers can easily be used in text mode by means of CUPS (Common Unix Printing System) drivers.
Starting from Stretch (Debian 9), dedicated drivers have been added to the cups-filters package. See /usr/share/doc/cups-filters/README.gz for the details, but basically, you can add an embosser just like a printer.
During the driver selection, choose the "Generic" maker and choose the "Generic Braille embosser" model. This will provide several options to set formatting, page numbering, etc. The Index braille embossers have their own driver, under the "Index" maker. This provides better options for text formatting and graphical embossing.
Up to Jessie (Debian 8), only the generic text driver is available:
In the printers panel (accessed through the printer icon in the control panel or directly by browsing http://localhost:631/ and clicking on Administration), add a printer, choosing the connection (USB, parallel port, etc.). You can freely choose a description to your liking. For the driver selection, choose the "Generic" maker
- and choose the "Generic text-only printer" choice.
To print, you can then just run lp test.txt.
If your embosser doesn't do so automatically, you may need to reformat your text to the width of the paper by using the fmt command. For example, to set a width of 40 columns, use:
fmt -40 < test.txt > test2.txt lp test2.txt
Accessible boot
Audible beeps
GRUB can be made to beep when it is ready to take keyboard presses. In /etc/default/grub, uncomment or add the following line:
GRUB_INIT_TUNE="480 440 1"
and run update-grub.
Keyboard Shortcuts
It is possible to assign keyboard shortcuts to boot menu entries.
For instance, to make the letter 'a' a shortcut for an entry, add --hotkey=a just after the menuentry word of that entry:
menuentry --hotkey=a 'Linux' { ... }
However, this does not work for the auto-generated boot entries (from update-grub). As a workaround, you can create manual entries in /etc/grub.d/40_custom and assign shortcuts there. If you are unsure of the format, you can look for menuentry in /boot/grub/grub.cfg and copy this as a template.
Complete Accessibility
An option to get a completely 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 parameters to be appended. It then uses kexec to boot the desired kernel with the desired options.
However, this does not support booting Windows, only Linux.
First, install the petitboot package, create a /boot/petitboot.sh file containing for instance:
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. You can also choose a hotkey for the entry. So for instance it should look like:
menuentry 'petitboot' --hotkey=p --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> }
You may want to keep a backup of the known-to-boot kernel in a safe place, and use that path instead of the Debian-provided file whose upgrades might break.
Eventually, run update-grub to update /boot/grub/grub.cfg.
That way, at boot when you get the grub beep, you have the option to press the "End" key then "Enter", or press the hotkey "p", and that will boot linux, brltty, and petitboot.
If after good testing you really feel safe enough, you can make it the default in grub: in /etc/default/grub, set
GRUB_DEFAULT="petitboot"
and re-run update-grub . You still have the option, when grub beeps, to press "Begin" then "Enter" to boot without petitboot.
Grub magnification
Grub does not include magnification, but the font size can be increased easily by generating a font file:
grub-mkfont -s 60 -o /boot/grubfont.pf2 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
Size 60 can be changed to better fit your needs.
And adding to /etc/default/grub the line
GRUB_FONT="/boot/grubfont.pf2"
to actually use thefont.
update-grub needs to be rerun after modifying /etc/default/grub. It does not need to be re-run if you re-run grub-mkfont to set a different font size.
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 .
Another possibility is to use fbterm, which has a -s option to generate big font sizes:
fbterm -s 40
Fbterm is however not compatible with brltty and speakup.
Graphical User Interface
Currently, you can access the GNOME, MATE, XFCE, LXDE, LXQt desktops with Orca. Please see the article Orca and the GNOME accessibility guide for more details. For Gnome 3, it is useful to read the gnome shell shortcut guide
As a first start, one thing you need to know is that the application menu can be opened with the alt-f1 shortcut.
The simplest way to install these graphical user environments is to install the corresponding tasks, for instance:
apt install task-gnome-desktop
Another, lighter, way is to install Xorg and the environment meta-package by hand, but you will probably miss quite a few things. For instance:
apt-get install xorg xserver-xorg-video-all xserver-xorg-input-all desktop-base menu gnome-core
And also make sure to have orca installed to access it:
apt-get install orca
Each desktop has a way to enable accessibility. You can also do it by hand, see among the tips&tricks below.
For KDE qt4 applications accessibility such as vlc player, the qt-at-spi package needs to be installed, and the QT_ACCESSIBILITY environment variable has to be set to 1:
export QT_ACCESSIBILITY=1
(this should already be done by /etc/X11/Xsession.d/90qt-a11y)
Note: not every application written using the gtk or qt toolkits is accessible, even when accessibility is enabled. For example, spotify remains not accessible.
Note: the default configuration of speech-dispatcher uses pulseaudio, which will refuse to run as root. This means that when logging in as root, the graphical session will not get speech output. A way to circumvent this is to configure speech-dispatcher to use the ALSA output: in /etc/speech-dispatcher/speechd.conf, set the following line:
AudioOutputMethod= "alsa"
Color Themes for accessibility
To enable high contrast or to invert colours, a package called gnome-accessibility-themesexists , 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.
Colors can be inverted using xcalib too, i.e.:
xcalib -i -a
will just invert the whole desktop.
Color Blindness
For colorblindness, the KDE magnifier program includes options to alter the color of just a region (not the whole screen). It has settings for protanopia, deuteranopia, titranopia, and achromatopsia.
Making cursor bigger
Installing the big-cursor package should be making the cursor bigger in various cases.
On the MATE desktop, one can use the following to set a bigger cursor:
gsettings set org.mate.peripherals-mouse cursor-size 48
(or values even bigger than 48)
Both a black and a white cursor can be configured:
white: gsettings set org.mate.peripherals-mouse cursor-theme mate
black: gsettings set org.mate.peripherals-mouse cursor-theme mate-black
Full Screen magnification support
There are several options for full screen magnification. Pick the one that works best for you.
Option 1: Compiz
Enhanced magnification support is provided by the ezoom plugin of Compiz
Option 2: Resolution
The simplest way is to lower the screen resolution: xrandr -s 800x600
To reset the screen resolution, use: xrandr -s 0
Option 3: Panning
It is possible to zoom in without changing the screen resolution. Only a portion of the screen will be visible, so move the mouse to the screen edges to pan around.
To enable panning: xrandr --output VGA1 --mode 640x480 --fb 1280x1024 --panning 1280x1024
To turn off panning: xrandr -s 0
Option 4: Changing DPI
A method which works for some toolkits is to tell the Xserver that it had a higher resolution display than it really has:
To change DPI: xrandr --dpi 200
which will make everything basically two times bigger (200 dpi instead of the standard 96dpi or even 75dpi). That will notably work in Qt.
For gtk2, one can put the following in ~/.gtkrc-2.0:
gtk-font-name = "DejaVu Sans 20" gtk-cursor-theme-size = 64 gtk-icon-sizes = "gtk-menu=48,48 : gtk-button=48,48 : gtk-dialog = 128,128" style "default" { GtkRange::slider_width = 56 GtkRange::stepper_size = 56 GtkPaned::handle-size = 20 GtkCheckMenuItem::indicator-size = 48 GtkCheckButton::indicator-size = 48 GtkOptionMenu::indicator-size = 48 GtkTreeView::indicator-size = 48 GtkTreeView::expander-size = 40 } class "GtkWidget" style "default"
For gtk3, one can set this environment variable:
export GDK_SCALE=2
Other toolkits may need other configuration. Ideally they'd just pick up the DPI...
Option 5: Desktop Environment
The previous solutions work for any Debian system. However, depending upon which desktop environment you have installed, you may also have a simple graphical way to enable zooming. For example, Gnome-Shell and Cinnamon both include a Universal Access icon on their dock with a menu option to enable full screen zoom & pan. The Cinnamon magnifier however does not support focus tracking, the gnome-shell one does.
Magnifying Glass
Some people prefer using a virtual magnifying glass instead of magnifying the entire screen. The screen resolution is not changed, instead a small window is added which shows a magnified version of a portion of the screen. Usually you can choose where to be magnify by dragging inside the window or by having the program always magnify the region around the mouse. There are again different possibilities, you are free to choose from the following:
Option 1: Kmag
The KDE screen magnifier can be installed with apt-get install kmag.
Kmag is simple to use. It will take up more disk space (>200MiB) if you don't already have KDE installed. Although designed for KDE, Kmag works with any desktop environment, including Gnome and Cinnamon.
Option 2: Virtual Magnifying Glass
If you have trouble reading only occasional words, you may prefer Virtual Magnifying Glass (VMG). Its advantage is that it is usually not visible, unlike programs such as kmag which create a window that always covers part of your screen. Clicking on the VMG icon in the tray shows a zoomed lens around your mouse pointer. Moving the mouse, moves the lens. Clicking anywhere closes the program. (Tip: To change the zoom level, roll the mouse-wheel.)
VMG is available from Stretch (Debian 9) and later. It can be installed fine on Jessie systems too, the .deb can be obtained on https://packages.debian.org/sid/vmg , and installed with
dpkg -i vmg_3.7.1-1_amd64.deb apt-get -f install
Controlling the mouse from the keyboard
One can use the keypad to move the mouse. One needs to enable the xkb option keypad:pointerkeys for that. This can be temporarily achieved by:
setxkbmap -option keypad:pointerkeys
And permanently, by adding the line
Option "XkbOptions" "keypad:pointerkeys"
to /etc/X11/xorg.conf.d/00-keyboard.conf
To actually enable it, one has to type shift-numlock. The numpad keys then move the mouse and keypad 5 simulates the mouse click. '/', '*' and '-' can be used to switch between left, middle, and right button. '0' and 'del' hold and release the button. Type shift-numlock to get a normal numpad again.
gdm accessibility
The gdm graphical greeter supports accessibility, orca just needs to be enabled. But in Lenny the default installed gdm doesn't support this feature. So for Lenny you need, firstly, to remove gdm, and install gdm3 instead. Squeeze (Debian 6) and later already use gdm3 by default.
Then, you can enable orca with either of four 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.
- Starting from Jessie (Debian 8), it can be enabled by typing the menu-alt-s shortcut.
- It can be enabled by hand by running (for Squeeze, Debian 6):
su -s /bin/sh -c "gconftool-2 --type bool --set /desktop/gnome/applications/at/screen_reader_enabled true" Debian-gdm
or for Wheezy (Debian 7) and later:
su -s /bin/sh -c 'eval $(dbus-launch) ; export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID ; GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true' Debian-gdm || true
lightdm accessibility
The lightdm graphical greeter supports accessibility, orca just needs to be enabled. Create the directory /etc/xdg/lightdm/lightdm.conf.d, then create the file /etc/xdg/lightdm/lightdm.conf.d/80_orca-dm-wrapper.conf and write the following in it:
[SeatDefaults] greeter-wrapper=/usr/bin/orca-dm-wrapper
libreoffice accessibility
To make libreoffice accessible, one has to install libreoffice-gtk3.
32bit applications accessibility
If you are running a 64bit system, and use some 32bit applications, having libatk-adaptor installed will not be enough for making 32bit applications accessible: you need to also install the 32bit version of the package. If you have not done it already, enable i386 package installation, as documented in great details on Multiarch/HOWTO:
dpkg --add-architecture i386
Then update the APT database:
apt-get update
and you can now install the 32bit version of the GTK bridge:
apt-get install libatk-adaptor:i386 libgail-common:i386
and of the Qt bridge:
apt-get install qt-at-spi:i386
Java accessibility
To access Java applications, one needs to install the libatk-wrapper-java package. Unfortunately, in Debian versions before 9 (Stretch) OpenJDK has disabled accessibility by default (See 705511). It has to be reenabled by hand. In the file /etc/java-6-openjdk/accessibility.properties for Debian 7 (Wheezy) or /etc/java-7-openjdk/accessibility.properties for Debian 8 (Jessie) the following line must be uncommented (the # in front needs to be removed):
assistive_technologies=org.GNOME.Accessibility.AtkWrapper
Also, only the GTK look and feel has accessibility support, so in the file /etc/java-6-openjdk/swing.properties for Debian 7 (Wheezy) or /etc/java-7-openjdk/swing.properties for Debian 8 (Jessie) the following line must be uncommented (the # in front needs to be removed):
swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Upgrading the Assistive Technology At Spi
The assistive technology At Spi is the base for graphical interface accessibility, including Orca. To benefit from the latest advances in it, it is often useful to try a more recent version. Debian does not update to newer upstream versions of software, once released. An exception is the backports service that provides selected packages in more recent versions for a stable system.
For a Debian 10 ‘Buster’ system, add this to your /etc/apt/sources.list :
deb http://ftp.debian.org/debian buster-backports main
and run
apt-get update apt-get install at-spi2-core/buster-backports gir1.2-atspi-2.0/buster-backports gir1.2-atk-1.0/buster-backports libatk-adaptor/buster-backports python3-pyatspi/buster-backports orca/buster-backports libatk-wrapper-java-jni/buster-backports libatk-wrapper-java/buster-backports
If you need the development packages (e.g. to build Orca), you can run
apt-get install libatspi2.0-dev/buster-backports libatk-bridge2.0-dev/buster-backports
For a Debian 9 ‘Stretch’ system, add this to your /etc/apt/sources.list :
deb http://ftp.debian.org/debian stretch-backports-sloppy main
and run
apt-get update apt-get install at-spi2-core/stretch-backports-sloppy gir1.2-atspi-2.0/stretch-backports-sloppy gir1.2-atk-1.0/stretch-backports-sloppy libatk-adaptor/stretch-backports-sloppy python3-pyatspi/stretch-backports-sloppy orca/stretch-backports-sloppy libatk-wrapper-java-jni/stretch-backports-sloppy libatk-wrapper-java/stretch-backports-sloppy
If you need the development packages (e.g. to build Orca), you can run
apt-get install libatspi2.0-dev/stretch-backports-sloppy libatk-bridge2.0-dev/stretch-backports-sloppy
Eventually, restart your graphical session to get the new software running or reboot your system.
Virtualization
Virtualizations tools are more or less accessible
Xen
Xen uses a command-line interface, so is of course accessible. Setting up a Xen environment is however not so easy. See the ?Debian Xen wiki pages.
QEMU/KVM
QEMU/KVM can be run in text-mode, by using the -curses option. Of course, when the guest is in graphical mode, the text interface will not show anything useful, and a screen reader will still be needed inside the guest.
To let that screen reader emit speech, the -soundhw ac97 option can be used to provide the guest with a virtual sound board.
To let the screen reader emit braille, the -usbdevice braille option can be used to provide the guest with a virtual Baum braille device. The braille rendering will be done through the host brltty daemon.
Another way for braille is to pass-through a USB braille device. For instance, if on the host lsusb reports the braille device as:
Bus 001 Device 002: ID 0403:fe72 Baum
Giving the -usbdevice host:0403:fe72 option will give the USB device to the guest, i.e. you must first make sure that nothing like brltty in the host uses it, then run qemu/kvm, and then a brltty daemon inside the guest can access the physical device, as if it was connected to the virtual machine.
Of course, if one has two USB braille devices, one can be used by a brltty running on the host, and the other by a brltty running in the guest.
Troubleshooting
No Speech After Login In GNOME
If Orca only says "Welcome to Orca" and seems to be silent then, you are actually on an empty desktop. To get the focus, press Alt+F1 for the menu or Alt+F2 for the run-dialog.
No Sound
In rare cases, the system might boot with the volume being too low or with a muted sound card. The following commands might solve this:
amixer set Master 50%+ amixer set PCM 50%+ amixer set Master unmute
Note: the 50% is an example value. You can use any other value that suits you.
BRLTTY/braille stops after boot
In Wheezy (Debian 7) there has been added a program called modemmanager which scans serial (and possibly usb2serial) devices to detect it as a modem. Unfortunately this destroys the communication with braille displays connected via those ports. Just
apt-get remove modemmanager
to repair this issue.
Inaccessible GNOME 3 session / no fallback mode
It can happen that you end up in a inadequately accessible GNOME 3 session. For instance, if you press alt+f1 for the menu, nothing is spoken. This has to do with the not-yet well accessible GNOME shell. Please see below how to resolve this problem.
Debian Jessie (GNOME >= 3.8)
In Debian Jessie with GNOME version >= 3.8, there is a mode called GNOME classic. This one uses the GNOME shell directly to achieve GNOME 2 alike user experience. When using startx, you can set up your .xinitrc as follows to use this mode:
if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi exec gnome-session --session=gnome-classic
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
The support is however broken since Squeeze (debian 6), see 696965, the following patch can be applied to Xorg to fix it:
diff --git a/src/dummy_driver.c b/src/dummy_driver.c index 6062c39..566a006 100644 --- a/src/dummy_driver.c +++ b/src/dummy_driver.c @@ -813,7 +813,7 @@ dummyDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, poin switch (op) { case GET_REQUIRED_HW_INTERFACES: flag = (CARD32*)ptr; - (*flag) = HW_SKIP_CONSOLE; + (*flag) = 0; return TRUE; default: return FALSE;
Run Pulseaudio as root
To be able to run speech both at the text console and in graphical sessions, one can run pulseaudio as root. This is not recommended by upstream pulseaudio so one has to tinker a bit:
put this into /root/.config/pulse/client.conf :
default-server = unix:/tmp/pulse.sock autospawn = no
and put this into $HOME/.config/pulse/default.pa
.include /etc/pulse/default.pa load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse.sock
Disable Pulseaudio
Pulseaudio can cause problems when running a console screen reader as root that is using ALSA, as for instance Speakup or BRLTTY. Apart from running Pulseaudio as root, it can be disabled as well.
There are two options available. The first one works for MATE or an even more light-weight desktop environment by removing the package:
sudo apt remove pulseaudio
For other desktop environments like GNOME it is impossible to remove Pulseaudio. Disabling works as follows:
1. Execute the command
dpkg-divert --add --rename /usr/share/alsa/pulse-alsa.conf
2. Instruct pulseaudio not to spawn itself automatically. Edit /etc/pulse/client.conf and search for a line like:
; autospawn = yes
and change it into
autospawn = no
Hint: you should reconfigure Speech-Dispatcher to use a different audio output method. Edit /etc/speech-dispatcher/speechd.conf and change the line
# AudioOutputMethod "pulse"
to
AudioOutputMethod "libao"
You need to restart Speech-Dispatcher:
killall speech-dispatcher; speech-dispatcher
If you configured Speech-Dispatcher to run system-wide, the command to restart it is:
systemctl restart speech-dispatcher
and you should add root to the audio group using sudo adduser root audio.
Tips and tricks
speakup and package configuration questions
When using the speakup screen reader, the default frontend for package configuration is not convenient. One can switch to the Readline frontend by default by running
dpkg-reconfigure debconf
and choose Readline. One can also choose the frontend for just a session by running
export DEBIAN_FRONTEND=readline
Accessibility in chroots
In order for applications to be accessible from within chroots, they need to have access to the at-spi bus. This bus lives in both /tmp and $HOME, so the following is needed, in addition to the usual at-spi configuration inside the chroot:
mount /tmp /where/the/chroot/is/tmp -o bind mount /home /where/the/chroot/is/home -o bind
And as usual, the DISPLAY and XAUTHORITY environment variable should set to the value they have outside the chroot, in order to access the X display.
Screen off
To save battery or to get some privacy, it may be desirable to turn off the monitor. There are three approaches, but not all of them work with every computer. The second approach requires administrator privileges and the third one is a bit more involved.
Install brightnessctl and use these commands:
To switch the monitor off: brightnessctl s 0%
To switch the monitor on: brightnessctl s 100%
Install the package vbetool and use these commands:
To switch the monitor off: sudo vbetool dpms off
To switch the monitor on: sudo vbetool dpms on
- It is also a good idea (but not required) to add a setting to your sudoers file to allow this command to be executed without password prompt. Add in
/etc/sudoers:
user ALL=(root) NOPASSWD: /usr/sbin/vbetool
(where "user" must be replaced with the user name.)
- This approach differs for the console and X.
- Console:
Graphical X11 interface:
The following script allows to toggle the display off and on again:1 #!/bin/sh 2 output=$(xrandr | grep ' connected ' | awk '{print $1}' | head -1) 3 screenSize=$(xrandr | awk 'BEGIN {foundOutput=0} 4 / '$output' / {foundOutput=1} 5 /\*\+/ {print $1} 6 /^[^ ]/ {if(foundOutput) exit 0}') 7 if [ "$screenSize" != "" ]; then 8 xrandr --output $output --fb $screenSize --off 9 espeak -v es "Monitor apagado" 10 else 11 xrandr --output $output --auto 12 espeak -v es "Monitor encendido" 13 fi
Prevent Automatic Monitor Reactivation
After some time of inactivity or also when switching from the Linux console to an X session, the monitor will be activated again after a key press. To automatically switch off the monitor again, you could create a script. For this, open a text file with any text editor and insert the following:
while [ 1 ]; do sudo vbetool dpms off sleep 20 done
Instead of sudo vbetool dpms off, any of the commands from the described variants can be used.
Afterwards, save the file and make it executable using
chmod u+x YOUR_SCRIPT_NAME
(with the actual file name) and run it in the background using
./YOUR_SCRIPT_NAME &
Sound effects On The GNOME Desktop
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 eval $(dbus-launch); export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds true
faster speaking eSpeak
The eSpeak speech synthesis can speak faster by adding a configuration option to the appropriate voices file. Those voices files can be found under /usr/lib/i386-linux-gnu/espeak-data/voices/. Pick there your language file (e. g. en-us or de). Open the appropriate file as administrator in a text editor and insert the following line:
speed 150
This will make eSpeak speak 50 % faster.
More Tips
More tips are available on http://brl.thefreecat.org/wiki/
Related links
Debian Accessibility team webpage provides official information. Only a few developers can modify it.
- #debian-a11y on the oftc IRC network, come and chat with us!
Gnome for the Blind provides some information about gnome accessibility support
GNOME's screen reader and screen magnification software: Orca
Accessibility blend, provide automatically-generated information on accessibility, like list statistics, and package descriptions and bugs.
Accessibility blend tasks, provides an insight in the set of packages that Debian ships for various needs (braille, speech, OCR, ...)