Bug 158209 - Writer Agenda Wizard Name and Location fields should have a text/input role and implement the accessible text interface
Summary: Writer Agenda Wizard Name and Location fields should have a text/input role a...
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.6.2.1 release
Hardware: All Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: a11y-Linux
  Show dependency treegraph
 
Reported: 2023-11-14 11:43 UTC by Joanmarie Diggs
Modified: 2023-11-14 12:52 UTC (History)
1 user (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 Joanmarie Diggs 2023-11-14 11:43:07 UTC
Description:
The Name and Location fields are not accessible to Orca users because they have the role of scroll pane and do not implement accessible text. As a result, Orca doesn't think these are text fields, and even if it did, it cannot get the contents, present caret-navigation results, etc.

Steps to Reproduce:
1. Launch the Agenda Wizard
2. Put some text in the Name field
3. Launch Accerciser and examine the inputs displayed

Actual Results:
Date and Time have the text role and implement accessible text.

Name and Location have the scroll pane role and don't implement accessible text.

Expected Results:
All inputs would have the text role and implement accessible text.


Reproducible: Always


User Profile Reset: No

Additional Info:
Version: 7.6.2.1 (X86_64)
Build ID: 60(Build:1)
CPU threads: 48; OS: Linux 6.5; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 1 Michael Weghorn 2023-11-14 12:52:14 UTC
Thanks for the report.

I can reproduce with

Version: 7.5.8.2 (X86_64) / LibreOffice Community
Build ID: 50(Build:2)
CPU threads: 12; OS: Linux 6.5; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-GB
Debian package version: 4:7.5.8-1
Calc: threaded

but no longer with the current development version

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 738e342f3e68020bb84b45db1e68b3efd0057a12
CPU threads: 12; OS: Linux 6.5; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded

Most likely fixed by the following commit:
https://git.libreoffice.org/core/commit/a766f7555c55c73e2dfd167e66f1bf32c75de6df

If you want to retest with a current development version, daily builds are available here:
https://dev-builds.libreoffice.org/daily/master/current.html

Some additional notes, e.g. how to extract without having to install the packages:
https://wiki.documentfoundation.org/Installing_in_parallel

commit a766f7555c55c73e2dfd167e66f1bf32c75de6df
Author: Michael Weghorn
Date:   Fri Sep 1 10:59:31 2023 +0200

    tdf#104833 a11y: Use VCLXAccessibleEdit for VCLXMultiLineEdit
    
    Instead of the generic `VCLXAccessibleComponent`,
    use `VCLXAccessibleEdit` as a11y class for
    `VCLXMultiLineEdit` (the component interface
    class for MultiLineEdit) as well, not just for `VCLXEdit`.
    
    With the preparatory changes from
    
        Change-Id I8218db61feb07605f6ea5309f26eebd38312458a
        tdf#104833 a11y: Don't use VCLXEdit in VCLXAccessibleEdit
    
    in place, it behaves as expected when interacting
    with the multi line edit from the sample dialog in
    attachment 189287 [details] in tdf#104833 using Accerciser and
    the qt6 or gtk3 VCL plugin (and the text can also be
    edited when removing the readonly flag from the control)
    or the update dialog (which uses UNO controls,
    `UnoControlEditModel` for the panes that were not
    announced, s. extensions/source/update/check/updatehdl.cxx ).
    
    In particular, the a11y text interface is supported by
    the multi line edit on the a11y layer, which makes
    Orca with the gtk3 VCL plugin announce the text content
    when the control gets focused.
    
    NVDA on Windows still announces "Checking..." instead
    of using the actual text that would be retrievable via
    the IAccessibleText interface now. This is probably
    because "Checking..." is the (outdated) accessible name,
    as can be seen by interacting with the object in NVDA's
    Python console:
    
        >>> focus.name
        'Checking...'
        >>> txt = focus.IAccessibleTextObject
        >>> txt.text(0, txt.nCharacters)
        'LibreOfficeDev 24.2 is up to date.'
    
    For both, gtk3 and qt6, the a11y object does have the
    new text as a11y name as well, as can be verified in
    Accerciser:
    
        In [10]: acc.name
        Out[10]: 'LibreOfficeDev 24.2 is up to date.'
        In [11]: txt = acc.queryText()
        In [12]: txt.getTextAtOffset(0,3)
        Out[12]: ('LibreOfficeDev 24.2 is up to date.', 0, 34)
    
    Change-Id: Id80e191cdd5342b3215fdb9d2ad3847470366337
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156402
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn