[PATCH] Accessibility partly broken due to X root window being kept from login session.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
LightDM GTK Greeter |
Fix Released
|
Undecided
|
Luke Yelavich | ||
lightdm-gtk-greeter (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
unity-greeter (Ubuntu) |
Fix Released
|
Undecided
|
Luke Yelavich |
Bug Description
affects lightdm
Lightdm version 1.21.5, in 17.04. Some components of the Unity and Mate desktops are currently not accessible when logging in using lightdm. So far I've tested and reproduced this problem with both unity-greeter, and lightdm-
At-spi gets loaded in the greeter for use with Orca. At-spi ads a property atom, AT_SPI_BUS, to the root X window to allow software to be able to find the accessibility bus. If my understanding is correct, this root window is kept around for the user login session. What then happens is software either using Qt or Gtk loads its accessibility support code, which in turn looks for the AT_SPI_BUS property. Normally on session load, this property is not present, at which point the support code then connects to org.a11y.bus, which in turn via systemd loads the at-spi bus launcher and registry to respond to the bus activation/request. At-spi adds the AT_SPI_BUS property to the X root window at load.
However the AT_SPI_BUS property is hanging around from the greeter session, which is confusing software. At-spi only then gets loaded from /etc/xdg/
Related branches
- Robert Ancell: Approve
-
Diff: 48 lines (+0/-31)1 file modifiedsrc/unity-greeter.vala (+0/-31)
- Sean Davis: Disapprove (superseded)
-
Diff: 68 lines (+2/-24)2 files modifiedconfigure.ac (+0/-15)
src/lightdm-gtk-greeter.c (+2/-9)
- Sean Davis: Approve
-
Diff: 21 lines (+12/-0)1 file modifiedsrc/lightdm-gtk-greeter.c (+12/-0)
affects: | lightdm → lightdm-gtk-greeter |
Changed in lightdm-gtk-greeter: | |
assignee: | nobody → Luke Yelavich (themuso) |
Changed in unity-greeter (Ubuntu): | |
assignee: | nobody → Luke Yelavich (themuso) |
summary: |
- Accessibility partly broken due to X root window being kept from login - session. + [PATCH] Accessibility partly broken due to X root window being kept from + login session. |
Changed in lightdm-gtk-greeter: | |
milestone: | none → 2.0.4 |
Changed in lightdm-gtk-greeter: | |
status: | Fix Committed → Fix Released |
Changed in lightdm-gtk-greeter (Ubuntu): | |
status: | New → Fix Released |
tags: | added: a11y |
The X server is not reset between the greeter and session so the background can remain the same. This means anything set in the greeter will remain.
So the solution is probably:
- Make sure the greeter cleans up anything that it has left around
- Make the session smarter about checking if anything left by the greeter is still applicable. For example the AT_SPI_BUS value might point to a closed socket and can be ignored / overwritten.
The second is probably the most reliable, so any failure in the greeter doesn't cause the session to fail.