Bug 118418 - Should implemented scrollto, scrolltopoint, scrollsubstringto, scrollsubstringtopoint
Summary: Should implemented scrollto, scrolltopoint, scrollsubstringto, scrollsubstrin...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: sdk (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard: target:7.0.0
Keywords: accessibility
Depends on:
Blocks: a11y, Accessibility
  Show dependency treegraph
 
Reported: 2018-06-27 15:52 UTC by Samuel Thibault
Modified: 2023-05-20 15:42 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 Samuel Thibault 2018-06-27 15:52:59 UTC
Description:
For better accessibility, libreoffice should implement the scroll*to* accessibility calls, which allow the screen reader to fix what is shown, so that a blind user and a sighted user can understand each other when they are working together on a document.


Actual Results:
iaccessible2 and atspi scrollto calls have no effect

Expected Results:
iaccessible2 and atspi scrollto calls should scroll the document


Reproducible: Always


User Profile Reset: No



Additional Info:
More precisely, for instance winaccessibility/source/UAccCOM/MAccessible.cxx reads:

STDMETHODIMP CMAccessible:: scrollTo(enum IA2ScrollType)
{
    return E_NOTIMPL;
}

It should support the requested scroll instead :)
(and similar for scrollToPoint, and in winaccessibility/source/UAccCOM/AccTextBase.cxx for scrollSubstringTo and scrollSubstringToPoint)

The code mentioned above is for Windows, Linux' atspi2 has just gotten scrollTo and scrollToPoint in atk 2.29.1, and scrollSubstringTo and scrollSubstringToPoint will probably be added before 2.30 too.
Comment 2 Commit Notification 2020-05-07 10:11:59 UTC
Colomban Wendling committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/b46a0a7f9f88a0213b0a5ca2712b6eb93b74d088

tdf#118418 implement scrollSubstringTo() for gtk

It will be available in 7.0.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 3 cwendling 2020-05-07 13:23:46 UTC
https://git.libreoffice.org/core/commit/b46a0a7f9f88a0213b0a5ca2712b6eb93b74d088 implemented `scrollSubstringTo(*, *, SCROLL_ANYWHERE)` in a subset of LO.  This issue is however still relevant for the other queries and types of scrolling.
Comment 4 Commit Notification 2020-05-08 22:18:57 UTC
Samuel Thibault committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/6aef5a1e880262354cf739e461a12a0ef9573fef

tdf#118418 implement scrollSubstringTo() for Qt & windows

It will be available in 7.0.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Alex ARNAUD 2021-01-19 20:38:35 UTC
Is there any reason to keep this issue open?
Comment 6 Samuel Thibault 2021-01-19 20:40:53 UTC
The support is enough for most screen reader use, but it's far from complete.
Comment 7 Alex ARNAUD 2021-01-20 05:03:40 UTC
(In reply to Samuel Thibault from comment #6)
> The support is enough for most screen reader use, but it's far from complete.

Wouldn't be better to rename this one as initial support and report specifics issues if needed? Otherwise, I suspect this issue would stay opened forever.
Comment 8 Samuel Thibault 2021-02-03 00:33:03 UTC
> > The support is enough for most screen reader use, but it's far from complete.
> 
> Wouldn't be better to rename this one as initial support and report specifics issues if needed? Otherwise, I suspect this issue would stay opened forever.

Possibly, yes.
Comment 9 Samuel Thibault 2021-03-25 00:34:17 UTC
Hello,

Just to make it clear: I would say that before spending money on this issue, the real remaining needs should be assessed. Ideally we'd have scroll* support on all scrollable widgets of course, but in practice we don't really need it on all of them, far from it. In orca for instance, it is essentially used when requesting to speak a whole text. So it is really needed only on the document itself and in textview pieces of dialog boxes. The current support is already enough for various use cases, notably it works for the document. Before planning to invest money on completing the support for other widgets, I would say to first check which pieces of the interface the users are still lacking support for. Possibly the current support is already really fine, and it's better to prioritize other tasks. Restoring the accessibility tests comes to my mind as a high priority.

Samuel
Comment 10 Samuel Thibault 2021-07-22 09:00:41 UTC
Giving more technical details.

By "it's far from complete", I mean that the scrollSubstringTo method is usually not implemented by widgets of libreoffice, it's really implemented only in sw/source/core/access/accpara.cxx, and only for the SCROLL_ANYWHERE request case.

But in the current screen reader usage (show the progress of the speech synthesis for a long reading), the widgets for which scrollto* support is useful is the widgets which represent text inside a scrollable area.

The support in accpara is thus already covering the main usage: reading the text of the document. Possibly some other document elements would welcome adding the support, when for instance the document is composed of a series of images with descriptions, without any text in between. That's however quite low priority.

One thing I can think of that would be useful is for textviews in dialog boxes, for instance in lowriter's File->Properties, in the Description tab, the Comments textview. That widget shows up from times to times, e.g. in the spelling dialog box, in the Envelope dialog box, etc. Quite often the textview is tall enough for the text to fit and no scrolling is required, but adding the support there would probably be useful.