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 711397 - object:state-changed event and/or state missing when certain Gtk+ widgets gain focus/selection
object:state-changed event and/or state missing when certain Gtk+ widgets gai...
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Accessibility
3.10.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
: 560826 560832 580452 580460 654405 654410 715176 715179 720987 720989 748311 758189 758298 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-11-04 11:54 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2018-05-02 15:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Event listener (194 bytes, text/x-python)
2013-11-04 11:54 UTC, Joanmarie Diggs (IRC: joanie)
Details

Description Joanmarie Diggs (IRC: joanie) 2013-11-04 11:54:18 UTC
Created attachment 258916 [details]
Event listener

Steps to reproduce:
1. Launch the attached accessible event listener in a terminal
2. Open the gtk3-demo Combo boxes demo
3. Press Tab to move amongst all the widgets

Expected results: Each time a GtkComboBox gains focus, an object:state-changed:focused event would be received.

Actual results: The first time each GtkComboBox gains focus, no object:state-changed:focused event is received. These events are received all subsequent times the widgets are Tabbed to.

Related: The first time each GtkComboBox gains focus, a focus: event is emitted. But since that event is deprecated....
Comment 1 Matthias Clasen 2018-02-10 05:26:35 UTC
We're moving to gitlab! As part of this move, we are moving bugs to NEEDINFO if they haven't seen activity in more than a year. If this issue is still important to you and still relevant with GTK+ 3.22 or master, please reopen it and we will migrate it to gitlab.
Comment 2 Joanmarie Diggs (IRC: joanie) 2018-02-10 14:57:33 UTC
Comment on attachment 258916 [details]
Event listener

>#!/usr/bin/python
>
>import pyatspi3
>
>def listener(e):
>    if e.detail1:
>        print(e)
>
>pyatspi.Registry.registerEventListener(listener, "object:state-changed:focused")
>pyatspi.Registry.start()
Comment 3 Joanmarie Diggs (IRC: joanie) 2018-02-10 14:58:00 UTC
Comment on attachment 258916 [details]
Event listener

>#!/usr/bin/python3
>
>import pyatspi
>
>def listener(e):
>    if e.detail1:
>        print(e)
>
>pyatspi.Registry.registerEventListener(listener, "object:state-changed:focused")
>pyatspi.Registry.start()
Comment 4 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:02:55 UTC
(Ignore comment2. I need more coffee.)

In more recent environments, but where python2 is still the default, the original script may fail as a result of the python bindings not being found. They should be present for python3, however.

And, yes, this bug still persists.

Given the move to gitlab, and the fact that there are multiple bugs where $WIDGET fails to emit object:state-changed:focused even initially, it probably makes sense to have just one bug for the broader problem and migrate that one over.

Aside: A non-trivial percentage of Orca's Gtk+ script is to work around this issue. Thus if one sees hacking around toolkit bugs as a shortcoming of Orca, fixing these missing events would be a significant step in fixing that shortcoming. :)
Comment 5 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:12:40 UTC
*** Bug 748311 has been marked as a duplicate of this bug. ***
Comment 6 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:25:10 UTC
*** Bug 715179 has been marked as a duplicate of this bug. ***
Comment 7 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:27:12 UTC
*** Bug 720989 has been marked as a duplicate of this bug. ***
Comment 8 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:29:28 UTC
*** Bug 758298 has been marked as a duplicate of this bug. ***
Comment 9 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:48:32 UTC
*** Bug 654410 has been marked as a duplicate of this bug. ***
Comment 10 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:51:07 UTC
*** Bug 715176 has been marked as a duplicate of this bug. ***
Comment 11 Joanmarie Diggs (IRC: joanie) 2018-02-10 15:59:44 UTC
*** Bug 758189 has been marked as a duplicate of this bug. ***
Comment 12 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:00:32 UTC
*** Bug 720987 has been marked as a duplicate of this bug. ***
Comment 13 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:02:19 UTC
*** Bug 654405 has been marked as a duplicate of this bug. ***
Comment 14 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:20:39 UTC
*** Bug 560832 has been marked as a duplicate of this bug. ***
Comment 15 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:20:55 UTC
*** Bug 560826 has been marked as a duplicate of this bug. ***
Comment 16 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:22:29 UTC
*** Bug 580460 has been marked as a duplicate of this bug. ***
Comment 17 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:27:05 UTC
*** Bug 580452 has been marked as a duplicate of this bug. ***
Comment 18 Joanmarie Diggs (IRC: joanie) 2018-02-10 16:35:15 UTC
In addition to the above duplicates, Orca used to have role-specific hacks for quite a few Gtk+ widgets to accept the deprecated focus: events. These had been added on a per-widget/role basis each time an Orca user would complain a newly-focused widget was not being spoken. After enough of these reports, I wound up removing all that and treating focus: as if it hadn't been deprecated for Gtk+.

Long way of saying: We should assume that all GtkWidget instances suffer from this problem.
Comment 19 GNOME Infrastructure Team 2018-05-02 15:51:52 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gtk/issues/454.