Created attachment 88946 [details] accessible-event listener Steps to reproduce: 1. Launch the attached accessible event listener 2. Open the (to be) attached Calc document 3. Give focus to A1 or B1, press F2, then press Left Arrow and Right Arrow 4. Give focus to A2 or B2, press F2, then press Left Arrow and Right Arrow Expected results: During both step 3 and step 4, accessible caret-moved events would appear in the terminal for each press of Left or Right. Actual results: Things work as expected for A1 and B1, but there are no accessible caret-moved events when pressing Left or Right while editing A2 and B2. Work around: If you go to the Window menu and disable "freeze", things work as expected. Impact: Users who are blind, who don't know about the work around, have a difficult time editing the contents of certain cells because their screen reader is not informed that the caret has moved and therefore remain silent.
Created attachment 88947 [details] test case
Requesting input on this one - no clue if it's a bug, enhancement or not our issue.
(In reply to comment #0) > > Expected results: During both step 3 and step 4, accessible caret-moved > events would appear in the terminal for each press of Left or Right. Hi Joanmarie, Did LibreOffice previously provide these accessible caret-moved events? (And if so, do you remember the last version of LibreOffice that provided them?) This information is helpful for us to track down regressions in the code. Thanks!
(In reply to comment #2) > Requesting input on this one - no clue if it's a bug, enhancement or not our > issue. It's an accessibility bug in LibreOffice. (In reply to comment #3) > Did LibreOffice previously provide these accessible caret-moved events? I think you inherited this bug from OpenOffice which inherited it from StarOffice. It's been around a while. :(
(In reply to comment #4) > (In reply to comment #3) > > Did LibreOffice previously provide these accessible caret-moved events? > > I think you inherited this bug from OpenOffice which inherited it from > StarOffice. It's been around a while. :( Okay, so not a regression. I'll try to repro.
This should not be NEW until it's confirmed by an independent person. Marking as UNCONFIRMED
CONFIRMED using LO 4.1.2.3 on Ubuntu 12.04.3 (plus the accessible-event listener as attached to this bug). (In reply to comment #0) > Steps to reproduce: > 1. Launch the attached accessible event listener > 2. Open the (to be) attached Calc document > 3. Give focus to A1 or B1, press F2, then press Left Arrow and Right Arrow Accessible caret-moved events appear in the terminal > 4. Give focus to A2 or B2, press F2, then press Left Arrow and Right Arrow No events appear in the terminal > Actual results: Things work as expected for A1 and B1, but there are no > accessible caret-moved events when pressing Left or Right while editing A2 > and B2. Verified. > Work around: If you go to the Window menu and disable "freeze", things work > as expected. Confirmed. Selecting cell B1 and then unchecking the freeze via Window -> Freeze changes the behavior of this cell and caret-moved events are visible in the listener. --- Status: NEW
Whiteboard: Remove 'Need_Advice' now that this is confirmed.
At AccessibleTextHelper_Impl::UpdateSelection, the following call is not getting the correct selection: GetEditViewForwarder().GetSelection( aSelection ) The selection is checked against the previous state of the selection, and if no changes are detected the event is never launched.
The selection is not correct because it is being processed by the wrong AccessibleTextHelper_Impl object. When pressing F2 on one of the cells of the second row, two AccessibleTextHelper objects are created instead of one like it happens in the first row. The UpdateSelection method is run by the redundant AccessibleTextHelper which contains wrong selection information. As a side note, if you change the focus to another window and then back to Calc while editing a cell in the second row, the proper AccessibleTextHelper is invoked and the missing caret-moved events are emitted.
The two AccessibleTextHelper objects are added to different lists of listeners in two SfxBroadcaster objects. Either we are notifying the wrong list when we press F2, or there should only be one list.
The issue with the AccessibleTextHelper objects seems somehow related to bug 71409 comment 21, and the behaviour of this bug also changes across the commit identified for that bug (c7551439a9ff4073a0b652329357be46d07b2c91) Before that commit the caret-moved events are missing, whereas after some events appear (but seemingly only for motion to the right, not left) However all events stop again as of 43c7830b03d141ae11d8617c0fdabefa32dd243c which follows shortly after (although it worked slightly better for a short time, I don't think we can call this a regression - the above short period where some events were emitted was more or less accidental, and never solved the underlying problem)
Migrating Whiteboard tags to Keywords: (a11y -> accessibility)
As I see no changes for a long time. I'll take it.
Tamás Zolnai committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=06ea887f8ba34a628d7641eab210501f7bd2493d tdf#71435: Accessible caret-moved events are missing when "freeze" is enabled It will be available in 5.4.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.
Tamás Zolnai committed a patch related to this issue. It has been pushed to "libreoffice-5-3": http://cgit.freedesktop.org/libreoffice/core/commit/?id=c869dac7c71395fd86a930c556893b6694a36e8a&h=libreoffice-5-3 tdf#71435: Accessible caret-moved events are missing when "freeze" is enabled It will be available in 5.3.0.1. 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.
Tamás Zolnai committed a patch related to this issue. It has been pushed to "libreoffice-5-2": http://cgit.freedesktop.org/libreoffice/core/commit/?id=8e776ddb0a65fcf2be72166fa6da1bde6a885e91&h=libreoffice-5-2 tdf#71435: Accessible caret-moved events are missing when "freeze" is enabled It will be available in 5.2.5. 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.
Dear all, On LibreOffice 6.0 I can confirm that the bug is correctly resolved. Thanks for the great work! Best regards.