Ubiquity, GNOME, and accessibility.

Luke Yelavich themuso at themuso.com
Sat Jan 19 09:32:05 GMT 2008

On Sat, Jan 19, 2008 at 12:58:41AM EST, Colin Watson wrote:
> On Tue, Jan 15, 2008 at 05:26:39PM +1100, Luke Yelavich wrote:
> > At UDS Boston, I briefly talked with Colin about accessibility, and
> > the only-ubiquity option to only launch ubiquity on the live CD. Since
> > this option will be easily made available to users in the gfxboot
> > screen re-organisation, I am writing to discuss implementing
> > accessibility for this feature, as only using Ubiquity will be
> > selectable by those who may wish to enable accessibility.
> Right, good point. If your mail filters are ready to get a substantial
> mail flood due to being a bug contact for ubiquity, I'd be happy to add
> you to the ubuntu-installer team so that you can do the ubiquity work
> directly.

if you think this would make sense, ok. However, at this point, my python is not very strong, so unless there are good examples elsewhere in the code that I can learn from, perhaps it would be better if someone was reviewing my patches.

> > Since only the necessary parts of GNOME are launched along with
> > ubiquity, in order to provide wallpaper, theme, and window management,
> > all running as root, and since from my checking that this all gets run
> > by ubiquity itself, some work needs to be done, both on the ubiquity
> > side, as well as the casper side. From what I understand about the way
> > things work now, the following needs to happen.
> > 
> > * If any accessibility profile is selected, and only-ubiquity gets
> > activated, casper will have to set all gconf settings for the root
> > user.
> I think there's a decent argument that ubiquity-dm should (be told to)
> start the desktop environment bits as the 'ubuntu' user. It's not so
> much that the security properties matter here, but it would simplify
> casper's job as well as bringing the only-ubiquity environment closer to
> the environment you get when you run a full live session and then start
> ubiquity in it.

The problem here, is that at-spi will not work accross users, i.e a root user running ubiquity, but the ubuntu user running at-spi.

> > * If the accessibility profile chosen requires the use of the
> > at-spi-registryd daemon, ubiquity will have to be notified that it has
> > to run this daemon.
> For GNOME, this seems to be if /desktop/gnome/interface/accessibility is
> set in gconf. This isn't necessary in KDE, is it?

At this point, I don't know, but don't think so, as KDE doesn't offer nearly the range of accessibility support that GNOME does, certainly nothing like at-spi-registryd. However, we could look at at least implementing the theme changes that have already been implemented for the kubuntu accessibility profiles. I'll have to grab a Kubuntu image and have a play, to see what happens.

> It looks to me as if the right answer would be to modify
> ubiquity/bin/ubiquity-dm to fetch /desktop/gnome/interface/accessibility
> from the ubuntu user's gconf database, and if it's set to true then
> start at-spi-registryd before doing anything else GTK-related (so before
> setting the background). Would you take care of this?

Again, given enough example code to learn from, and given a pointer to where this needs doing, I can look into it.

> > I think the above two points are the only things that need addressing,
> > as from what I can gather, gnome-settings-daemon gets run, which sets
> > a lot of gconf settings, including those for keyboard accessibility,
> > mouse, wallpaper settings, and theme. Please feel free to correct me
> > if I am wrong.
> That's correct to the best of my knowledge. If more is needed, I'm sure
> it will become obvious rather quickly.
> > I am quite happy to work on the casper side of the implementation, and
> > am also willing to work on the parts of ubiquity that need changes
> > made, if I am pointed in the right direction. The only other question
> > is whether it would be better to make use of gconf from within
> > ubiquity, or whether it would be better to add another command-line
> > argument, to tell ubiquity that accessibility needs to be enabled.
> I'd call gconftool-2 from ubiquity-dm if using the GTK frontend and it's
> available. ubiquity already uses gconftool-2 elsewhere, so this isn't
> much of a stretch. Do wrap it inside "if
> osextras.find_on_path('gconftool-2')" (as is done in the GTK frontend)
> to avoid breaking Xubuntu, though.

Sounds reasonable. I'll have a poke at the ubiquity code at my next chance and see what I can learn from a look through.
- -- 
Luke Yelavich
GPG key: 0xD06320CE 
Email & MSN: themuso at themuso.com
Jabber: themuso at jabber.org.au

More information about the Ubuntu-installer mailing list