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 323245 - Screen reader does not read comboxes in Evolution-2.4 or Evolution-2.6
Screen reader does not read comboxes in Evolution-2.4 or Evolution-2.6
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
unspecified
Other Linux
: Normal normal
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2005-12-05 07:58 UTC by Li Yuan
Modified: 2006-02-13 13:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
The log file. (45.25 KB, text/plain)
2005-12-19 09:00 UTC, Li Yuan
  Details
Evolution 2.4 account editor at-poke view (149.62 KB, image/png)
2006-01-12 08:09 UTC, Irene Huang
  Details
Gtk-demo combobox at-poke view (104.36 KB, image/png)
2006-01-12 08:09 UTC, Irene Huang
  Details
Log when at-poke is running (104.61 KB, text/plain)
2006-01-13 04:22 UTC, Irene Huang
  Details
Patch for Gail (1.30 KB, patch)
2006-01-17 13:59 UTC, Irene Huang
rejected Details | Review
New Patch which will not lead to regression (1.94 KB, patch)
2006-02-13 08:44 UTC, Irene Huang
committed Details | Review

Description Li Yuan 2005-12-05 07:58:45 UTC
1. Invoke gnopernicus and start evolution-2.6. 
2. Configure new email-account in evolution. Setup assistent window will launch.
3. Give the proper information in Indentity window of setup assistent and press
"Next". Receiving Mail window of setup assistent will launch.
4. Move the focus on account time dropdown list. Pulldown menu opens.
5. Use up/down arrow keys to select account type.


Bug and observations:
Listed items are read as " MENU ITEM AVAILABLE"
Comment 1 remus draica 2005-12-14 11:15:18 UTC
I tried with last gnopernicus version and evolution 1.4.6.336 and it worked.

Just to be sure, I tested the combo "Server Type" from "Receiving Mail" dialog.
Comment 2 Li Yuan 2005-12-15 09:19:26 UTC
Yes, but I think it doesn't work on evolution 2.4.
Comment 3 remus draica 2005-12-16 14:37:22 UTC
Please export GNOPERNICUS_LOG=at-spi before running gnopernicus. Then start
gnopernicus using "gnopernicus 2>rez" and attach the log.
Comment 4 Li Yuan 2005-12-19 09:00:32 UTC
Created attachment 56145 [details]
The log file.

I opened account editor -> receiving email, clicked the server type combox, and pressed the "up" and "down" button.
Comment 5 remus draica 2006-01-11 13:39:29 UTC
Comment on attachment 56145 [details]
The log file.


>AT:82e2d38p----"focus:" for 8103c78p "Receiving Email" role "page tab" from "GAIL" with details 0 and 0

>AT:8315260p----"focus:" for 83faf88p "" role "text" from "GAIL" with details 0 and 0

>AT:8315260p----"window:activate" for 80ffa18p "" role "window" from "GAIL" with details 0 and 0

>AT:8315300p----"focus:" for 83fb118p "" role "menu item" from "GAIL" with details 0 and 0
>AT:839dc58p----"object:state-changed:selected" for 83fb118p "" role "menu item" from "GAIL" with details 0 and 0
>AT:82e2d38p----"object:selection-changed" for 80ff9a8p "" role "menu" from "GAIL" with details 0 and 0
>AT:80a7e10p----"object:state-changed:selected" for 80fe810p "" role "menu item" from "GAIL" with details 1 and 0
>AT:839dbe0p----"object:selection-changed" for 80ff988p "" role "menu" from "GAIL" with details 0 and 0
>AT:839dbe0p----"focus:" for 8103c98p "" role "menu item" from "GAIL" with details 0 and 0
>AT:8315238p----"object:state-changed:selected" for 8103c98p "" role "menu item" from "GAIL" with details 0 and 0
>AT:8315260p----"object:selection-changed" for 80fe880p "" role "menu" from "GAIL" with details 0 and 0
>AT:8315300p----"object:state-changed:selected" for 80ff998p "" role "menu item" from "GAIL" with details 1 and 0
>AT:80a7e10p----"object:selection-changed" for 80ffa18p "" role "menu" from "GAIL" with details 0 and 0
>AT:80a7e10p----"focus:" for 80ff978p "" role "menu item" from "GAIL" with details 0 and 0
>AT:82e2c98p----"object:state-changed:selected" for 80ff978p "" role "menu item" from "GAIL" with details 0 and 0
>AT:82e2d38p----"object:selection-changed" for 8103c58p "" role "menu" from "GAIL" with details 0 and 0
>AT:839dbe0p----"object:state-changed:selected" for 80ff988p "" role "menu item" from "GAIL" with details 1 and 0
>AT:8315300p----"object:selection-changed" for 80fe810p "" role "menu" from "GAIL" with details 0 and 0
>AT:8315300p----"focus:" for 8103cb8p "" role "menu item" from "GAIL" with details 0 and 0
>AT:8315328p----"object:state-changed:selected" for 8103cb8p "" role "menu item" from "GAIL" with details 0 and 0
>AT:8315260p----"object:selection-changed" for 83fafc8p "" role "menu" from "GAIL" with details 0 and 0
>AT:80a7e10p----"object:state-changed:selected" for 80ffa18p "" role "menu item" from "GAIL" with details 1 and 0
>AT:839dbe0p----"object:selection-changed" for 80ff998p "" role "menu" from "GAIL" with details 0 and 0
>AT:839dbe0p----"focus:" for 83fafd8p "" role "menu item" from "GAIL" with details 0 and 0

In the log attached I see no name for all menu-items involved here. The log is generated when events are received from at-spi. So, the real bug is that name is not available for gnopernicus/at-spi. Please check also using at-poke if names are present.
Comment 6 remus draica 2006-01-11 13:41:33 UTC
Transfering bug to evolution.
Comment 7 Irene Huang 2006-01-12 08:09:02 UTC
Created attachment 57202 [details]
Evolution 2.4 account editor at-poke view
Comment 8 Irene Huang 2006-01-12 08:09:54 UTC
Created attachment 57203 [details]
Gtk-demo combobox at-poke view
Comment 9 Irene Huang 2006-01-12 08:10:08 UTC
Although gnopernicus cannot read combo boxes in Evolution Account Editor, at-poke is getting along well with them. We don't think this is the "no name" problem. 
I attach two pictures, one of which shows what the at-poke can see in the gtk-demo combobox, and the other show the same information with Evolution 2.4 account editor. They are similar as far as we are concerned. It is strange that when at-poke is able to read those combobox in evolution while gnopernicus cannot. 

There's also something interesting to be noted: when node "Account Editor-> Receiving Email -> IMAP (whatever protocol is chosen)" (to be exact, the node corresponding to the combobox items to be read) is expanded, gnopernicus turns out to be behaving very well.

We doubt that this should as well be catagorized as a bug regarding gtk widget accessibility implementation or gnome accessibility implementation.
Comment 10 Irene Huang 2006-01-12 08:40:38 UTC
Just to be sure, the comboboxes used in evolution account editor are GtkComboBox (as we can see in em_account_editor.c:em_account_editor_set_selector_new).
Comment 11 bill.haneman 2006-01-12 11:25:12 UTC
Note that the containing 'menu' object has no name.  From the gnopernicus output which Remus supplied, it seems clear that the menu item objects don't have names when they fire the events.  So it does seem to be some form of "no name" problem, unless Remus has made an error in the logging code.

Comment 12 Irene Huang 2006-01-13 04:22:22 UTC
Created attachment 57260 [details]
Log when at-poke is running

Perhaps, there are some misunderstandings between us. 
The names of menu items shown in Li Yuan's attachment are not available, that's for sure.

However, if I keep at-poke running and the coreesponding "menu" subtree expanded, the log is in totally different status. All the names of menu-items are now available.

I attached the log which I obtained in the previously mentioned situation. Please have a look.
Comment 13 korn 2006-01-13 19:11:00 UTC
If the names aren't visible in some circumstances (e.g. when at-poke isn't looking at the expanded subtree), then this seems clearly to be an Evolution bug...
Comment 14 Harry Lu 2006-01-14 08:13:24 UTC
Here is some code related to one of the comboBox: (http://cvs.gnome.org/viewcvs/evolution/mail/em-account-editor.c?view=markup)

GtkWidget *
em_account_editor_ssl_selector_new(char *widget_name, char *string1, char *string2, int int1, int int2)
{
	GtkComboBox *dropdown = (GtkComboBox *)gtk_combo_box_new();
	GtkCellRenderer *cell = gtk_cell_renderer_text_new();
	GtkListStore *store;
	int i;
	GtkTreeIter iter;

	gtk_widget_show((GtkWidget *)dropdown);

	store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);

	for (i=0;i<num_ssl_options;i++) {
		gtk_list_store_append(store, &iter);
		gtk_list_store_set(store, &iter, 0, _(ssl_options[i].label), 1, ssl_options[i].value, -1);
	}

	gtk_cell_layout_pack_start((GtkCellLayout *)dropdown, cell, TRUE);
	gtk_cell_layout_set_attributes((GtkCellLayout *)dropdown, cell, "text", 0, NULL);

	gtk_combo_box_set_model(dropdown, (GtkTreeModel *)store);

	return (GtkWidget *)dropdown;
}

The above code is simple.  So we suspect the problem is in gail. We will do more investigation when we have time.
Comment 15 Irene Huang 2006-01-17 13:59:46 UTC
Created attachment 57535 [details] [review]
Patch for Gail

The patch is for gail
This should be a gail bug, please change the category 

Thanks
Comment 16 bill.haneman 2006-01-19 17:45:32 UTC
Thanks Irene!  Patch committed to cvs module gail, CVS HEAD.  Will be rolled into gail version 1.8.9.
Comment 17 bill.haneman 2006-02-09 14:24:29 UTC
Irene, your patch created a serious regression in gtk+ support, see bug 329230.
I have had to revert it.

Perhaps there is something different about evolution's use of combo boxes?
Comment 18 bill.haneman 2006-02-09 14:38:39 UTC
A similar issue can be seen with gtk-demo (gtk+ 2.8.X version, anyway).
If you look in the comboboxes, gnopernicus can read most of the menu items, but the ones in the submenus under "Where are we?", i.e. A-B, C-D, etc, such as "Albany", gnopernicus doesn't read them.  at-poke doesn't see any names for them either, they appear as <no name>.

However I don't think this is related to the code change Irene made.  Irene, are you quite sure your patch actually was working with evolution?  I don't quite see how it could have worked unless evolution is doing something really strange with its combo-boxes (and Harry's comment #14 above suggests that it is not).
Comment 19 Irene Huang 2006-02-10 07:14:43 UTC
Hi, Bill
The gtk-demo combo boxes that cannot be read by either at-poke or gnopernicus, in the last comment, is different from evolution combo boxes.
Actually, at-poke is able to poke all the correct names (not no name) of menuitems in Evolution comboboxes. Please see the attachement in comment #7. 
However, with gtk-demo, the menuitems under "Albany" in combobox titled "Where are we?" have <no name> when poked by at-poke. 

As you've mentioned, Evolution does nothing strange with the Comboboxes, it's rather funny that the names cannot be poked by gnopernicus when at-poke is not running with the corresponding item being expanded. I think it should be investigated more why gnopernicus works well with at-poke running and the corresponding item (the menu in combobox) expanded. (Please see comment #9)

My patch works well with Evolution. Yet, I am sorry that we didn't test it against other applications and caused the regression. 

I'll do more investigations into this bug.
Comment 20 bill.haneman 2006-02-10 12:26:58 UTC
Thanks Irene:

I still don't understand how the patch could have worked correctly for evolution unless evolution is doing something different with its comboboxes, because the regression in gtk+ with the patch is so dramatic and fundamental.  I think there's strong circumstantial evidence that either the patch applied to cvs doesn't match the one you're testing, or evolution's comboboxes are quite different from gtk's.  I guess the other possibility is that gtk might have changed, since the regression is seen against gtk 2.8; have you tested your patch against the version of gtk you are using, i.e. with gtk-demo, to see if the crash occurs on your system also?

Thanks for doing more investigation.  I have also asked Will Walker to try your evolution combo box test case with orca, to see if the behavior is similar to what happens with gnopernicus.

regards

Bill
Comment 21 Irene Huang 2006-02-13 08:44:40 UTC
Created attachment 59239 [details] [review]
New Patch which will not lead to regression

Hi, Bill
This is the modified patch. We are sure that Evolution's done nothing strange with its combobox. And, we also notice that, in gtk-demo, in the second combobox titled "Where are we?", the menuitems i.e. A-B, c-D can not be grepped by gnopernicus to, it simply shows something like "MIT 9 items" instead of the supposed one: "MIT A-B 9 items". 

With our patch, this problem's solved as well as the bug described here. 

BTW, we move the code for setting OPTION_MENU from gail_menu_real_initialize to gail_menu_get_parent, to make it more consistent. We also add atk_object_set_parent after "parent" was found (the first time) in gail_menu_get_parent, so as to speed up the performance.

Please review.
Comment 22 bill.haneman 2006-02-13 13:35:25 UTC
Comment on attachment 59239 [details] [review]
New Patch which will not lead to regression

THis patch works much better, thanks!