[Pidgin] #2687: [a11y] pidgin Preferences dialog Inteface -> Show system tray icon "combo box" has the wrong accessible name.
Pidgin
trac at pidgin.im
Tue Aug 21 17:41:41 EDT 2007
#2687: [a11y] pidgin Preferences dialog Inteface -> Show system tray icon "combo
box" has the wrong accessible name.
---------------------------+------------------------------------------------
Reporter: RichBurridge | Type: defect
Status: new | Priority: minor
Component: pidgin (gtk) | Version: 2.1.0
Keywords: accessibility | Pending: 0
---------------------------+------------------------------------------------
See also GNOME Orca bug #468762 which is blocked by this problem.
http://bugzilla.gnome.org/show_bug.cgi?id=468762
This is with pidgin v2.1.1 on Gnu/Linux Ubuntu Gutsy.
Steps to reproduce:
1. Launch Pidgin
2. Get into the Preferences dialog
3. Tab to a combo box
Expected results: Orca would speak the currently selected item in the
combo
box.
Actual results: Orca doesn't speak the currently selected item in the
combo box
until you expand the combo box by pressing space bar.
--
I investigated the problem (see the Orca bug for all the details).
Here's just the gist of it.
I compared Orca speaking the pidgin "combo box" with Orca speaking
one of it's own combo boxes.
In pidgin, for the object:state-changed:focused event we have:
OBJECT EVENT: object:state-changed:focused detail=(1,0)
app.name='pidgin' name='Show system tray icon:'
role='combo
box' state='ENABLED FOCUSABLE FOCUSED SENSITIVE SHOWING VISIBLE'
relations='LABELLED_BY LABELLED_BY'
In Orca, for the "focus:" event for the Say all combo box, we have:
OBJECT EVENT: focus: detail=(0,0)
app.name='orca' name='Sentence' role='combo box'
state='ENABLED FOCUSED SENSITIVE SHOWING VISIBLE' relations='LABELLED_BY'
In other words, the name of the pidgin "combo box" is incorrect.
In pidgin gtkprefs.c, there is the call to
pidgin_prefs_dropdown_from_list()
label = pidgin_prefs_dropdown(vbox, _("_Show system tray icon:"),
PURPLE_PREF_STRING,
PIDGIN_PREFS_ROOT "/docklet/show",
_("Always"), "always",
_("Never"), "never",
_("On unread messages"),
"pending",
NULL);
Function definition for pidgin_prefs_dropdown_from_list() is:
pidgin_prefs_dropdown_from_list(GtkWidget *box, const gchar *title,
PurplePrefType type, const char *key, GList *menuitems)
so we are passing in a title variable of _("_Show system tray icon:").
We then go through this bit of code:
...
if (title != NULL) {
hbox = gtk_hbox_new(FALSE, 5);
/*gtk_container_add (GTK_CONTAINER (box), hbox);*/
gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new_with_mnemonic(title);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
gtk_widget_show(label);
} else {
...
which sets the label to the left of the "combo box". It also sets the
variable called label.
Further down the routine we have:
...
if (label != NULL) {
gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown);
pidgin_set_accessible_label (dropdown, label);
}
...
which is setting the accessible "label" of the dropdown widget
(which was created with:
dropdown = gtk_option_menu_new();
to "_Show system tray icon:".
(See pidgin_set_accessible_label() in gtkutils.c at about line 1168).
This is incorrect.
--
Ticket URL: <http://developer.pidgin.im/ticket/2687>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list