Skip to content

Add touchscreen support to NVDA's Magnifier #19491

@SaschaCowley

Description

@SaschaCowley

Is your feature request related to a problem? Please describe

Users may want to use NVDA's new Magnifier functionality with a touch input. Currently, the magnifier doesn't add any touch input translation, so touch events reach the operating system as though magnification is disabled.

For instance, if the full screen magnifier is enabled and showing the upper right of the screen, tapping in the bottom left corner of the screen will still correspond to touching the start button (assuming that is where one's start button usually is).

Describe the solution you'd like

Transform pen and touch input coordinates from magnified to unmagnified coordinates so that they work as users are likely to expect.
The MagSetInputTransform function is almost certainly what is needed here.

Describe alternatives you've considered

When magnification is enabled, intercept all touch events and present a message to the user that pen and touch input are unavailable while magnifier is enabled.

Additional context

According to the docs, MagSetInputTransform requires UIAccess privilege. This means that we aren't going to be able to use it in portable, launcher, source or unsigned copies of NVDA. This may necessitate simply showing a dialog to the user that touch input won't work as expected when zoomed in if they have a touchscreen connected, as I think system-wide interception of touch events also requires UI Access.

Metadata

Metadata

Assignees

No one assigned

    Labels

    audience/low-visionPR or issue is relevant to sighted or low vision usersfeature/magnifierp3https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityrelease/blockingthis issue blocks the milestone releasetriagedHas been triaged, issue is waiting for implementation.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions