Re: Carrying over ATs from GDM to GNOME session (brainstorm)



Brian:

An issue which the carry over solution would solve is the very awkward method by which a11y needs to be enabled for the desktop. Unlike gdm, which will have a11y enabled by default, the user session has a11y disabled by default. So, if you can get an AT running during an inaccessible session, you really need to hope that the AT sets the a11y gconf flag and offers you with the ability to log out.

It makes 100% sense to me for the setting of
/desktop/gnome/interface/accessibility to carry over to the user
session.  If the user launched an AT program in the login program, then
it would make sense for GDM to just go ahead and set this key for the
user session before starting it, for example.

This would be a big plus. The existing login/set_a11y/logout/login process is reasonable, but certainly not compelling.

But doing this in a way that you are certain to not mess up the user's
personal configuration may be hard.  Perhaps it would be reasonable to
go ahead and set the GConf values for the text-to-speech case only if
the "Run at start" GConf setting is unchecked.  Or to set the user's
theme only if the user is currently using the system default theme.
On first blush, this seems like it could work, but you really need to be
careful when messing around with the user's preferences like this.

Agreed. We have a mishmash of settings and config files across multiple areas, so I believe some hardcoding of stuff would probably be necessary (and perhaps brittle).

The carry over would help ensure that the a11y gconf flag is set for the user if it is needed, making the user session accessible. Imagine also that I needed high contrast large print inverse to log in. It sure seems awkward to have to go through the theme selection process all over again once I login. I think the carry over solution would be a much more pleasant out of the box experience.

Right.  Although, providing keybindings and mouse dwell gestures to set
the a11y theme also seems a reasonable solution to avoid this sort of
setup.

I'd like to shoot for the star that says "Compelling" on it rather than "Reasonable". "Reasonable" usually ends up meaning "the minimal compromise we make to push a clunky solution." I think we need to hear more from our end users about what they think would be compelling.

I'm not 100% sure, but I think one of the more useful ones is the dwell gesture provided by MouseTweaks. So, that can be resolved by putting the MouseTweaks applet in the panel and hope/assume that the user has some way of moving the mouse when they approach one of these public kiosks.

If MouseTweaks can solve the problem, that would be awesome.

It would be nice. We really need to hear from users about whether this would work or not. If it does, then the worry about mouse gestures might be for naught. That would leave us with worrying about keyboard gestures (which can be solved using the existing keyboard shortcuts mechanism) and switch-based gestures.

Francesco's solution of offering a checkbox seems like it might work and be rather simple.

I worry this approach would be prone to error.  Users may not realize
they need to set or unset the checkbox - especially if they launched an
AT program via a keybinding rather than the a11y dialog.

Rather than two non-UI designers designing this, I think we need to pull in the thoughts of UI-designers and end users about solutions that would work.

I do not think the environment variable approach is a very good one.  I
just shared that past work for reference.  I think it makes more sense
for GDM to set the user's GConf settings so that things work properly
on login.  The trick is doing this in a way that the user's preferences
never get messed up if the user has actually modified them.

Doing it in GDM would definitely allow it to have more knowledge and be more flexible. Do you have ideas for where in GDM we might be able to do this? Would it need to be in C code? Would it be possible to have it call out to some other module/script?

Will



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