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 685469 - Password field should have ATK_ROLE_PASSWORD_TEXT; not ATK_ROLE_TEXT
Password field should have ATK_ROLE_PASSWORD_TEXT; not ATK_ROLE_TEXT
Status: RESOLVED FIXED
Product: at-spi
Classification: Platform
Component: at-spi2-core
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Li Yuan
At-spi maintainer(s)
: 672342 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-10-04 06:22 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2012-10-05 21:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Clutter test (2.74 KB, patch)
2012-10-04 14:05 UTC, Alejandro Piñeiro Iglesias (IRC: infapi00)
none Details | Review
accessible event listener (198 bytes, text/x-python)
2012-10-04 14:07 UTC, Alejandro Piñeiro Iglesias (IRC: infapi00)
  Details

Description Joanmarie Diggs (IRC: joanie) 2012-10-04 06:22:01 UTC
Now that GDM is accessible in 3.6 (Yay!!), I tried it with Orca. Orca is echoing keypresses when the text is inserted in the password field. Orca is doing this because Orca cannot tell the text insertion event is coming from a password field because it has ATK_ROLE_TEXT.
Comment 1 Joanmarie Diggs (IRC: joanie) 2012-10-04 06:26:22 UTC
*** Bug 672342 has been marked as a duplicate of this bug. ***
Comment 2 Florian Müllner 2012-10-04 06:49:38 UTC
(In reply to comment #0)
> Orca is doing this because Orca cannot tell the text insertion event 
> is coming from a password field because it has ATK_ROLE_TEXT.

Mmmh, Clutter is supposed to set the role automatically depending on the password-char property. The entry in question does not have a fixed role, but changes at runtime - Clutter is supposed to handle this[0], but maybe it's not working, or Orca is not picking up role changes?

[0] http://git.gnome.org/browse/clutter/tree/clutter/cally/cally-text.c#n1732
Comment 3 Joanmarie Diggs (IRC: joanie) 2012-10-04 07:00:51 UTC
Or perhaps AT-SPI2 is not picking them up. Orca gets events and processes them. It knows what it is told. I'm hoping Piñeiro will be able to determine if it is in Clutter or further on down the line.
Comment 4 Alejandro Piñeiro Iglesias (IRC: infapi00) 2012-10-04 13:49:47 UTC
(In reply to comment #3)
> Or perhaps AT-SPI2 is not picking them up. Orca gets events and processes them.
> It knows what it is told. I'm hoping Piñeiro will be able to determine if it is
> in Clutter or further on down the line.

Yes, I suspect that this is a at-spi2, specifically a at-spi2 cache bug, as I have doing some tests, and I was able to reproduce something similar with just a little clutter program. I will upload those tests soon.
Comment 5 Alejandro Piñeiro Iglesias (IRC: infapi00) 2012-10-04 14:05:11 UTC
Created attachment 225807 [details] [review]
Clutter test

This is a little clutter test. It has a text and a button. Each time you press the bottom you toggle the visibility of the text entry. It also connects to notify::accessible-role to print any role change.

It works as expected, each time you press the button a message "role is XXX" appears, and XXX is different each time. You get something like:
Role is text
Role is password text
Role is text
Role is password text
...
Comment 6 Alejandro Piñeiro Iglesias (IRC: infapi00) 2012-10-04 14:07:10 UTC
Created attachment 225809 [details]
accessible event listener

This is a little pyatspi2 script that listen "object:property-change:accessible-role" events.

I tried to use this test with the previous clutter example, and it prints a accessible-role change, but always with the same value (the initial one)
Comment 7 Mike Gorse 2012-10-05 16:51:27 UTC
Yeah, it looks like I don't have any code in libatspi to update the role in response to a role change. Thanks for tracking it down.
Comment 8 Mike Gorse 2012-10-05 21:46:11 UTC
I just added code to update the cache in response to role changes (commit a3b7c7). Hopefully this will fix things--it makes the test case work. I'll plan on rolling this into 2.6.1.