Getting the Orca Screen-Reader to work under Plasma 5

In case some readers might not know, even though computing is heavily visual, certain advanced desktop-managers can be set up for impaired people to use – which also falls under the category of “Accessibility”. This includes the ability of the computer to speak a robotic description of what’s happening on the screen, in case a user can hear, but not see properly.

There are some users who feel they should stick with Windows, because Accessibility can be so hard to set up under Linux.

There are other users who are sorry they every clicked on “Accessibility”, because now they cannot turn it off.

If a visually-impaired user wants Accessibility set up on a Linux computer, I’d definitely suggest letting a trusted other person set it up, because until it’s set up, complicated things may need to be done, and accessibility will not be set up, so that the end-user will not benefit from Accessibility, while trying to set it up.

Some regular users find screen-readers trying for their patience, because of the fast, robotic voice, until they manage to shut it down again. Personally, I only find screen-readers trying, If I happen to have set one up late at night, because the voice could cause some sort of noise-complaint from my neighbors, droning on until I manage to disable it again. In the middle of the day, I don’t find these experiments trying.

I guess that a good question which some people might ask me, would be why I even do such an experiment, given that I’m not visually impaired and don’t need it. And what I do is set everything up until it works, and then disable it again.

On my recently-installed Debian / Stretch computer named ‘Plato’, which is also running Plasma 5 as its desktop-manager, I just did manage to get this feature to work, and then to disable it again.

(Updated 15h50, 1/17/2018 : )

The first thing I had to do, was install a long list of packages. The list below includes what was installed, but it should not really be necessary to give the command to the package-manager manually, to install everything here, because some of these packages will follow as dependencies from other packages. But here is a roundabout list:

  • espeak-ng
  • espeak-ng-espeak
  • speech-dispatcher
  • speech-dispatcher-audio-plugins
  • speech-dispatcher-espeak-ng
  • kaccessible
  • jovie
  • kmouth
  • gnome-orca
  • qt-at-spi
  • qt-at-spi-doc
  • libgail18
  • libgail-dev
  • libgail-doc
  • libgail-common

After I had installed all that, I went into the System Settings Panel for Plasma 5, went into Desktop-Behavior, and then descended into the settings panel named Accessibility. There I checked off the following check-box:

screenshot_20180116_171432

 

After that, I did a reboot.

What I found, was that the feature was still not working properly, although if I decided to start the ‘Jovie’ application, at least it seemed to be able to generate speech by itself.

What I discovered, was that I actually needed to start the process manually, which is named ‘orca’. That started everything working. But under Debian / Stretch, installing this package does not auto-start it. And, because I did want to keep PulseAudio working in user mode, I also did not go into ‘/etc/defaults’, to tell the ‘speech-dispatcher’ process to start as root. Doing so can crash our sound system, if we have PulseAudio running as user!

So instead, simply giving the command

orca &

As User, started the process in a friendly way. Further, knowing that, we could go so far as to create a script or a .desktop-File, in one of our user-space Autostart folders, to automate this for us. It’s not essential, that ‘orca’ be started early.

Also,

ps fu -A | grep orca

kill -15 (…)

seemed to end it in a friendly way.

Basically, it works.

(Edit 1/17/2018 : )

One fact which other people have complained about, and which I must acknowledge here, is that once they have set the check-box in their System Settings Panel, and once the daemon has run, we are no longer able to uncheck the check-box in the System Settings Panel. If we do that, and then Click “Apply”, and reboot the computer, we find that the check-box is checked off again.

Personally, I don’t know about a fix to this, but also know that it doesn’t distress me, because I can prevent the daemon from running, the way I’m set up.

But then, because some people find it to be an inadequate solution, just to keep the daemon from auto-starting, they just uninstall the package ‘gnome-orca’, to shut up their voices.


 

What I have discovered, is that installing the package ‘gnome-orca’ leaves the file

/etc/xdg/autostart/orca-autostart.desktop

The purpose of which is, to auto-start the ‘orca’ process – with no special command-line parameters. But this .desktop-File has as one of its preconditions, that Orca be enabled in our GNOME Settings.

Therefore, with my setup, the fact that I’m not running GNOME in the first place, causes this autostart-File to remain dormant, during each reboot.


 

Another question which some people might have would be, ‘Assuming we want screen-reading to take place, for certain applications, are there environment-variables which need to be set, before they are launched?’

And a partial answer would be, that Qt-5 Applications tend to run out-of-the-box, thus requiring no special variables to be set. Because Plasma 5 is Qt-5-based, this happens to work well for Plasma 5. But in case we have Qt-4 or Gtk-Applications that are reluctant to start screen-reading, or, in case we’d like “LibreOffice” to start screen-reading, then we may need to set certain environment-variables, before launching those applications:

 


# For Qt4:
export QT_ACCESSIBILITY=1

# For Gtk:
export GTK_MODULES="gail:atk-bridge"

# For LibreOffice:
export SAL_USE_VCLPLUGIN="gtk" GTK_MODULES="gail:atk-bridge"


 

Now, what some people might try, to enable the feature fully, without having to create numerous custom-launchers, is to write a shell-script that includes the above ‘export’ statements, and to include their shell in the system-directory:

/etc/profile.d

From where, during each restart, all processes inherit defined environment-variables. But I can think of two reasons, for which not to go that far:

  1. What that step would really do, is test each and every program on our system, which has a GUI, for whether their Accessibility-bridge support is error-free. The actual desktop-manager usually ‘knows’ when to switch this on. But the same request can be made for every Qt-4 and Gtk application. And then, there is always some possibility, that something breaks, because 1 application was not programmed with Accessibility-support in mind.
  2. Taking this step would embed the underpinnings further on our computer, according to which we might want screen-reading always to be enabled. My problem with that, was the fact that I was only testing the capability, and did not want it always-enabled. Once tested and verified, I wanted the feature disabled, rather.

Ages ago and on another computer, I discovered that enabling it via environment variables in ‘/etc/profile.d’ did in fact break one or two programs.

I suppose that if the reader wanted to go that far, he’d also want to make sure that he has this package installed:

  • libatk-wrapper-java

But again, There are certain cases where ordinary programs report issues, having this feature of the Java library either installed or partially enabled.

Dirk

 

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.