[dash] Unable to review the contents of the text entry field with Orca.

Bug #886338 reported by Luke Yelavich
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
unity-2d
Invalid
High
Paweł Stołowski
unity-2d (Ubuntu)
Invalid
Undecided
Unassigned
Precise
Invalid
Undecided
Unassigned

Bug Description

 affects ubuntu/unity-2d
 status triaged

 affects unity-2d
 tag a11y

When using Unity 2D with Orca, it is currently not possible to review the contents of the text entry field in the dash. To reproduce, do the following:

1. Make sure you are running Unity 2D with accessibility enabled, and Orca is running, and you can get feedback from the launcher.
2. Bring up the dash with the super key.
3. Type some text in the text entry field.
4. Use the arrow keys to move the cursor through the text in the field.
5. use shift + arrow keys to select text in the text entry field.

You should not hear Orca speak anything when attemptin to move the cursor through, or select text in the entry field.

Tags: a11y

Related branches

Gerry Boland (gerboland)
summary: - Unable to review the contents of the text entry field with Orca.
+ [dash] Unable to review the contents of the text entry field with Orca.
Changed in unity-2d:
status: New → Confirmed
importance: Undecided → High
Changed in unity-2d:
assignee: nobody → Pawel Stolowski (stolowski)
Changed in unity-2d:
status: Confirmed → In Progress
Gerry Boland (gerboland)
Changed in unity-2d:
milestone: none → 5.12
Revision history for this message
Paweł Stołowski (stolowski) wrote :

I've debugged a11y events received by Orca and nailed the problem down to the sequence of events it receives from unity-2d, and the notion of "visual" focus, tracked by Orca. When HUD is activated, Orca receives a series of events, including focus changes - it receives focus change for text input (HUD search entry), but eventually for some reason Qt/QML/qt-at-spi sends this:

object:state-changed:focused(1, 0, [panel | Dash])

meaning Orca considers [panel | Dash] as having focus.

When user moves cursor in HUD search entry, Orca receives text-caret-moved events:
object:text-caret-moved(0, 0, 0)
        source: [text |]
        host_application: [application | Unity 2D Shell]

but since it's not coming from an object that has focus, it's discarded (see Orca's sources, default.py, around line 3137).

Focus event created for [panel | Dash] may be related to object hierarchy. For now I couldn't find any "bug" or a simple workaround on unity-2d side. We may need to implement a custom Orca script for handling unity-2d a11y events (lots of packages already do this if you look into /usr/lib/python2.7/dist-packages/orca/scripts/apps and /usr/share/pyshared/orca/scripts/apps).

Changed in unity-2d:
status: In Progress → Confirmed
Changed in unity-2d:
status: Confirmed → In Progress
Changed in unity-2d:
status: In Progress → Fix Committed
Revision history for this message
Paweł Stołowski (stolowski) wrote :

The fix commited in hud-a11-focus-fixes branch fixes focus problems that made Hud search entry silent for Orca, but there search entry is still not fully a11y capable as for some reason Orca always speaks the 1st search entry letter. Re-opening.

Changed in unity-2d:
status: Fix Committed → Confirmed
Changed in unity-2d:
status: Confirmed → Fix Committed
status: Fix Committed → Confirmed
Changed in unity-2d:
status: Confirmed → In Progress
Revision history for this message
Paweł Stołowski (stolowski) wrote :

I debugged the last problem and unfortunately it turned out that accessibility for cursor movement in QML - TextInput is not implemented in Qt 4. There is a lot of stub code in qaccessibledeclarativeobject.cpp - in particular QAccessibleDeclarativeTextObject::cursorPosition() which is responsible for reporting cursor position to accessibility stack always returns 0. This code was completly reworked in Qt5, so backporting it is not feasible - the only possibility is to implement missing bits in Qt 4.8.

Changed in unity-2d:
status: In Progress → Confirmed
Changed in unity-2d:
milestone: 5.12 → 5.14
Changed in unity-2d:
status: Confirmed → Invalid
Changed in unity-2d (Ubuntu):
status: Triaged → Invalid
Changed in unity-2d (Ubuntu Precise):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.