After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 636841 - Orca does not speak user which gets selected when the user first presses down cursor in gdm login screen
Orca does not speak user which gets selected when the user first presses down...
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: speech
2.91.x
Other Linux
: Normal normal
: 2.91.5
Assigned To: Orca Maintainers
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-12-09 02:57 UTC by Michael Whapples
Modified: 2011-03-29 08:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Script to fix the bug (1.60 KB, patch)
2010-12-10 13:10 UTC, Michael Whapples
none Details | Review
Natty based orca debug for GDM screen using (71.92 KB, application/octet-stream)
2011-01-05 14:04 UTC, Hammer Attila
  Details
Lucid based debug.out file for GDM screen (53.97 KB, application/octet-stream)
2011-01-05 14:11 UTC, Hammer Attila
  Details
Corrected patch (3.04 KB, patch)
2011-01-05 17:42 UTC, Michael Whapples
committed Details | Review
Newest Natty based debug.out file (75.67 KB, application/octet-stream)
2011-01-06 07:23 UTC, Hammer Attila
  Details
Natty based gdm debug.out file (39.22 KB, application/octet-stream)
2011-03-29 07:36 UTC, Hammer Attila
  Details

Description Michael Whapples 2010-12-09 02:57:59 UTC
When a user has orca set to load at the gdm login screen, and they hear the message "Welcome to orca" they can press down cursor to select a user from the list. The first time a user presses the down cursor at the log in screen orca remains silent and only after the second press will the user hear usernames being spoken as they move through the list.

The problem seems to be that immediately after orca sending the first username selection out to be spoken, there is an object:active-descendant-changed event which when orca processes it will stop the speech and so the user never hears this first user.

The fix I have found is to create a script for gdm-simple-greeter which overrides the method stopSpeechOnActiveDescendantChanged and have it always return False. My initial testing seems to suggest this gives no problem but more testing is welcome.

Also I personally feel setting this so globally for gdm-simple-greeter might not be the best thing, might it be better to try and do something to ensure the event only comes from the list of users when we return False from stopSpeechOnActiveDescendantChanged.

I have attached my initial script to this bug report, put it in a directory called gdm-simple-greeter within the scripts directory. Create another file in that directory called __init__.py and put the following line in it:
from script import Script
Comment 1 Joanmarie Diggs (IRC: joanie) 2010-12-10 01:59:25 UTC
I don't see the script. As a general rule, I would agree that the thing to do is narrow it down to the specific case as you described (i.e. ensure that we're in the list of users).

Having said that, here's the deal:

1. There's only one list anywhere in the gdm greeter as far as I am aware.

2. What's the worst thing that could happen if we don't stop speech under these circumstances? We'd potentially speak something extra.

So in this particular instance, we've got an isolated case (it's the greeter, it's not a full-fledged app) and we've got a conservative fix (it's limited to the greeter script and the worst case scenario is that we wind up being a tad chatty).

Thus if I were to see your patch and it were to be consistent with what you describe, I'm pretty sure I'd commit it as is. <smile>

By the way, what you could to get this patch in all its glory is:

1. Create a branch

2. use git-add <filename> to add any new files currently not in Orca.

3. use git commit -a (the commit message should be in the form 'Fix for bug #123456 - bug summary line)

4. use git format-patch master to generate the patch

Thanks Michael for looking into this!
Comment 2 Michael Whapples 2010-12-10 12:25:27 UTC
(In reply to comment #1)
> I don't see the script. As a general rule, I would agree that the thing to do
> is narrow it down to the specific case as you described (i.e. ensure that we're
> in the list of users).
> 
> Having said that, here's the deal:
> 
> 1. There's only one list anywhere in the gdm greeter as far as I am aware.
> 
> 2. What's the worst thing that could happen if we don't stop speech under these
> circumstances? We'd potentially speak something extra.
> 
> So in this particular instance, we've got an isolated case (it's the greeter,
> it's not a full-fledged app) and we've got a conservative fix (it's limited to
> the greeter script and the worst case scenario is that we wind up being a tad
> chatty).
> 
> Thus if I were to see your patch and it were to be consistent with what you
> describe, I'm pretty sure I'd commit it as is. <smile>
> 
> By the way, what you could to get this patch in all its glory is:
> 
> 1. Create a branch
> 
> 2. use git-add <filename> to add any new files currently not in Orca.
> 
> 3. use git commit -a (the commit message should be in the form 'Fix for bug
> #123456 - bug summary line)
> 
> 4. use git format-patch master to generate the patch
> 
> Thanks Michael for looking into this!

I will get the patch created. Thanks for the tips on ways that I could generate a patch, I normally have been making branches which I term "throw away branches" by doing local clones so either I need to adapt your instructions to suit that or use branch offered by git.

I think there may be another list but whether its actually part of gdm-simple-greeter I am unsure, isn't one of the language or keyboard selection things at the GDM prompt a list? Still I agree affects would be very limited and worse case isn't that bad.
Comment 3 Michael Whapples 2010-12-10 13:10:07 UTC
Created attachment 176177 [details] [review]
Script to fix the bug

Here is the patch, I hope that I have done it correctly using commits in branches of git.
Comment 4 Hammer Attila 2011-01-05 10:56:27 UTC
Michael, I tested your patch under Natty and latest Orca git master version.
Your patch is very wonderful.
I found some issues, with I don't you or Joanie possible fixing or not:
1. When GDM login screen is presenting, now again possible choosing users with arrow keys if anybody appliing your patch. The problem only is following:
The first awailable username is I think not focused. If I press a down arrow key to choose for example my username the list (this is the first element with users list), Orca not spokening my username. Orca trying spokening the informations but the speech is cutted, only a similar text I hear: "im"
After I pressing a down arrow again, I right hear "Other..." list element. If I pressing an Up arrow again, I right hear my user name right.
Perhaps only the problem is not focused the first username the list. I think in my Lucid system this is happening automaticaly, Orca automaticaly spokening the first awailable username and the input focus is moved with first username. Confirming this because if I pressing Enter key with my Lucid system under GDM screen without pressing any down arrow key, I possible give my password and logging in.
I using both Lucid and Natty with latest Orca git master version.

2. When I pressing Enter key with any choosed user name, Orca spokening two time the password edit box. Possible fixing this? I see this issue under my Lucid system and Natty testing system.

You confirming any I wrote issue with your system?

Your patch is wonderful work.

Attila
Comment 5 Michael Whapples 2011-01-05 11:53:29 UTC
(In reply to comment #4)
> Michael, I tested your patch under Natty and latest Orca git master version.
> Your patch is very wonderful.
> I found some issues, with I don't you or Joanie possible fixing or not:
> 1. When GDM login screen is presenting, now again possible choosing users with
> arrow keys if anybody appliing your patch. The problem only is following:
> The first awailable username is I think not focused. If I press a down arrow
> key to choose for example my username the list (this is the first element with
> users list), Orca not spokening my username. Orca trying spokening the
> informations but the speech is cutted, only a similar text I hear: "im"
> After I pressing a down arrow again, I right hear "Other..." list element. If I
> pressing an Up arrow again, I right hear my user name right.
> Perhaps only the problem is not focused the first username the list. I think in
> my Lucid system this is happening automaticaly, Orca automaticaly spokening the
> first awailable username and the input focus is moved with first username.
> Confirming this because if I pressing Enter key with my Lucid system under GDM
> screen without pressing any down arrow key, I possible give my password and
> logging in.
> I using both Lucid and Natty with latest Orca git master version.
> 
> 2. When I pressing Enter key with any choosed user name, Orca spokening two
> time the password edit box. Possible fixing this? I see this issue under my
> Lucid system and Natty testing system.
> 
> You confirming any I wrote issue with your system?
> 
> Your patch is wonderful work.
> 
> Attila

I will take a look at these issues. Specific fixes for GDM shouldn't be an issue here as my patch is creating a GDM specific script anyway (IE. changes will not impact anything but GDM).
Comment 6 Michael Whapples 2011-01-05 12:07:13 UTC
I have taken a look at what happens on my system and I don't think I see these additional issues.
Issue 1: I am certain that when GDM loads on my system no username gets focus, I must press down cursor to get a user selected. Just pressing enter immediately after the welcome to orca message gives no response from GDM. I may have misunderstood what you meant, if so it may be worth getting some debug (NOTE: this can be hard particularly at the GDM screen and I am cautious of asking for this to be done with any main accounts on a system as the debug may show key presses).
Issue 2: Well, may be I do see the issue but what I think orca speaks when it says password twice is, once as that is what the label of the field is and once as that is the type of the control with focus. Might this be the issue? If so I would say orca is behaving correct speaking label and control type.
(In reply to comment #4)
> Michael, I tested your patch under Natty and latest Orca git master version.
> Your patch is very wonderful.
> I found some issues, with I don't you or Joanie possible fixing or not:
> 1. When GDM login screen is presenting, now again possible choosing users with
> arrow keys if anybody appliing your patch. The problem only is following:
> The first awailable username is I think not focused. If I press a down arrow
> key to choose for example my username the list (this is the first element with
> users list), Orca not spokening my username. Orca trying spokening the
> informations but the speech is cutted, only a similar text I hear: "im"
> After I pressing a down arrow again, I right hear "Other..." list element. If I
> pressing an Up arrow again, I right hear my user name right.
> Perhaps only the problem is not focused the first username the list. I think in
> my Lucid system this is happening automaticaly, Orca automaticaly spokening the
> first awailable username and the input focus is moved with first username.
> Confirming this because if I pressing Enter key with my Lucid system under GDM
> screen without pressing any down arrow key, I possible give my password and
> logging in.
> I using both Lucid and Natty with latest Orca git master version.
> 
> 2. When I pressing Enter key with any choosed user name, Orca spokening two
> time the password edit box. Possible fixing this? I see this issue under my
> Lucid system and Natty testing system.
> 
> You confirming any I wrote issue with your system?
> 
> Your patch is wonderful work.
> 
> Attila
Comment 7 Hammer Attila 2011-01-05 13:15:03 UTC
Michael, what system with you looking my issues?
You using Maverick or Natty?
I have got an ydea with debugging, but I don't no this is working or not:
what can happening if you changing the /desktop/gnome/applications/at/visual/exec gconf key? The default value is orca.
What happening if you changing this key value with orca --replace --debug-file=gdmdebug.out? Debug file is generating with GDM screen?
I think I trying this possibility to changing following command this gconf key:
sudo -u gdm gconftool-2 -s -t string /desktop/gnome/applications/at/visual/exec "orca --replace --debug-file=gdmdebug.out"

I hope this possibility is working the debugging purpose under GDM screen.

Attila
Comment 8 Hammer Attila 2011-01-05 14:04:27 UTC
Created attachment 177566 [details]
Natty based orca debug for GDM screen using

Michael, I sending natty based debug file with GDM screen using.
I doed following steps and key presses:
When Orca is launched, i pressed Enter key, In Natty not possible writing this method the password, similar with Maverick. My Lucid system this is working fine, this is not your patch mistake I think.
Because this problem is have, I pressed one down arrow key. Orca not full spokened my name (the selected username after down arrow key press), but the debug.out file is containing full speech output. I pressed enter key and wrote my password. Final I logged in an Enter key press.

Attila
Comment 9 Hammer Attila 2011-01-05 14:11:24 UTC
Created attachment 177568 [details]
Lucid based debug.out file for GDM screen

Michael, I sending my Lucid system generated debug.out file with GDM screen.
I doed following key presses when I login:
When Orca is started, I simple press Enter key, because my first user name (my name) is selected.
Simple wrote my password, and pressed Enter key. The login is happened succesfuly.

I am very interesting what the difference the two debug file with Orca related? Or GDM containing a bug under Maverick and Natty?
Very interesting, Orca version is equals both two system, latest git master version.

In my Lucid system have following GDM version: 2.30.2.is.2.30.0-0ubuntu4

In my Natty system now have following GDM version:
gdm | 2.32.0-0ubuntu3 |         natty | source, amd64, i386

Attila
Comment 10 Hammer Attila 2011-01-05 14:17:34 UTC
I maked debug.out files with my both two system with following way:
I edited the /usr/share/gdm/autostart/LoginWindow/Orca-screen-reader.desktop file.
I replaced the exec line with following with this file:
Exec=orca --replace --no-setup --disable main-window --disable magnifier --enable speech --debug-file=/var/lib/gdm/gdmdebug.out
After this editing is done, I restart my system. Login first, and logged out, because the debug file is not generated.
After the second logining operation the debug file is right generated the /var/lib/gdm directory.

Possible not this is elegant way to make GDM Orca debug output, but working. :-):-)

Attila
Comment 11 Michael Whapples 2011-01-05 14:23:07 UTC
I am using an arch linux system, the GDM used is 2.32.0.

So not being able to press enter when GDM first loads seems to be a GDM thing as I get that. I feel nothing should be done regarding this with orca as it shouldn't really alter how software behaves but should rather allow us to know the state of an application.

The bit about when you first press the down cursor to get focus but speech getting cut off is what my patch is meant to solve. I will take a further look in your debug to see if you have something else going on.
(In reply to comment #7)
> Michael, what system with you looking my issues?
> You using Maverick or Natty?
> I have got an ydea with debugging, but I don't no this is working or not:
> what can happening if you changing the
> /desktop/gnome/applications/at/visual/exec gconf key? The default value is
> orca.
> What happening if you changing this key value with orca --replace
> --debug-file=gdmdebug.out? Debug file is generating with GDM screen?
> I think I trying this possibility to changing following command this gconf key:
> sudo -u gdm gconftool-2 -s -t string /desktop/gnome/applications/at/visual/exec
> "orca --replace --debug-file=gdmdebug.out"
> 
> I hope this possibility is working the debugging purpose under GDM screen.
> 
> Attila
Comment 12 Michael Whapples 2011-01-05 14:42:52 UTC
Your debug was fine to read, even if different to the method I have used in the past (possibly there are advantages to your way).

Anyway I think I have found the reason why speech is interrupted on your natty system. Looks like the GDM script I have written isn't being used by your version of orca used at the GDM login screen. There may be several reasons for this:
* Have you got multiple versions of orca installed on the system and so might gdm be starting a version which does not include this patch?
* Could there have been some naming mismatch between the script and gdm's application name (gdm.simple-greeter)? Capitalisation is important here I think, it should all be lower case with words separated by dashes.

In either case you should find in the python package directory of the orca being used at the GDM screen, the directory scripts/apps/gdm-simple-greeter/ (eg. on my system I have the directory /usr/lib/python2.7/site-packages/orca/scripts/apps/gdm-simple-greeter/).


(In reply to comment #10)
> I maked debug.out files with my both two system with following way:
> I edited the /usr/share/gdm/autostart/LoginWindow/Orca-screen-reader.desktop
> file.
> I replaced the exec line with following with this file:
> Exec=orca --replace --no-setup --disable main-window --disable magnifier
> --enable speech --debug-file=/var/lib/gdm/gdmdebug.out
> After this editing is done, I restart my system. Login first, and logged out,
> because the debug file is not generated.
> After the second logining operation the debug file is right generated the
> /var/lib/gdm directory.
> 
> Possible not this is elegant way to make GDM Orca debug output, but working.
> :-):-)
> 
> Attila
Comment 13 Hammer Attila 2011-01-05 15:10:18 UTC
Michael, I using Orca git master version with my Natty system, but the installation prefix is /usr/local. 
In Ubuntu natty, the gdm simple greeter application is gdm-simple-greeter, so this is equals I think, the correct application name is following:
/usr/lib/gdm/gdm-simple-greeter

Natty default containing Orca 2.91.4 version, so I need doed an upgrade because missing very the profile support.

So, when I compiling Orca, I used general ./autogen.sh, make and make install command.
When I applied your patch, I doed again the make and make install command.

I think GDM executing the patched Orca version, because the original orca version first Down arrow key press Orca nothing spoken. But possible I known wrong and executed in GDM login screen the factory awailable Orca version.

In natty, you see right default have Python-2.7.

The Natty debug file showing you not executed your GDM script my system?
A very interesting think, My /usr/local/lib/python-2.7/dist-packages/orca directory not containing your script.
The /usr/local/lib/python-2.7/site-packages directory is empty.

Attila
Comment 14 Michael Whapples 2011-01-05 17:42:07 UTC
Created attachment 177597 [details] [review]
Corrected patch

This patch should make the gdm-simple-greeter script install. The problem was my mistake, I forgot to update the make system to get the script to install with orca.
Comment 15 Hammer Attila 2011-01-06 06:51:48 UTC
Michael, the last attached patch is working right, the installation happened succesful, very good work.
The speech cutting problem is resolved my Natty system, when I choosing first my username with down arrow key, I right hear now Orca speech output.

Note: I tryed following test to diagnose my another issue (not possible logging in with Enter key press when the GDM login screen is displayed without selecting the first user with down arrow key) after Orca is started:
I exited Orca first when GDM login screen is presented my screen. After this task is done, I press Enter key, wrote my password and pressed Enter key again.
The login is happened succesful, so this problem is perhaps not GDM related. You possible trying this test with your Arch system? You possible logging in without Orca running and not choose arrow keys any user?
Joanie, perhaps Orca not focusing the first user in the list the caret?

If impossible fix this problem, and Michael patch is entire good your openion, please commit this last patch with Git master branch and perhaps Orca 2.32 branch.

Attila
Comment 16 Hammer Attila 2011-01-06 07:23:29 UTC
Created attachment 177632 [details]
Newest Natty based debug.out file

This debug.out file containing Newest Natty based GDM debug.out file with containing right working patched Orca debug events.
Please look what happening if Orca running, and when I tryed press some Return key before I press down arrow key to select first username in the user choose screen.
I marked prewious Natty based debug file with obsolete flag.

Attila
Comment 17 Michael Whapples 2011-01-06 10:47:51 UTC
I have taken a look at the GDM thing and the focus on the first user thing again. I am unable to conclude whether its to do with GDM or orca at this point. Here are my observations:
* If the GDM login window looses focus and regains focus then the first user will be selected in the list (try entering the orca preferences and exit it). NOTE: I believe this is why when you quit orca things seem to work as you expect.
* If you set orca to not prompt on exit then you still cannot press enter to login after exiting orca. This makes sense as the GDM window never lost focus.

I think the only way this could be confirmed either way is to see how GDM is if orca never loads at the GDM login screen.
(In reply to comment #15)
> Michael, the last attached patch is working right, the installation happened
> succesful, very good work.
> The speech cutting problem is resolved my Natty system, when I choosing first
> my username with down arrow key, I right hear now Orca speech output.
> 
> Note: I tryed following test to diagnose my another issue (not possible logging
> in with Enter key press when the GDM login screen is displayed without
> selecting the first user with down arrow key) after Orca is started:
> I exited Orca first when GDM login screen is presented my screen. After this
> task is done, I press Enter key, wrote my password and pressed Enter key again.
> The login is happened succesful, so this problem is perhaps not GDM related.
> You possible trying this test with your Arch system? You possible logging in
> without Orca running and not choose arrow keys any user?
> Joanie, perhaps Orca not focusing the first user in the list the caret?
> 
> If impossible fix this problem, and Michael patch is entire good your openion,
> please commit this last patch with Git master branch and perhaps Orca 2.32
> branch.
> 
> Attila
Comment 18 Hammer Attila 2011-01-06 15:27:32 UTC
Michael, if help, tomorrow morning I will be trying disable screen reader launch under GDM screen to see default GDM user list is focused or not. If after Enter key press I possible login, perhaps this is working right with GDM side.
Only I think need switching false the following configuration key:
sudo -u gdm gconftool-2 -s -t bool /desktop/gnome/applications/at/screen_reader_enabled false

Attila
Comment 19 Hammer Attila 2011-01-07 12:01:32 UTC
Michael, bingo, you are full right.
I disable both /desktop/gnome/interface/accessibility and /desktop/gnome/applications/at/screen_reader_enabled gconf keys, and restart my system. I are lucky because now my wife at home and help the testing.
When the GDM screen is presented the screen, the first user name if I remember right I think gray color. When I press Alt+Tab key, the first username is selected, and the color changed I think red if I remember right.
So:
Not possible choosing the first user the Enter key press, because the first username is not selected, or GDM userlist not focused, I don't no what the right description.
Joanie, you possible verify this? I would like reporting this bug with GDM developers, but I would like known the correct precise sighted specific simptomn.
So, Michael patch is very good. If not need another work with this patch, possible committing with master branch?

Attila
Comment 20 Trevor Saunders (IRC: tbsaunde) 2011-01-07 21:58:13 UTC
this looks basically sovled?
Comment 21 Hammer Attila 2011-01-08 06:19:25 UTC
Trevor, I think yes, I using Michael patch more than two days and not see any problem.

Attila
Comment 22 Joanmarie Diggs (IRC: joanie) 2011-01-09 18:45:01 UTC
Comment on attachment 177597 [details] [review]
Corrected patch

Committed to master. Thanks!

http://git.gnome.org/browse/orca/commit/?id=aa579a5bb6cda785882e90932bf161824a202d33
Comment 23 Joanmarie Diggs (IRC: joanie) 2011-01-09 18:48:36 UTC
(In reply to comment #19)

> Not possible choosing the first user the Enter key press, because the first
> username is not selected, or GDM userlist not focused, I don't no what the
> right description.

Looks to me that the userlist is focused, but the first list item is not selected. When I press Down Arrow once, the first list item becomes selected. Then I can press Enter and type my password.

Hope this helps!

Since the GDM issue is not an Orca issue, and since I've just committed Michael's patch, closing this as FIXED.
Comment 24 Hammer Attila 2011-03-29 07:36:37 UTC
Created attachment 184533 [details]
Natty based gdm debug.out file

Hy Joanie and Michael,

Unfortunately this problem is coming back, but little difficulter result.
I think user list is focused proper with gdm screen, because if I press Enter key, right possible writing the password for example the live session user.
But if I want choose users with arrow keys, Orca does'nt spokening current selected user before I not press Tab or Escape key.
Reproducation steps to verify this for example a Natty system when accessible login is enabled with screen reader support:
1. Try press up and down arrow keys to select an username, you will be nothing hear.
2. If you press Tab or Escape key, after this Orca will be wonderful spokening selected username.

What showing the debug.out? Why happening this problem?
In Ubuntu Natty have Orca 2.91.92 version, and gdm-2.32.0-0-ubuntu12 version.

Attila
Comment 25 Hammer Attila 2011-03-29 07:37:47 UTC
I forgot wrote:
I tested the problem only with factory awailable Orca 2.91.92 version, but I of course will be verifying the problem with actual master branch version.

Attila
Comment 26 Michael Whapples 2011-03-29 07:50:36 UTC
I think this is caused by the bug #641730

Does that sound right?
(In reply to comment #25)
> I forgot wrote:
> I tested the problem only with factory awailable Orca 2.91.92 version, but I of
> course will be verifying the problem with actual master branch version.
> 
> Attila
Comment 27 Hammer Attila 2011-03-29 07:57:43 UTC
Michael, I think you are absolute true, the you are linked bugreport is full correct.
Joanie, not possible doing an Orca level hack to hide this problem until GDM developers not fixing this issue?
Or this is full impossible?

Attila
Comment 28 Michael Whapples 2011-03-29 08:09:40 UTC
In reading my report on the other bug, I think orca cannot work around this as it is receiving no events on key presses until you press tab.

That is from memory but would easily be confirmed by looking in an orca debug (IE. you will find many cursor key events but no accessibility events).
(In reply to comment #27)
> Michael, I think you are absolute true, the you are linked bugreport is full
> correct.
> Joanie, not possible doing an Orca level hack to hide this problem until GDM
> developers not fixing this issue?
> Or this is full impossible?
> 
> Attila