Skip to content

Add support for loading app modules for apps with Edge WebView2 runtime as user interface #16705

@josephsl

Description

@josephsl

Introduction

With Microsoft Edge WebView2 runtime, apps can display their interfaces using web technologies. For NVDA users, this allows interacting with apps with familiar web navigation commands such as first letter navigation, elements list, browse mode find, among others. However, there might be apps that may require special handling such as using UI Automation, custom shortcuts provided by NVDA, fixing labels and other accessibility issues, among others. In some cases, defaulting to enabling browse mode may not be ideal, especially if it is desirable to use object traversal strategies to locate content.

Is your feature request related to a problem? Please describe.

To support interacting with apps that are not really web apps (at least in terms of their usage), adding support for WebView2 runtime executable is proposed. This involves adding an app module for msedgewebview2.exe and telling NVDA to load the default app module upon request. This alows custom app modules for apps employing Edge WebView2 runtime to be created and shipped either as part of NVDA or add-ons.

Describe the solution you'd like

Bring the same approach used in #4569 except:

  • The Edge WebView2 runtime may need to enable browse mode by default, so no dedicated app module class will be implemented. Instead, a module-level getattr will be employed.
  • Instead of parsing app model string, borrow from javaw app module approach of looking for parent processes.

Describe alternatives you've considered

None

Additional context

Initial implementation is part of Windows App Essentials add-on - in short, this joins a long list of features coming from this add-on to NVDA Core.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    p4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions