[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#804734: marked as done (jessie-pu: package gnome-orca/3.14.0-4)



Your message dated Sat, 23 Jan 2016 13:57:15 +0000
with message-id <1453557435.1835.52.camel@adam-barratt.org.uk>
and subject line 8.3 point release cleanup
has caused the Debian Bug report #804734,
regarding jessie-pu: package gnome-orca/3.14.0-4
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
804734: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804734
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Hello,

In Bug#800602, a blind user reported that when using the
greeter-hide-users=false option of lightdm, on reboot the focus is as
expected initially on the password field, so the user can directly type
it. The Orca screen reader however happens to speak the password letters
out loud instead of just "star"!

This is due to the way Orca discovers widgets, it does not notice that
this is a password field, and thus continues to speak typed letters out.
Upstream fixed this by checking hard, before speaking typed letters
out, whether the current widget is a password widget, and we have been
testing this fix in unstable & testing since 20th october now.

Since speaking passwords out loud is a security issue, I'd like to
upload the attached change which backports the fix.

Samuel

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.2.4 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Samuel
Actually, typing random strings in the Finder does the equivalent of
filename completion.
(Discussion in comp.os.linux.misc on the intuitiveness of commands: file
completion vs. the Mac Finder.)
diff -Nru gnome-orca-3.14.0/debian/changelog gnome-orca-3.14.0/debian/changelog
--- gnome-orca-3.14.0/debian/changelog	2015-02-15 23:51:26.000000000 +0100
+++ gnome-orca-3.14.0/debian/changelog	2015-11-11 01:20:47.000000000 +0100
@@ -1,3 +1,10 @@
+gnome-orca (3.14.0-4+deb8u1) jessie; urgency=medium
+
+  * patches/password-not-spoken.diff: Make sure to bring focus on password
+    entry when typing a key, so we don't echo it. (Closes: #800602).
+
+ -- Samuel Thibault <sthibault@debian.org>  Wed, 11 Nov 2015 01:19:34 +0100
+
 gnome-orca (3.14.0-4) unstable; urgency=medium
 
   * Team upload.
diff -Nru gnome-orca-3.14.0/debian/patches/password-not-spoken.diff gnome-orca-3.14.0/debian/patches/password-not-spoken.diff
--- gnome-orca-3.14.0/debian/patches/password-not-spoken.diff	1970-01-01 01:00:00.000000000 +0100
+++ gnome-orca-3.14.0/debian/patches/password-not-spoken.diff	2015-11-11 01:17:29.000000000 +0100
@@ -0,0 +1,89 @@
+commit 4d23f948e15dcdc741ee8b8c45b5aca2a4ee7fc3
+Author: Joanmarie Diggs <jdiggs@igalia.com>
+Date:   Tue Oct 20 16:33:03 2015 -0400
+
+    Be sure we have an active window and focused object when a key is pressed
+
+--- a/src/orca/orca.py
++++ b/src/orca/orca.py
+@@ -250,6 +250,8 @@ def _processKeyboardEvent(event):
+         return False
+ 
+     if isPressedEvent:
++        if not orca_state.activeWindow:
++            orca_state.activeWindow = script.utilities.activeWindow()
+         script.presentationInterrupt()
+     script.presentKeyboardEvent(keyboardEvent)
+     if keyboardEvent.isModifierKey() and not isOrcaModifier:
+--- a/src/orca/script_utilities.py
++++ b/src/orca/script_utilities.py
+@@ -661,6 +661,9 @@ class Utilities:
+         the FOCUSED state can be found.
+         """
+ 
++        if not root:
++            return None
++
+         if root.getState().contains(pyatspi.STATE_FOCUSED):
+             return root
+ 
+--- a/src/orca/scripts/default.py
++++ b/src/orca/scripts/default.py
+@@ -2527,6 +2527,11 @@ class Script(script.Script):
+         - event: the Event
+         """
+ 
++        role = event.source.getRole()
++        state = event.source.getState()
++        if role == pyatspi.ROLE_PASSWORD_TEXT and state.contains(pyatspi.STATE_FOCUSED):
++            orca.setLocusOfFocus(event, event.source, False)
++
+         # Ignore text deletions from non-focused objects, unless the
+         # currently focused object is the parent of the object from which
+         # text was deleted
+@@ -2538,7 +2543,7 @@ class Script(script.Script):
+         # We'll also ignore sliders because we get their output via
+         # their values changing.
+         #
+-        if event.source.getRole() == pyatspi.ROLE_SLIDER:
++        if role == pyatspi.ROLE_SLIDER:
+             return
+ 
+         # [[[NOTE: WDW - if we handle events synchronously, we'll
+@@ -2606,6 +2611,11 @@ class Script(script.Script):
+         - event: the Event
+         """
+ 
++        role = event.source.getRole()
++        state = event.source.getState()
++        if role == pyatspi.ROLE_PASSWORD_TEXT and state.contains(pyatspi.STATE_FOCUSED):
++            orca.setLocusOfFocus(event, event.source, False)
++
+         # Ignore text insertions from non-focused objects, unless the
+         # currently focused object is the parent of the object from which
+         # text was inserted.
+@@ -2617,11 +2627,9 @@ class Script(script.Script):
+         ignoreRoles = [pyatspi.ROLE_LABEL,
+                        pyatspi.ROLE_SLIDER,
+                        pyatspi.ROLE_SPIN_BUTTON]
+-        role = event.source.getRole()
+         if role in ignoreRoles:
+             return
+ 
+-        state = event.source.getState()            
+         if role == pyatspi.ROLE_TABLE_CELL \
+            and not state.contains(pyatspi.STATE_FOCUSED) \
+            and not state.contains(pyatspi.STATE_SELECTED):
+@@ -4147,6 +4155,12 @@ class Script(script.Script):
+         except:
+             return False
+ 
++        if role in [pyatspi.ROLE_DIALOG, pyatspi.ROLE_FRAME, pyatspi.ROLE_WINDOW]:
++            focusedObject = self.utilities.focusedObject(orca_state.activeWindow)
++            if focusedObject:
++                orca.setLocusOfFocus(None, focusedObject, False)
++                role = focusedObject.getRole()
++
+         if role == pyatspi.ROLE_PASSWORD_TEXT:
+             return False
+ 
diff -Nru gnome-orca-3.14.0/debian/patches/series gnome-orca-3.14.0/debian/patches/series
--- gnome-orca-3.14.0/debian/patches/series	2015-02-15 23:50:51.000000000 +0100
+++ gnome-orca-3.14.0/debian/patches/series	2015-11-11 01:17:18.000000000 +0100
@@ -1,3 +1,4 @@
 mate-notifications.diff
 lightdm
 libreoffice
+password-not-spoken.diff

--- End Message ---
--- Begin Message ---
Version: 8.3

Hi,

The updates referred to in these bugs were included in today's 8.3
Jessie point release.

Regards,

Adam

--- End Message ---

Reply to: