Bug 82998 - [ACCESSIBILITY] Missing and incorrect accessibility events from LibreOffice's Open dialog
Summary: [ACCESSIBILITY] Missing and incorrect accessibility events from LibreOffice's...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
4.3.0.4 release
Hardware: Other All
: medium normal
Assignee: Caolán McNamara
QA Contact:
URL:
Whiteboard: target:5.0.0 target:4.4.4
Keywords: accessibility, bibisected, bisected, regression
: 82996 (view as bug list)
Depends on:
Blocks: a11y-Linux LO-File-Dialog
  Show dependency treegraph
 
Reported: 2014-08-24 06:22 UTC by Joanmarie Diggs
Modified: 2016-10-25 20:05 UTC (History)
7 users (show)

See Also:
Crash report or crash signature:


Attachments
accessible event listener (510 bytes, text/plain)
2014-08-24 06:22 UTC, Joanmarie Diggs
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joanmarie Diggs 2014-08-24 06:22:50 UTC
Created attachment 105183 [details]
accessible event listener

Steps to reproduce:
1. Enable use of LibreOffice's Open/Save dialog (i.e. not platform-native)
2. Launch the attached accessible-event listener
3. Tab to give focus to the File type combo box
4. Up and Down Arrow to change the selection

Expected results: Accessibility events indicating the selection has changed, such as object:state-changed:selected and/or object:selection-changed and/or object:active descendant changed.

Actual results: Only object:state-changed:indeterminate is seen.

Notes:

1. This is a regression. Things work as expected in 4.2.x

2. Emitting object:state-changed:indeterminate is appropriate for things like tri-state checkboxes when the state is neither fully checked nor fully unchecked. It strikes me as odd that you would emit this event (i.e. I do not think that this event makes sense in this instance for any platform's accessibility API).

2. I noticed that you are emitting an accessible value changed event. I believe that is expected for Windows' accessibility APIs. However for ATK/AT-SPI2, value-change events are expected only for the sorts of things which implement AtkValue (scrollbars, progressbars, sliders, spinbuttons, etc.) Combo boxes, lists, and the like should not be emitting this event.
Comment 1 V Stuart Foote 2014-08-25 15:52:27 UTC
*** Bug 82996 has been marked as a duplicate of this bug. ***
Comment 2 Matthew Francis 2015-03-21 07:50:52 UTC
Bibisect results from 43all:

641c999c8334a92273589d1a7931e8733fb265ef is the first bad commit
commit 641c999c8334a92273589d1a7931e8733fb265ef
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date:   Sat May 10 17:33:11 2014 +0000

    source-hash-22029c7e17b4cb48acb058d47ec9c3b6b8b6b294
    
    commit 22029c7e17b4cb48acb058d47ec9c3b6b8b6b294
    Author:     Herbert Dürr <hdu@apache.org>
    AuthorDate: Tue Nov 26 09:00:15 2013 +0000
    Commit:     Caolán McNamara <caolanm@redhat.com>
    CommitDate: Tue Nov 26 10:48:14 2013 +0000


It seems pretty clear this must be the below commit.
Adding Cc: to caolanm@redhat.com; Any chance you could take a look at this? Thanks


commit efb23f29983f87104a684e7fab00b84fc59d131d
Author:     Steve Yin <steve_y@apache.org>
AuthorDate: Mon Nov 25 15:24:55 2013 +0000
Commit:     Caolán McNamara <caolanm@redhat.com>
CommitDate: Tue Nov 26 10:24:24 2013 +0000

    Integrate branch of IAccessible2
    
    (cherry picked from commit e2f90c93c97f3cf137c348ed302c6470f398aa70)
    
    Change-Id: I44ce0d69f3e7364038b00b1ba0f0d27e60132a37
    
    WaE: Prevent uninitialized variable warnings.
    
    (cherry picked from commit b989f4074ea70729d527b307bfbe49e01a0d3646)
Comment 3 Matthew Francis 2015-03-21 07:59:22 UTC
Hmm, actually there is one more - but part of the same thing

commit b755fb8c0f6b1282f62c12f378c0a5ecac64d490
Author:     Steve Yin <steve_y@apache.org>
AuthorDate: Mon Nov 25 16:15:58 2013 +0000
Commit:     Caolán McNamara <caolanm@redhat.com>
CommitDate: Mon Nov 25 16:52:36 2013 +0000

    Integrate branch of IAccessible2
    
    Change-Id: I3b5936bb92bb258f9e9e76402dd2b55f29aa686a
Comment 4 Robinson Tryon (qubit) 2015-03-31 13:55:30 UTC
Removing comma from Whiteboard (please use a space to delimit values in this field)
https://wiki.documentfoundation.org/QA/Bugzilla/Fields/Whiteboard#Getting_Started
Comment 5 Commit Notification 2015-04-03 14:09:44 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=ccaeafab704b46ed8ca8c4aad3c14f6143bfc141

Related: tdf#82998 don't emit an Indeterminate state change for boxes

It will be available in 5.0.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 6 Commit Notification 2015-04-03 14:09:48 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=835fcfacc66601299aa73cd5423e8277ccd8fc34

Related: tdf#82998 assume VALUE_CHANGED makes sense only for windows

It will be available in 5.0.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 7 Commit Notification 2015-04-03 14:09:52 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=da907c7b7a328d29d5ede8d43f539811856417f9

Related: tdf#82998 rearrange, no logic change

It will be available in 5.0.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 8 Commit Notification 2015-04-03 14:09:56 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=74e673b49fdf8daa3365961de5fb0c9c6d831279

Resolves: tdf#82998 no object:active descendant changed emitted

It will be available in 5.0.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 Caolán McNamara 2015-04-03 14:13:31 UTC
a) Dropped the object:state-changed:indeterminate entirely
b) Emitted accessible value changed event only for windows
c) Scratched my head a bit as to what the original author wanted to do and made a plausible guess and modified things so that object:active descendant gets emitted when pressing up/down in a list box which *has* a dropdown but doesn't have an *active* dropdown.
Comment 10 Arnaud Versini 2015-04-18 16:28:45 UTC
Caolan, do you think your patches can be backported to 4.3 and 4.4 ?
Comment 11 Commit Notification 2015-04-20 10:13:20 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=6a4620ec244b41b32fe339af303e1c72c49c681d&h=libreoffice-4-4

Related: tdf#82998 don't emit an Indeterminate state change for boxes

It will be available in 4.4.4.

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 12 Commit Notification 2015-04-20 10:14:33 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=dd9084729d4a9c50e5bad02be7e3897d2b893852&h=libreoffice-4-4

Related: tdf#82998 rearrange, no logic change

It will be available in 4.4.4.

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 13 Commit Notification 2015-04-20 10:15:46 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

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

Related: tdf#82998 assume VALUE_CHANGED makes sense only for windows

It will be available in 4.4.4.

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 14 Commit Notification 2015-04-20 10:18:04 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=6adab4507858fc1606c8e426151d3d8ec6353bd0&h=libreoffice-4-4

Resolves: tdf#82998 no object:active descendant changed emitted

It will be available in 4.4.4.

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 15 Robinson Tryon (qubit) 2015-12-17 08:33:35 UTC Comment hidden (obsolete)