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 720983 - Objects of ATK_ROLE_CHECK_MENU_ITEM fail to emit object:state-changed:checked signals in Gtk+ 3
Objects of ATK_ROLE_CHECK_MENU_ITEM fail to emit object:state-changed:checked...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Accessibility
3.10.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2013-12-23 16:48 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2014-01-05 02:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
accessible-event listener (173 bytes, text/plain)
2013-12-23 16:48 UTC, Joanmarie Diggs (IRC: joanie)
  Details
a11y: Fix state tracking for GAction-based radio items (3.00 KB, patch)
2014-01-04 22:02 UTC, Matthias Clasen
none Details | Review
GtkModelMenuItem: Make toggled property readable (2.87 KB, patch)
2014-01-04 22:02 UTC, Matthias Clasen
none Details | Review

Description Joanmarie Diggs (IRC: joanie) 2013-12-23 16:48:37 UTC
Created attachment 264804 [details]
accessible-event listener

Steps to reproduce:
1. Open the attached accessible-event listener in a terminal
2. Launch gtk3-demo's Application Class demo
3. Get into the Preferences menu, choose the color submenu,
   then choose a color that is not already checked.

Expected results: Each time step 3 is performed, two object:state-changed:checked accessible events would be seen in the terminal (one for the formerly-checked menu item; one for the newly-checked menu item).

Actual results: Each time step 3 is performed, there are no object:state-changed:checked accessible events seen in the terminal.

Note: This bug is not present in gtk-demo (2.24.22), though I'm not sure when it was introduced into Gtk+ 3.
Comment 1 Matthias Clasen 2014-01-04 22:02:12 UTC
Created attachment 265344 [details] [review]
a11y: Fix state tracking for GAction-based radio items

It turns out that with GAction-based menu items, we get neither
the toggled signal emitted, nor do we get change notification for
the active property. We do, however get change notification for
the toggled property (with the previous change).

Switch the state tracking of GtkCheckMenuItemAccessible to
be entirely based on property notification. Drop the toggled signal
handler. We do listen for both active and toggled changes to
catch both traditional menus and GAction-based ones.
Comment 2 Matthias Clasen 2014-01-04 22:02:25 UTC
Created attachment 265345 [details] [review]
GtkModelMenuItem: Make toggled property readable

Otherwise, we don't emit change notification, making it impossible
for the accessibility infrastructure to stay on top of state
changes.
Comment 3 Matthias Clasen 2014-01-04 22:03:08 UTC
grr, attached in the wrong order