Skip to content

Improve reliability in the Start Menu in Windows 11 24h2.#18228

Merged
seanbudd merged 3 commits into
nvaccess:masterfrom
jcsteh:start
Jun 10, 2025
Merged

Improve reliability in the Start Menu in Windows 11 24h2.#18228
seanbudd merged 3 commits into
nvaccess:masterfrom
jcsteh:start

Conversation

@jcsteh

@jcsteh jcsteh commented Jun 7, 2025

Copy link
Copy Markdown
Contributor

Link to issue number:

Fixes #17951.

Summary of the issue:

NVDA misbehaves in several ways in the Start Menu in Windows 11 24h2, including freezes.

Description of user facing changes:

In the Start Menu in Windows 11 24h2:

  • NVDA no longer sometimes incorrectly switches to browse mode soon after entering the Start Menu.
  • NVDA no longer sometimes freezes when navigating in browse mode.
  • Search suggestions are now reported reliably.

Description of developer facing changes:

None.

Description of development approach:

In the searchui app module:

  1. Calling SetFocus on UIA elements in the Edge WebView2 (Chromium) results document causes a freeze. Even though NVDA usually prefers IA2 for Chromium, it sometimes chooses UIA here; see the code comments for details. Therefore, explicitly ensure we never use UIA (i.e. always use IA2) for Start Menu Chromium objects.
  2. The Chromium document sometimes incorrectly fires a focus event even though it isn't actually focused. This causes browse mode to be activated when it shouldn't be. Override shouldAllowIAccessibleFocusEvent to block this.
  3. Because we're now using IA2 for the Chromium content, suggestions are now IA2. This breaks isDescendantOf on the UIA ancestor which is called to check whether a selected suggestion should be reported. Override isDescendantOf to compensate for this.

Testing strategy:

  1. Repeatedly tested that Start Menu search suggestions are consistently reported.
  2. Repeatedly tested that NVDA never switches to browse mode soon after opening the Start Menu.
  3. Repeatedly tested that NVDA doesn't freeze when tabbing around after switching to browse mode.
  4. A user confirmed the same results with a try build; see NVDA behaves erratically in the start menu #17951 (comment).

Known issues with pull request:

Browse mode will not work in the Start Menu when NVDA doesn't have the uiAccess privilege; e.g. portable copies. This is an unavoidable consequence of the security model employed by Windows for the Start Menu processes.

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@coderabbitai summary

@jcsteh jcsteh requested a review from a team as a code owner June 7, 2025 11:25
@jcsteh jcsteh requested a review from seanbudd June 7, 2025 11:25
@amirsol81

Copy link
Copy Markdown

@jcsteh Huge thanks for taking a stab at this one.

@seanbudd seanbudd added the conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. label Jun 10, 2025
Comment thread source/appModules/searchui.py Outdated
Comment thread source/appModules/searchui.py Outdated
Comment thread source/appModules/searchui.py
Comment thread source/appModules/searchui.py Outdated
Comment thread user_docs/en/changes.md Outdated
@seanbudd seanbudd merged commit 1b563fd into nvaccess:master Jun 10, 2025
14 of 15 checks passed
@github-actions github-actions Bot added this to the 2025.2 milestone Jun 10, 2025
@jcsteh jcsteh deleted the start branch May 25, 2026 04:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NVDA behaves erratically in the start menu

3 participants