Page MenuHome GnuPG

pinentry-gtk-2's secure entry is inaccessible in GNU/Linux
Closed, ResolvedPublic

Description

Steps to reproduce:

  1. launch the attached accessible-event listener in a terminal on a GNU/Linux distro with accessibility support enabled
  2. launch pinentry-gtk-2 and when prompted for orders, type "getpin"
  3. tab amongst the widgets in the resulting dialog
  4. enter text in the secure entry

As you perform steps 3 and 4, the accessible-event listener will output events.
These events are used by assistive technologies such as the Orca screen reader to
present focus and text changes to users who are blind.

Expected results:

  1. The secure entry would have ROLE_PASSWORD_TEXT
  2. When text was entered, an accessible event would be emitted

Actual results:

  1. The secure entry has ROLE_UNKNOWN
  2. When text is entered, there is no accessible event

Impact: A user who is blind has no idea that focus is in the entry, and no
confirmation from the screen reader that text has been entered.

Here's a comparison between gtk-demo's "Entry Buffer" and pinentry-gtk-2 in which
focus is given to the password/secure entry and two characters are typed:

gtk-demo:

[password text | ] is now focused
object:text-changed:insert(0, 1, ●)

source: [password text | ]
host_application: [application | gtk-demo]

object:text-changed:insert(1, 1, ●)

source: [password text | ]
host_application: [application | gtk-demo]

pinentry-gtk-2:

[unknown | ] is now focused

Event Timeline

Okay. The secentry needs some work anyway to allow for a hide/show button. This
will probably go in the 0.9.3 release because it is too late for 0.9.2

I replaced our custom entry widget with the standard Gtk+ widget. This should
fix this problem. Please test and let me know either way. Thanks!

neal added a project: Restricted Project.Jul 26 2015, 7:49 PM

@neal. Just pulled master and gave it a try. Role is correct, events are correct,
and Orca's working as expected with that widget. Thanks much!!

neal claimed this task.

Thanks for testing this!

neal removed a project: Restricted Project.Jul 30 2015, 10:48 PM