Skip to content

LibreOffice Writer: Statusline is not announced #11698

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
peterpacult opened this issue Sep 28, 2020 · 6 comments · Fixed by #14933
Closed

LibreOffice Writer: Statusline is not announced #11698

peterpacult opened this issue Sep 28, 2020 · 6 comments · Fixed by #14933

Comments

@peterpacult
Copy link

Steps to reproduce:

  1. Open Writer
  2. Request announcement of status line with screenreader

Actual behavior:

The screenreader announces "No informatiion in status line".

Expected behavior:

status line is announced

System configuration

NVDA installed/portable/running from source:

installed

NVDA version:

2020.2

Windows version:

Edition Windows 10 Home
Version 1909
Operating system build 18363.1016

Name and version of other software in use when reproducing the issue:

LibreOffice
Version: 7.0.0.3 (x64)
Build ID: 8061b3e9204bef6b321a21033174034a5e2ea88e
CPU-Threads: 4; BS: Windows 10.0 Build 18363; UI-Render: Skia/Vulkan; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded

Other information about your system:


Other questions

Does the issue still occur after restarting your computer?

Yes.

Have you tried any other versions of NVDA? If so, please report their behaviors.

No.

If addons are disabled, is your problem still occuring?

Not tested.

Did you try to run the COM registry fixing tool in NVDA menu / tools?

Not tested.

@feerrenrut feerrenrut changed the title Accessibility Statusline is not announced LibreOffice Writer: Statusline is not announced Sep 30, 2020
@peterpacult
Copy link
Author

The issue has also been reported to the Document Foundation; see https://bugs.documentfoundation.org/show_bug.cgi?id=137075

@Natomaspiper
Copy link

The problem now occurs in LibreOffice 7.5.3 on Windows 11 home system using NVDA 2023.1. the Windows restart, run NVDA com registration fixing tool, and start NVDA without add-ons were done and the problem was not fixed.

@XLTechie
Copy link
Collaborator

@michaelweghorn would you be able to lend a prospective on this?

michaelweghorn added a commit to michaelweghorn/nvda that referenced this issue May 18, 2023
 ### Link to issue number:

Fixes nvaccess#11698

 ### Summary of the issue:

Announcement of the status bar in LibreOffice (e.g. triggered
by NVDA+End) didn't work because the default implementations
do not work for the LibreOffice case.

 ### Description of user facing changes

Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice.

 ### Description of development approach

Override the default app module implementation to retrieve the status bar
and announce its text in the LibreOffice app module, since
the default implementations are not sufficient for the
LibreOffice case:

* To retrieve the status bar object, locate the descendant
  with the corresponding role, but only descend into children
  of role `ROOTPANE` and `WINDOW` for performance
  reasons.

* To generate text from the status bar object, retrieve the text
  of each status bar child using the IAccessibleText interface.
  (The default implementation in api.py only uses the object names
  and values, which are both empty.)

 ### Testing strategy:

1) start NVDA
2) start LibreOffice Writer
3) Press NVDA+End key to trigger announcement of status line
4) check that the visible content of the status bar is announced
   (e.g. something like "Page 1 of 1 5 words, 20 characters  Default
   Page Style English (United States) {en-US}       80%")
5) repeat the above steps, but use LibreOffice Calc, Draw and Impress
   instead of Writer (in step 2)

 ### Known issues with pull request:

none

 ### Change log entries:

Changes
`Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice. (nvaccess#11698)`
@michaelweghorn
Copy link
Contributor

@michaelweghorn would you be able to lend a prospective on this?

@XLTechie : Yes, pull request: #14933

@Natomaspiper
Copy link

Natomaspiper commented May 18, 2023 via email

@michaelweghorn
Copy link
Contributor

@Natomaspiper If I understand correctly, this is about a checkbox in the LibreOffice installer not being exposed by the screenreader, which is unrelated to the issue described here.

Let's please keep that separate from the issue here to keep focus, s.a. my comment in https://bugs.documentfoundation.org/show_bug.cgi?id=137075#c9 .

michaelweghorn added a commit to michaelweghorn/nvda that referenced this issue Jun 1, 2023
 ### Link to issue number:

Fixes nvaccess#11698

 ### Summary of the issue:

Announcement of the status bar in LibreOffice (e.g. triggered
by NVDA+End) didn't work because the default implementations
do not work for the LibreOffice case.

 ### Description of user facing changes

Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice.

 ### Description of development approach

Override the default app module implementation to retrieve the status bar
and announce its text in the LibreOffice app module, since
the default implementations are not sufficient for the
LibreOffice case:

* To retrieve the status bar object, locate the descendant
  with the corresponding role, but only descend into children
  of role `ROOTPANE` and `WINDOW` for performance
  reasons.

* To generate text from the status bar object, retrieve the text
  of each status bar child using the IAccessibleText interface.
  (The default implementation in api.py only uses the object names
  and values, which are both empty.)

 ### Testing strategy:

1) start NVDA
2) start LibreOffice Writer
3) Press NVDA+End key to trigger announcement of status line
4) check that the visible content of the status bar is announced
   (e.g. something like "Page 1 of 1 5 words, 20 characters  Default
   Page Style English (United States) {en-US}       80%")
5) repeat the above steps, but use LibreOffice Calc, Draw and Impress
   instead of Writer (in step 2)

 ### Known issues with pull request:

none

 ### Change log entries:

Changes
`Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice. (nvaccess#11698)`
michaelweghorn added a commit to michaelweghorn/nvda that referenced this issue Jun 2, 2023
 ### Link to issue number:

Fixes nvaccess#11698

 ### Summary of the issue:

Announcement of the status bar in LibreOffice (e.g. triggered
by NVDA+End) didn't work because the default implementations
do not work for the LibreOffice case.

 ### Description of user facing changes

Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice.

 ### Description of development approach

Override the default app module implementation to retrieve the status bar
and announce its text in the LibreOffice app module, since
the default implementations are not sufficient for the
LibreOffice case:

* To retrieve the status bar object, locate the descendant
  with the corresponding role, but only descend into children
  of role `ROOTPANE` and `WINDOW` for performance
  reasons.

* To generate text from the status bar object, retrieve the text
  of each status bar child using the IAccessibleText interface.
  (The default implementation in api.py only uses the object names
  and values, which are both empty.)

 ### Testing strategy:

1) start NVDA
2) start LibreOffice Writer
3) Press NVDA+End key to trigger announcement of status line
4) check that the visible content of the status bar is announced
   (e.g. something like "Page 1 of 1 5 words, 20 characters  Default
   Page Style English (United States) {en-US}       80%")
5) repeat the above steps, but use LibreOffice Calc, Draw and Impress
   instead of Writer (in step 2)

 ### Known issues with pull request:

none

 ### Change log entries:

Changes
`Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice. (nvaccess#11698)`
seanbudd pushed a commit that referenced this issue Jun 2, 2023
Fixes #11698

Summary of the issue:
Announcement of the status bar in LibreOffice (e.g. triggered by NVDA+End) didn't work because the default implementations do not work for the LibreOffice case.

Description of user facing changes
Announcement of the status bar (e.g. triggered
by NVDA+End) works for LibreOffice.

Description of development approach
Override the default app module implementation to retrieve the status bar and announce its text in the LibreOffice app module, since the default implementations are not sufficient for the LibreOffice case:

To retrieve the status bar object, locate the descendant with the corresponding role, but only descend into children of role ROOTPANE and WINDOW for performance reasons.

To generate text from the status bar object, retrieve the text of each status bar child using the IAccessibleText interface. (The default implementation in api.py only uses the object names and values, which are both empty.)
@nvaccessAuto nvaccessAuto added this to the 2023.2 milestone Jun 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants