NVDAObjects.UIA: do not interrupt say all when handling high priority UIA notification#18218
Merged
SaschaCowley merged 6 commits intoJun 13, 2025
Conversation
…cation is received. Re nvaccess#17986. Observed in Microsoft Edge: when say all is active (activated manually or with say all on page load enabled), NVDA will interrupt a say all in progress if a high priority notification such as 'loading complete' is received. Therefore, only cancel speech if say all is inactive, otherwise change speech priority parameter of ui.message to 'NOW' (speak immediately) - handle the UIA notification and then continue with say all.
…vaccess#17986. This change can be both a bug fix and a change. However, as this is not a bug caused by NVDA per say, therefore add it under changes section.
…on event arguments.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Closes #17986
Summary of the issue:
While say all is in progress, NVDA interrupts speech while handling a high priority UIA notification. This was observed in Microsoft Edge where say all is active while notifications such as "loading complete" is announced.
Description of user facing changes:
In Microsoft Edge, NVDA will no longer interrupt say all when announcing notifications such as "loading complete".
Description of developer facing changes:
Changes to NVDAObjects.UIA's notification event handler:
Description of development approach:
First tested as part of Windows App Essentials add-on/global plugin portion, then ported to NVDA Core and tested manually (below).
Testing strategy:
Manual testing:
Before: NVDA interrupts speech when notifications such as "loading page/still loading/loading complete" are announced.
With the PR: NVDA will continue performing say all after announcing UIA notification display string.
Known issues with pull request:
When a page is refreshed and say all is initiated and notifications are reported, NVDA may play error tones (due to null pointer being passed into code injection routine). This does not impact say all.
Code Review Checklist:
@coderabbitai summary