Skip to content

InvisibleMessage: announcements are dropped by VoiceOver while a modal popup is open #13613

@Lukas742

Description

@Lukas742

Bug Description

InvisibleMessage.announce() is not announced by VoiceOver while a modal popup (e.g. Dialog, <dialog> opened via showModal()) is open.

The same call works correctly:

  • when no modal is open, or
  • when the live region is rendered inside the modal subtree.

So the root cause is the location of the framework-managed live regions, not the announce mechanism itself.

Affected Component

InvisibleMessage

Expected Behaviour

announce(message, mode) should be audible to VoiceOver regardless of whether a modal popup is currently open.

Isolated Example

https://stackblitz.com/edit/github-8l5ycfji?file=package.json,index.html,main.js

Steps to Reproduce

The AI generated example contains three buttons, each emitting a varying counter message so VO's identical-text de-duplication doesn't interfere:

  1. Announce — no dialog open (control) — calls announce(). -> Works.
  2. Announce — span lives in body, outside the dialog — calls announce() while a native aria-modal <dialog> is open. -> Silent under VoiceOver.
  3. Announce — span lives inside the dialog — writes to a live region rendered as a child of the open <dialog>. -> Works.

Buttons 1 and 2 hit the same SAP singleton; only the modal-open context differs. Button 3 isolates the fix: a live region inside the modal subtree is announced normally.

  1. Open the StackBlitz example on MacOS.
  2. Turn on VoiceOver.
  3. Click button 1 several times → VO speaks "1 results available", "2 results available", ...
  4. Click "Open modal".
  5. Click button 2 several times → VO is silent, although the on-screen counter increments and the textContent of the announcement span is updated.
  6. Click button 3 several times → VO speaks "1 results available", "2 results available", ...

Log Output, Stack Trace or Screenshots

No response

Priority

None

UI5 Web Components Version

2.22.0

Browser

Chrome

Operating System

MacOS

Additional Context

No response

Organization

No response

Declaration

  • I’m not disclosing any internal or sensitive information.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

Status
New Issues

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions