Bug 149488 - Slide content not announced by screen reader in Impress presentation mode
Summary: Slide content not announced by screen reader in Impress presentation mode
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
(earliest affected) release
Hardware: All All
: medium normal
Assignee: Not Assigned
Keywords: accessibility
: 138664 (view as bug list)
Depends on:
Blocks: a11y, Accessibility Slide-Show
  Show dependency treegraph
Reported: 2022-06-08 09:04 UTC by Michael Weghorn
Modified: 2023-09-26 07:35 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:

Sample presentation (22.90 KB, application/vnd.oasis.opendocument.presentation)
2022-06-08 09:04 UTC, Michael Weghorn

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Weghorn 2022-06-08 09:04:58 UTC
Created attachment 180631 [details]
Sample presentation

When using presentation mode in Impress, the slide content is not accessible: It is not announced and there seems to be no way to navigate through it to have it announced.

See this email on the accessibility mailing list, where the issue was reported first: https://listarchives.libreoffice.org/global/accessibility/msg01005.html 

Steps to reproduce:

0) have a single screen setup, so that presenter console is not used (but should also have a decent way to do this with presenter console active, s.a. "Further notes" below)
1) start the NVDA screen reader on Windows
2) open attached sample presentation
3) switch to presentation mode, e.g. by pressing F5
4) switch to the 2nd slide by pressing "arrow right" key
5) try to navigate through the slide content to have it announced

Actual behaviour:

* in step 3: Screen reader announces that it presents the presentation, but just gives the name of the presentation
* in step 4: Screen reader doesn't announce anything
* in step 5: There doesn't seem to be a way to navigate through the slide and have its content announced. (At least I didn't find any.)

Expected behaviour:
It should be possible to have the slide content announced by the screen reader.

In a quick test with MS PowerPoint (in a single screen setup, dual screen is behaving differently):
* in step 3, NVDA announces: "Slide show, slide 1", then reads out the full slide content
* in step 4, likewise, just for the second slide
* using the arrow keys navigates within the slide, e.g. when pressing the "up" or "down" keys, it moves down/up a bullet point and announces the text for the newly focused item
* moving between slides happens using the space key (one slide forward) and the backspace key (one slide back), as the arrow keys are used for navigation within the slide content when the screen reader is active (s. above)

Further notes:
* The is similar with Orca on Linux. (It announces "Content placeholder 2 panel" when switching to second slide, though.)
* When using a dual screen setup and presenter console is active, at least "Current Slide, Slide 1 of N", "Current Slide, Slide 2 of N",... is announced, but I also didn't see a way to have the actual slide content announced or navigate through it, so that also looks like it needs to be improved. 

Version: (x64) / LibreOffice Community
Build ID: d1d0ea68f081ee2800a922cac8f79445e4603348
CPU threads: 4; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: threaded

Version: / LibreOffice Community
Build ID: 30(Build:2)
CPU threads: 12; OS: Linux 5.17; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-GB
Debian package version: 1:7.3.4~rc2-1
Calc: threaded
Comment 1 Michael Weghorn 2022-06-09 06:44:13 UTC
Valueable input from Marco Zehe on the a11y mailing list [1]:

"Correct, in PowerPoint, when a presentation is started, both NVDA and JAWS, and presumably at some 
point, Narrator, too, will grab the slide contents and present it slide by slide like a web page. 
JAWS even annotates links, tables, lists, etc., in a very rich way. NVDA, to my knowledge, doesn't 
do that yet.

In MS Office, screen readers have largely switched to using UI Automation (UIA) for access to all 
things documents and UI. This is primarily because of Narrator, which doesn't support anything 
other than UIA (MSAA and IA2 are only supported by way of an IA2 to UIA bridge, which is slow and 
unreliable). As a consequence, Microsoft never got on the IAccessible2 bandwaggon, but has pushed 
the UIA implementation in the Chromium project so they can stop using the IAccessible2ToUIA Bridge 
for Narrator's access to web content. There were even plans and experiments to switch Firefox over 
to UIA when I was still working at Mozilla. But since I am no longer involved there, I don't know 
if this is still on the table for the time after they finish the "Cache The World" project.

So, in the long term, and as resources permit, the more future-proof way forward for LibreOffice on 
Windows might be to switch over to an UIA implementation as well. But even without that, there 
would need to be a concerted effort between the Impress and screen reader teams, like NVDA, to make 
NVDA realize that it is in a slide show in presentation mode, and gain all the access to the slide 
contents like it were a web page or similar. That cannot be achieved by one party alone I think. 
And getting Vispero on board for JAWS support is an even bigger fish to fry."

[1] https://listarchives.libreoffice.org/global/accessibility/msg01007.html
Comment 2 Stéphane Guillou (stragu) 2022-12-15 16:12:47 UTC
*** Bug 138664 has been marked as a duplicate of this bug. ***
Comment 3 Stéphane Guillou (stragu) 2022-12-15 16:21:26 UTC
Already in:

Build ID: 2196df99b074d8a661f4036fca8fa0cbfa33a497
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3; 
Locale: en-AU (en_AU.UTF-8); UI-Language: en-US
Calc: threaded

Still the case in a master build from today:

Version: (X86_64) / LibreOffice Community
Build ID: 28ff4647e9dac8eebe3a169e828bacc8dc78e363
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded