Re: [orca-list] Lightdm GTK greeter accessibility revisited



Hello,

Please rebuild from the same url if you are still free for testing
http://files.pvagner.tk/lightdm-gtk-greeter.tar.gz

I guess I've managed to make it work as we wish it to.

I assume processes started using g_spawn_async are better terminated using g_spawn_close_pid rather than using plain waitpid. Anyway I know nothing about all these libraries and their functions I have just been tinkering with lightdm until it started to work for me. What I did is inspired by the code I've seen when looking at the revision diffs. Please test if you like. If it's confirmed as working, I'll post the patch to the bug report Kyle has filed a while ago. The patch is very simple and it cleanly applies to both latest stable version as well as to the latest code found in the bzr trunk.

P.S. It's now also clear It's confirmed the issue is not in orca.

Greetings

Peter

On 03.12.2015 at 03:41 kendell clark wrote:
hi
Got it. I'll indeed download your pkgbuild. Congrats for looking into
this, you got a great deal further than either kyle or I did, I'd pretty
much given it up as a lost cause. Since you have done this, I'm
determined to get this fixed. Joanie, would you be willing to look into
this if we can figure out what's going on with orca, if it is indeed orca?
Thanks
Kendell clark


On 12/02/2015 08:22 PM, Peter Vágner wrote:
Hello,

I am sorry you are most likelly missunderstanding me.

Please try downloading my PKGBUILD from
http://files.pvagner.tk/lightdm-gtk-greeter.tar.gz and please build it
as normal.

Then make sure you do have screen reader configured and enabled in
/etc/lightdm/lightdm-gtk-greeter.conf
i.e. it contains something similar to this effect

[greeter]
reader=orca
a11y-states=reader

Of course it may contain more accessibility related and other
preferences you like.

Then start it
sudo systemctl start lightdm

and finally test that it really does work with my one line tweak I am
proposing in one of the comments to the Kyle's bug.

However there is a new issue I am seeking to get some help with. When
the greeter is showing, orca is running you do have nice accessible
greeter session.
When you try to switch off screen reader at this point either by hitting
F4 or from the menu bar you will notice orca freezing.
In fact you can even see it freezing when doing
sudo killal orca
instead of using lightdm greeter feature to close it.

Regarding sig term vs sig kill debate I have found a blogpost explaining
the differences at https://major.io/2010/03/18/sigterm-vs-sigkill/

When looking into orca source code I can see a method which is called
when orca receives SIGTERM. It's shutdownOnSignal found at line 709 in
the file src/orca/orca.py . The very first thing orca does here is that
it should print a message saying 'ORCA: Shutting down and exiting due to
signal=%d' into its debug file. I haven't found this in the log thus I
think python is crashing here or something similar.



Greetings

Peter


On 02.12.2015 at 23:28 kendell clark wrote:
hi
I've never personally written a killall orca command only to have orca
freeze. When that command is given, orca is killed by the kernel, and
immediately. What I have noticed, and kyle backs this up in his bug
report, is that once orca is started in lightdm's gtk greeter, all
keyboard input never seems to reach lightdm. I can't figure out whether
orca has frozen, or simply has nothing to speak. I seem to remember orca
says "frame" once it is started and nothing more. You can no longer log
in, kill orca, anything.
Thanks
Kendell clark


On 12/02/2015 09:27 AM, Peter Vágner wrote:
Hello,

As I have said the only thing problematic with lightdm vs orca usage is
the fact orca can't be killed gracefully. An ugly hack would be a script
which would trap sigterm and forcefully kill orca however I have started
this discussion so we can try to find someone who can give us some tips
on how to address it properly.

If you don't care about starting at stopping orca on the login screen
i.e. sharing computer with sighted folks then you should be fine
tweaking it as I have explained at the bug here...
https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1483864

Have you ever seen a case when you wrote killall orca and orca has
frozen? Can you reproduce it, then this is something I would like to
understand better.

Greetings

Peter

On 02.12.2015 at 15:45 kendell clark wrote:
hi
THis has been going on for quite a while now. I've been following these
bugs because they're causing some major issues in our  mate version of
sonar. There's a catch 22. I can't include gdm because gdm pulls in
lots
of gnome, but lightdm causes issues with orca so I can't easily include
that. But it's the only other accessible login dm. The best solution
would be to use the unity greeter ubuntu and vinux use, but trying to
build it in aur pulls in way too many ubuntu specific under the hood
components, patched versions of gtk, unity libs, etc. Too much stuff to
justify trying to get into community. I can't help you solve it but I
wanted to publically encourage you to keep at it since the lightdm
people seem to have written this off as too much effort, pick
another dm?
Thanks
Kendell clark


On 12/02/2015 05:15 AM, Peter Vágner wrote:
Hello,

This is turning in to a little story, so please apologize for
posting a
lot of background details.
I am currently trying to run lightdm with lightdm GTK greeter
working on
my system. I would like to use it to either login into mate, or login
into xfce4 or login directly into kodi.
Lightdm appears to be only one accessible enough from the minimalist
desktop managers I know of.
Lightdm greeter started implementing accessibility support in a way so
it has preferences to launch on screen keyboard, screen reader from
its
menu. The problem with this initial goal was the issue where upon
dismissing the greeter session there was at-spi2 core bus still
present
and it was not easy to get accessibility support working inside the
resulting user session after logging in. Here is the corresponding bug
report https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1366534.
While in this state I was able to hack around the fact there are
lightdm
greeter processes open after the greeter is dismissed by using
session-setup-script and session-cleanup-script to kill these.
While not
particularly nice solution this worked pretty well.
There were issues with other stale processes so lightdm GTK greeter
now
implements a way to run some helper apps such as at-spi2-core or
applet
indicators specific processes remembers their pid's and gracefully
kills
these when exiting. While implementing this a feature that causes more
problem than it solves crept in unfortunately. Current versions of
lightdm GTK greeter now set NO_AT_BRIDGE environment variable. The
original reasoning behind this is that when lightdm greeter launches
at-spi2 it should force ATK not to launch it again by setting
("NO_AT_BRIDGE", to true. The result of this is that orca is started,
at-spi2 is started but these can't communicate to each other I
guess. By
experimenting I have found out that orca and ATK won't start another
copy of at-spi2 core if one is already launched by lightdm so I think
this can be removed without risking other possible issues. The
corresponding bug report is at
https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1483864 .
So given this I hoped we might see awesome accessibility related
greeter
experience very soon but unfortunately I've found another issue and
this
time I am afraid it might have something to do with orca.
When lightdm GTK greeter is configured with reader in its
accessibility
states it includes Screen reader menu item which allows starting
orca. A
keyboard equivalent of enabling that menu item is an F4 keyboard
shortcut which is working as a toggle i.e. it switches screen
reader to
on or off. Under the hood lightdm GTK greeter launches orca or to be
precise the command configured in its config file, remembers its
pid and
then kills that pid when the feature is toggled to off.
What I have just noticed when orca receives sigterm it appears to
freeze
here. I am however only able to reproduce this when running inside a
lightdm greeter session and when logged into xfce for example I can
kill
orca without issues. This is with orca 3.18.2 and with orca master.
Unfortunately I can find nothing useful in the debug*.out file orca
generates. How would I go about trying to better troubleshoot this?

I do have some other possibly related questions:
- Orca launches other helper apps such as speech-dispatcher which in
turn may optionally also launch pulseaudio. Should these also be
tracked
in lightdm GTK greeter the same way at-spi is?
- When lightdm is running as a systemd service and I call systemctl
stop
lightdm the greeter process is terminated however at-spi and I suspect
the other tracked processes are still running. Is this a bug?

Greetings

Peter

_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Orca wiki: https://wiki.gnome.org/Projects/Orca
Orca documentation: https://help.gnome.org/users/orca/stable/
GNOME Universal Access guide:
https://help.gnome.org/users/gnome-help/stable/a11y.html
Log bugs and feature requests at http://bugzilla.gnome.org



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]