Bug 92293 - Accessibility completely broken with gtk3 plugin
Summary: Accessibility completely broken with gtk3 plugin
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
5.1.0.0.alpha0+ Master
Hardware: Other Linux (All)
: medium major
Assignee: Caolán McNamara
URL:
Whiteboard: target:5.1.0 target:5.0.0.2
Keywords:
Depends on:
Blocks: a11y-Linux GTK3
  Show dependency treegraph
 
Reported: 2015-06-24 06:59 UTC by Matthew Francis
Modified: 2016-10-25 20:01 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matthew Francis 2015-06-24 06:59:16 UTC
Since gtk3 was made the default in 88f94fa76ffbfc3abba885480d7d2d2e05107d0a, accessibility hasn't worked at all. Not sure if this has ever previously worked/been tested on gtk3.

Reproduction steps:
- Start LO on a build since gtk3 was made default, with accessibility enabled
e.g. GTK_MODULES="gail:atk-bridge" instdir/program/soffice
- Open Accerciser
- Open the accessibility tree for soffice

Expected result:
- Accessibility tree is visible

Actual result:
- Accessibility tree is empty beneath the level of the outer window(s)
Comment 1 Miklos Vajna 2015-06-24 07:14:59 UTC
FWIW, gtk3 was made the default by 031a347668e56c1b38c0539d30e9a1cbb808ca02, the above commit just builds it, but it was still disabled at runtime. :-)
Comment 2 Matthew Francis 2015-06-24 07:19:57 UTC
I was just amending that, you beat me ;)
Enabling it by default just exposed that a11y doesn't work. Manually setting a nonexistent vclplug with SAL_USE_VCLPLUGIN is ignored, so I thought I'd seen it working before but actually hadn't
Comment 3 Matthew Francis 2015-06-24 07:31:35 UTC
It seems highly relevant that in vcl/unx/gtk/a11y/atkbridge.cxx we have:

    bool InitAtkBridge()
    {
    #if !GTK_CHECK_VERSION(3,0,0)
    ...

Removing the #if doesn't magically result in working a11y so something is apparently missing there or has changed in gtk3
Comment 4 Matthew Francis 2015-06-24 07:39:05 UTC
(Taking the liberty of setting to NEW - it's clear enough from the code that this won't work at present)

The #if in question in vcl/unx/gtk/a11y/atkbridge.cxx was added in:

commit 089745636813be6692925f0c2e81822cfbb90f6f
Author: Michael Meeks <michael.meeks@novell.com>
Date:   Tue Jul 12 21:08:00 2011 +0100

    gtk3: cleanup error trap push/pop a little (wow it is nasty and inefficient)


Adding Cc: to michael.meeks@collabora.com; Any idea what's going on there?
Comment 5 Michael Meeks 2015-06-24 08:50:34 UTC
Matthew - thanks for digging it down to that #if =) You're quite right - a11y is disabled by default for gtk3.

Then again - that looks like a bit of paranoia from me: first start with something and expand the perimeter that works.

In fact the atk API hasn't really changed a whole lot for atk-2.0 (AFAIR) and this -should- 'just work' (at a first approximation) if we just remove the #ifdef (I hope so anyhow).

Seemingly we compile and link the rest of the bridge already ;-) Hope this didn't affect your dogtail work - I'd stick with gtk2 for another week or so for that.

Having said that Caolan is actively working on & testing this - Caolan ?
Comment 6 Caolán McNamara 2015-06-25 19:56:21 UTC
probably somehow need to adapt to https://mail.gnome.org/archives/commits-list/2011-July/msg03824.html
Comment 7 Caolán McNamara 2015-06-26 12:21:43 UTC
Nope, that's not it but I got a handle on this now
Comment 8 Commit Notification 2015-06-26 12:54:00 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=093d7b8142d0cb224fcf23506f3b36f7a3a10d2c

Resolves: tdf#92293 gtk3: get a11y working

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 9 Commit Notification 2015-06-26 12:54:04 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=aff0d4b29681ee8008ff438885c8cc2b461f4dd5

Related: tdf#92293 gtk3 a11y: I suspect that all of this is redundant

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 10 Commit Notification 2015-06-26 14:16:07 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=cfcae6481a9180d057a34e3a4a157dbc2f96918e&h=libreoffice-5-0

Resolves: tdf#92293 gtk3: get a11y working

It will be available in 5.0.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 11 Commit Notification 2015-06-26 14:16:11 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=dbba5f026cd94002fc76dc94a0d131d494bc4301&h=libreoffice-5-0

Related: tdf#92293 gtk3 a11y: I suspect that all of this is redundant

It will be available in 5.0.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.