GNOME Bugzilla – Bug 746627
orca is unable to read the contents of gdm when wayland is used
Last modified: 2015-03-24 11:49:55 UTC
When gdm is using the wayland session instead of xorg, orca, the screen reader, cannot read the contents of gdm. This prevents blind people from using gdm as their login manager when wayland is used
As a workaround in the short term, you can force gdm to continue to use X, with
in the [daemon] section of /etc/gdm/custom.conf.
I've just spoken to joanie on the accessibility channel on gnome.org. I have no idea if this is it, but there was a similar issue in gnome shell with wayland that can be fixed by adding a missing window:activate event. I have no idea if this will work with gdm, but it's worth a shot. Failing that, how do I gather debug info so that people can see what is going on?
I forgot to add that I varified that wayland is indeed what's keeping orca from reading the gdm window. I did this by first changing wayland-enable to false, and restarting. Orca was immediately able to see the gdm window, although there were a couple of unlabeled buttons. That's a different issue though. I then turned wayland back on with wayland-enable=true, and restarted. Orca was no longer able to see the gdm window. Since gnome 3.16 is already out the door, could this possibly get fixed by 3.16.1? I hate to ask, but this is very important for blind people, including me.
<mclasen> so, it seems that orca doesn't work with gnome-shell under wayland
<mclasen> does anybody have a hunch where that breakage would be ?
<mclasen> somewhere in clutter ?
<ebassi> mclasen: Possibly; I landed a commit before spinning 1.22.0 that didn't just assume that you could ask for the screen coordinates and the x11 backend would reply
<ebassi> mclasen: But to be fair I know nearly nothing about Orca on Wayland
<mclasen> thats a potential fix, then ?
<mclasen> I don't think orca should have too close ties to the display server... all of a11y is running over its own bus
<mclasen> I still have clutter 1.21.8 here
<ebassi> mclasen: fmuellner wrote the patch originally, so he may know something
<fmuellner> mclasen, ebassi: no, that was just a drive-by fix when going through fedora bugmail
<mclasen> well, I have clutter 1.22.0 incoming here, I'll report back whether that makes a difference
<infapi00> hmm mclasen just quit
<infapi00> in any case
<infapi00> what depends on wayland
<infapi00> or in other words
<infapi00> what doesn't work in wayland world
<infapi00> is stuff like setting mouse position, tracking mouse position and others
<infapi00> in theory, gnome-shell accessibles should be exposed
<infapi00> the accessible hierarchy
<infapi00> not sure why it fails specifically on gdm view
<infapi00> that is the bug joanmarie diggs pointed to me today
<infapi00> bug 746627
<halfline> infapi00: it's not just the gdm view
<halfline> infapi00: it's all shell ui
<halfline> (under wayland)
<mclasen> nope, clutter 1.22 doesn't change things her
<infapi00> halfline, ok, I assumed that it was another gdm bug
<infapi00> we fixed one specific gdm-view bug last week
<halfline> so i guess a11y on clutter is broken with wayland backend
<halfline> yea i remember the user list issue
<infapi00> well, basically accessibility support under wayland is getting behind
<infapi00> but it is true that is should be somewhat functional
<infapi00> and not totally broken
<halfline> well it's not totally broken, gtk applications work
<halfline> just clutter stuff doesn't
<halfline> (like the login screen, overview, etc)
<infapi00> well, yes I was still talking about gnome-shell
<halfline> so maybe some call to install event listeners or something is getting made in the X11 backend that's not getting made in the wayland backend?
<halfline> something like that
<infapi00> halfline, I don't have right now a wayland system
<infapi00> but if you have
<fmuellner> mclasen: I would have been surprised - the bug was that the x11 codepath was used even on wayland, and there was a big: "FIXME: implement for other backends" there ...
<infapi00> could you try it with accerciser?
<mclasen> I see that code now, I think
<mclasen> _cally_actor_get_top_level_origin ?
<infapi00> mclasen, that code is just to compute the position of the accessibles
<mclasen> I know
<infapi00> but if orca is not exposing anything
<infapi00> that means that the accessible tree is not around
<infapi00> halfline, could you try accerciser and see if under gnome-shell, any accessible child is around?
<mclasen> lets see if I can get in a wayland session to sniff around
<rtcm> just a guess: perhaps gnome-shell being the display server, starts before the a11y dbus daemon is up and then doens't connect?
<halfline> infapi00: yup, they're there
<infapi00> halfline, how many direct children has gnome-shell?
<mclasen> fmuellner: I did a 3.14.10 release right after 3.16.0 (for gtk...)
<halfline> infapi00: 1
<infapi00> in theory it should have just one, the stage
<infapi00> yes, the one with window role
<infapi00> and the window child has more children?
<halfline> 34 panel objects
<infapi00> well, this is strange
<infapi00> so the children is there
<halfline> so the tree is there
<halfline> but not getting sent to orca
<halfline> or maybe orca is ignoring it?
<halfline> i guess must be the latter
<infapi00> halfline, well, but if accerciser get the info
<infapi00> orca should also be able to get it
<halfline> infapi00: right exactly
<infapi00> well, is somewhat late here
<halfline> so must be an orca bug
<infapi00> but I will ping joanie
<infapi00> and see if we can find what is happening
<joanie> hey guys
<joanie> halfline: infapi00 caught me up
<mclasen> hey joanie, thanks for coming by
<joanie> could you do me a favor?
<joanie> use #2
<joanie> #1 is for users
<joanie> I'd like to see what Orca is getting
<joanie> and why it's not responding, assuming it's getting signals
<joanie> later today I can update my f22
<mclasen> halfline: can you do that in your wayland session ?
* halfline tries
<joanie> fwiw, after infapi00 fixed the bugs he pointed out, Orca worked with gnome-shell
<halfline> joanie: nothing after INFO: Settings manager activated
<joanie> nothing at all?
<joanie> you should have tons of spewage
<halfline> nope, nothing
<halfline> the whole file is
<halfline> Attempt to load orca-customizations from /home/rstrode/.local/share/orca/orca-customizations.py succeeded.
<halfline> INFO: Settings manager activated
<joanie> what if you interact with a gtk+ app
<joanie> demo too
<halfline> ahh, i just gdb attached to orca and it's sitting at a seg fault
<joanie> what segfaulted?
<halfline> let me install debuginfo so i can get a better trace
<joanie> I'm updating F22 now
<joanie> mondays are always so mondayish
<halfline> of course it's not crashing now... trace from before : http://fpaste.org/201704/14271402/
* joanie looks
<joanie> there was a timing issue related to the mouse review featurs
<joanie> do you have that enabled?
<halfline> i don't think so. what command do i run to find out for sure?
<joanie> get into orca's preferences
<joanie> which we hide because they are not pretty
<joanie> insert + space
<joanie> having said that, it concerns me that Orca is spitting up that fast
<joanie> without any debugging output
<halfline> neither present tooltips or speak object under mouse is checked
<joanie> or bad, as that was my suspect
<joanie> could you try accerciser's event listener?
<joanie> not just looking at the tree
* joanie brings up accerciser
<joanie> and read before you do
<halfline> so hang on the file has data in it now!
<joanie> oh yay!
* joanie waits "happily"
<halfline> i guess before it was segfaulting right away
<halfline> but now that i can't get it to segfault, the file is filling up
<joanie> it spews a lot of debug output
<joanie> so we can hunt down elusive bugs
<joanie> if you can get orca running, but failing to speak as you navigate in gnome-shell
<halfline> here's the first 4000 lines of the file http://ur1.ca/jyvi8
<joanie> with the keyboard
* joanie looks
<halfline> actually let me regenerate the file from a pristine state
<halfline> and tell you exactly what operations i'm performing
<joanie> hold on
<joanie> will you disable braille?
<joanie> so those tracebacks are gone
<joanie> orca will keep trying on the off chance the user connected his/her display after
<joanie> but it's noise for us
<halfline> wow it's quite large!
<joanie> that's why you disable it after
<joanie> whatcha got?
<joanie> search for KEYBOARDEVENT
* joanie looks
<halfline> so that's me logging in, going to the overview (with the windows key), typing "terminal" into the search overview (but not enter), then hitting the super key again
<halfline> all the events seem to bethere
<halfline> i wonder if sound works at all
<halfline> oh wait, of course it does, gtk apps work
<halfline> let me verify they work /this/ session
<joanie> i only see one thing spoken
<mclasen> I have heard orca in your cube a while ago
<joanie> 'screen reader on'
<halfline> heh, gtk apps don't speak anymore
<joanie> kill speech-dispatcher
<kalev> killall speech-dispatcher :)
<kalev> I know the trick too! :)
<joanie> you learn it
* joanie rolls her eyes
<joanie> a simpler test -- to eliminate lousy presentation of search results -- would be alt+tab
<joanie> or arrowing around items in the dash
<halfline> sure one moment
<joanie> or arrowing around search results
<joanie> but I think I see missing events
* joanie looks
<halfline> alt-tab http://ur1.ca/jyvjl
* joanie looks at alt-tab first
<joanie> hmmm I thought those buttons had names or labels
<joanie> ah labels
<joanie> ok, something seems to be making orca ignore the selection changes
<joanie> halfline: and if you hold down alt and press and release tab several times rather than once,
<joanie> orca remains silent?
<joanie> there's a bug in gnome-shell if memory serves me related to the first icon
<joanie> I had a hackaround for it
<joanie> but maybe it's no longer working
<halfline> indeed, silent
<halfline> as long as i hold down alt, pressing tab is quiet
<joanie> lemme reboot this box and see if I can repro it
<halfline> here's me hitting alt-f2 and typing gnome-terminal
<halfline> joanie: ok
<joanie> in theory I'm in a wayland session now
<joanie> and orca is speaking in gnome-shell
<halfline> probably ont
<joanie> how can I be 100% sure i'm in wayland?
<halfline> there was a bug in 3.15.92 that makes it lie to you
<halfline> and tell you you're in wayland when you aren't
<joanie> so what do I need to do in f22 to ensure I'm in wayland?
<kalev> there's a super secret repo with latest 3.16.0 builds, if you want to try updating :)
<joanie> sure kalev
<halfline> joanie: could download this one file directly too: http://koji.fedoraproject.org/koji/buildinfo?buildID=622906
<halfline> or use kalev'd koji static repo
<kalev> for the koji repo, drop this in /etc/yum.repos.d/
<kalev> and might have to edit them to be enabled=1 or pass --enablerepo to yum
<joanie> ok, almost done
<joanie> aha. I was overlooking the obvious
<joanie> kalev: I'll triple check and then file a bug
<joanie> but gnome-shell for wayland seems to not be emitting window:activate events
<joanie> as a result, orca doesn't know the user is in gnome-shell
<joanie> mclasen: ^^
<joanie> in retrospect: duh
<mclasen> great detective work
<joanie> not at all
<joanie> I was digging into all of these far less obvious things
<joanie> i'm an idiot sometimes making things harder than they are
<joanie> anyhoo, because I'm an idiot I'm going to verify that *now* I'm not being one
<kalev> joanie: great detective work indeed!
<joanie> kalev: see idiot statement above
<joanie> I should have seen this an hour or so ago
<joanie> proof that two heads are better than one. get it? :P
<joanie> kalev: you have an upstream bug opened for this yet?
<kalev> joanie: nope. I never knew about this before mclasen asked about it here.
<joanie> sorry. phone rang. anyhoo, just field bug 746670
*** This bug has been marked as a duplicate of bug 746670 ***