If a GTK application quits the main loop and restarts it again, accessibility is lost.

Bug #1056300 reported by Paul Larson on 2012-09-25
30
This bug affects 5 people
Affects Status Importance Assigned to Milestone
GTK+
New
Medium
gtk+3.0 (Ubuntu)
High
Luke Yelavich
Quantal
High
Luke Yelavich
ubiquity (Ubuntu)
High
Unassigned
Quantal
High
Unassigned

Bug Description

On the quantal beta 2 image - 20120925, I'm trying to do the screenreader test. So far I've been able to reproduce this with both i386 and amd64+mac. After starting orca, things seem to work ok through the welcome screen in ubiquity, but then it quits reading. Starting with the screen titled "Install" with the text at the top "Preparing to install Ubuntu", it doesn't read the screen any longer. Nor does it seem to tell me when I press keys like enter to move on. Other apps are still read to me after this by orca though.

ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: ubiquity 2.12.3
ProcVersionSignature: Ubuntu 3.5.0-15.23-generic 3.5.4
Uname: Linux 3.5.0-15-generic x86_64
ApportVersion: 2.5.2-0ubuntu4
Architecture: amd64
CasperVersion: 1.324
Date: Tue Sep 25 16:16:51 2012
InstallCmdLine: file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash -- maybe-ubiquity
LiveMediaBuild: Ubuntu 12.10 "Quantal Quetzal" - Beta amd64+mac (20120925)
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: ubiquity
UpgradeStatus: No upgrade log present (probably fresh install)

Paul Larson (pwlars) wrote :
tags: added: iso-testing qa-daily-testing qa-manual-testing rls-q-incoming
Changed in ubiquity (Ubuntu):
assignee: nobody → Luke Yelavich (themuso)
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubiquity (Ubuntu):
status: New → Confirmed

Could you please be a little more specific? When you say read the screen, what are you referring to specifically, and in what install steps?

Launch Ubiquity with orca enabled
Screen 1: "Welcome" - This is where you pick the language, screen reader reads that "english" is selected by default, and reads "enter" when I press the enter key to proceed.
Screen 2: "Install" - On this screen, it has checks that you meet minimum space requirements, are plugged in to a power source and that you're connected to the internet. Checkboxes are offered for "Download updates while installing" and "Install this third-party software". On this screen, nothing is read. When I press the enter key, it is not spoken back to me

What happens if you boot the image, and at the try/install Ubuntu screen, load Orca with Control + S? Does the above mentioned screen still not work properly in that environment?

That is where I'm loading it in the description above. The way I did it was to do "try ubuntu" after starting orca, so that I could easily get a terminal and interact to run ubuntu-bug. I've also selected "Install Ubuntu" from that screen after starting orca, and the very first screen it takes me to is the one that I described above as "Screen 2" or the screen where it stops reading me anything from the screens from that point forward.
I also tried waiting until I get to that screen to start orca for the first time. As with the other attempts, anything from that screen and foward in ubiquity does not get read by orca, but other applications are read to me (for instance, if I bring up a calculator, or select sound settings from the menu)

You say they are read to you. What do you think should happen? I think there is some confusion as to what you think it should do, vs what it actually does, and how a screen reader is supposed to be used.

Changed in ubiquity (Ubuntu):
importance: Undecided → High

So basically these are the steps followed,
1. Start your machine with the install media in place
    Wait to hear the drums
2. Press Ctrl+s to start the screen-reader
3. Press Alt+Tab to change to the installer
4. Press Up or Down arrow to select your language(default is English)
5. Press Tab once to "Try Ubuntu"
6. Press Enter
( This will load the usb in the live session)
7. Press Super+1 to begin the installation. Super is the left windows key
8.Use up-arrow and down-arrow to select the language you want to the installation to use
***** The options were read back until this point, please see attached file named 'read.jpg'*****
9. Press Enter
**********From this point onwards orca fails to read any selections for any key presses, please see the screenshot named 'unread.jpg'**************
Hence could not continue the installation further.

Para Siva (psivaa) wrote :
Gema Gomez (gema) wrote :

Luke, after the first screen where you choose the language and hit install, there is no more reading, orca basically stops reading there. Cannot you reproduce? We seem to be hitting this on every install

tags: removed: rls-q-incoming
Dimitri John Ledkov (xnox) wrote :
Download full text (4.6 KiB)

Steps to reproduce:
1) Boot into quantal daily (either bare mental or KVM sdl with sound)
2) Wait until you hear drums
3) Press Ctrl+S to start the screen reader
4) Alt-Tab from Orca preferences window to the installer
5) Tab -> "Try ubuntu push button" Tab -> "Install ubuntu" Enter
6) "Con..." and orca goes silent.

Instead you should hear "Continue push button" and be able to tab around and hear the labels getting announced.

If orca is launched from the terminal the following messages appear. The text that "no longer exists" is the stuff currently displayed on the screen and should be read back to the user....

This bug blocks fixing other orca/screen reader bugs in ubiquity & testing a11y installation.

$ orca

** (orca:8823): WARNING **: Unable to open bus connection: Empty address ''

** (orca:8823): WARNING **: AT-SPI: Error in GetItems, sender=:1.24, error=Method "GetItems" with signature "" on interface "org.a11y.atspi.Cache" doesn't exist

** (orca:8823): WARNING **: Unable to open bus connection: Empty address ''

** (orca:8823): WARNING **: AT-SPI: Error in GetItems, sender=(null), error=Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

** (orca:8823): WARNING **: AT-SPI: Error in GetItems, sender=:1.26, error=Method "GetItems" with signature "" on interface "org.a11y.atspi.Cache" doesn't exist

_toolkitForObject: [radio button | Connect to this network] no longer exists
_toolkitForObject: [check box | Use LVM with the new Ubuntu installation] no longer exists
_toolkitForObject: [check box | Encrypt the new Ubuntu installation for security] no longer exists
_toolkitForObject: [push button | Revert] no longer exists
_toolkitForObject: [push button | LVM...] no longer exists
_toolkitForObject: [push button | New Partition Table...] no longer exists
_toolkitForObject: [check box | Overwrite empty disk space] no longer exists
_toolkitForObject: [push button | Detect Keyboard Layout] no longer exists
_toolkitForObject: [radio button | Log in automatically] no longer exists
_toolkitForObject: [radio button | Require my password to log in] no longer exists
_toolkitForObject: [check box | Encrypt my home folder] no longer exists
_toolkitForObject: [DEAD] no longer exists
_toolkitForObject: [DEAD] no longer exists
_toolkitForObject: [DEAD] no longer exists
_toolkitForObject: [DEAD] no longer exists
_toolkitForObject: [frame | Install] no longer exists
_toolkitForObject: [push button | Quit] no longer exists
_toolkitForObject: [push button | Back] no longer exists
_toolkitForObject: [push button | Continue] no longer exists
_toolkitForObject: [push button | Continue] no longer exists
_toolkitForObject: [label | that you are plugged in to a power source] no longer exists
_toolkitForObject: [label | that you are plugged in to a power source] no longer exists
_toolkitForObject: [label | is plugged in to a power source] no longer exists
_toolkitForObject: [label | that you are connected to the Internet] no longer exists
_toolkitForObject: [label | that you are connected to the Interne...

Read more...

I tested ubiquity myself with at-spi2-core and at-spi2-atk reverted ack to the versions in Beta 1 when things worked properly, and no dice. I suspect GTK, which is my next target.

Reverting GTK commit 5debed5ae247c1dd440cb71d0a6d328df74b0844 makes the problem go away, but I can't say whether this is a GTK bug until I know what ubiquity is doing between steps/pages. That commit adds
functionality to GTK to properly shut down accessibility when a window is closed, but ubiquity's window doesn't close, which makes me wonder why reverting that commit makes the problem go away...

summary: - orca quits reading after the welcome screen in ubiquity
+ orca quits reading after the closing greeter by choosing "install now"
summary: - orca quits reading after the closing greeter by choosing "install now"
+ orca quits reading after closing the greeter with "install now" option
summary: - orca quits reading after closing the greeter with "install now" option
+ orca quits after closing the greeter with "install now" option

I've found the problem. If I'm reading Ubiquity's GTK frontend code correctly, the main loop is shut down when the installer switches pages. Commit 5debed5ae247c1dd440cb71d0a6d328df74b0844 introduces some extra code to make sure accessibility is properly shut down when the mainloop quits. The problem here is that accessibility is initialized when gtk_init is called, so in ubiquity's case, switching installer pages causes the main loop to quit, which shuts down accessibility, but when the main loop is started again, there is no accessibility enabled for ubiquity any more.

affects: ubiquity (Ubuntu Quantal) → gtk+3.0 (Ubuntu Quantal)
Changed in gtk+3.0 (Ubuntu Quantal):
status: Confirmed → Triaged
summary: - orca quits after closing the greeter with "install now" option
+ If a GTK application quits the main loop and restarts it again,
+ accessibility is lost.
Dimitri John Ledkov (xnox) wrote :

is it about windows closing or main loops? It looks like we call Gtk.main_quit() between steps. Maybe we need to stay at level 1 instead of level 0, throughout the whole ubiquity execution.

So far as I could tell, its about main loop quitting. The main window stays open all the time, again from what I read of the code.

Changed in ubiquity (Ubuntu Quantal):
status: New → Confirmed
importance: Undecided → High
Changed in gtk:
importance: Unknown → Medium
status: Unknown → New
Luke Yelavich (themuso) wrote :

 subscribe seb128

We need to get this working for final release, so I think the best way forward is as follows:

1. Revert 5debed5ae247c1dd440cb71d0a6d328df74b0844 in the gtk+3.0 package. This will work around the problem by not shutting down accessibility at all for GTK, which was how things were for most of this cycle prior to this commit being made upstream. Shutting down accessibility is the right thing to do long term, as it cleans up unused sockets and connections, but reverting this commit won't break anything either.
2. Once upstream has worked out a proper solution to this problem, we can drop the revert, and pull the upstream fix and SRU it.

I have subscribed Sebastien to get his thoughts on whether this is reasonable. If he gives the go ahead, I'll take care of the first step of the above prior to final freeze.

Changed in gtk+3.0 (Ubuntu Quantal):
status: Triaged → In Progress
Sebastien Bacher (seb128) wrote :

Hey Luke, it's getting late, I think the safest option at this point is to revert that commit yes, I uploaded a gtk+3.0 update to quantal-proposed in that effect

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gtk+3.0 - 3.6.0-0ubuntu3

---------------
gtk+3.0 (3.6.0-0ubuntu3) quantal-proposed; urgency=low

  * debian/patches/revert_git_a11y_stopped.patch:
    - revert recent commit which unload a11y on shutdown,
      that's an optimization and not strictly necessary and it's creating
      issue with e.g ubiquity (lp: #1056300). That's a workaround but seems
      to be the safest solution for quantal.
  * debian/patches/git_iconview_render_item_select.patch:
    - "iconview: Render focus even in non-selected items"
  * debian/control.in:
    - let libgtk depends on at-spi-core2 (rather than libgail) since that's
      the library which is using the service, that should fix issues the
      warnings raised on some configurations (including the QA tests)
 -- Sebastien Bacher <email address hidden> Tue, 09 Oct 2012 11:48:15 +0200

Changed in gtk+3.0 (Ubuntu Quantal):
status: In Progress → Fix Released
Dimitri John Ledkov (xnox) wrote :

Verified that a11y is now back with reverted gtk+3.0. Desktop amd64 20121010 image.

Changed in ubiquity (Ubuntu Quantal):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
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.