Open jticket1024 opened 2 years ago
@jticket1024 Please set your log level to debug in general settings, open Python console with NVDA -Ctrl+_Z and paste the following exactly as shown:
import touchHandler
touchHandler.touchSupported(True)
After that upload your NVDA log here - be ware that at the debug level it contains all your key presses and all content spoken by NVDA so you may want to trim it.
@lukaszgo1 - This user is noting that NVDA's touch interaction is disabled on secure screens, such as the UAC dialog when running an application as administrator. I believe this is a feature of Windows, and there's nothing we can do about it.
You cannot open the python console on secure screens or capture debug logging without setting the serviceDebug parameter.
@jticket1024 I think we need some clarification here. I think what you mean is that touch no longer works if you set your UAC security level to 0 in Windows, so that elevating to admin no longer asks for permission before doing so. @seanbudd to my knowledge, touch interaction and audio ducking should function perfectly fine on secure screens, as NVDA is being run as system. If this is not the case, there is either an unknown bug in Windows or NVDA. Certainly touch interaction was expected to / must work on the Windows logon screen / User Account Control dialog.
Strangely, after setting the serviceDebug parameter, touch interaction works as expected in secure screens. This means it's an issue specifically in secure mode in secure screens.
Yes, when setting UAC to zero, touch interaction stops working everywhere.
@jticket1024 What about the log I asked you to collect in my last comment?
I've pasted that in, and here's what I get. I've only copied the relevant bit that happens after I run that. Nothing else about touch is said. When UAC is turned on and enabled, touch interaction works just fine. The only thing in the log when UAC is set to 0 is: DEBUGWARNING - touchHandler.touchSupported (09:15:03.994) - MainThread (5284): NVDA doesn't have UI Access so touch isn't supported.
I believe that systemUtils.hasUIAccess()
returns false if UAC is set to 0, because our process token does not seem to get TokenUIAccess if UAC is set to 0.
To fix this, we will need to find a way of detecting that we already have admin / a high integrity level and don't actually require UIAccess.
Steps to reproduce:
Disable UAC
Actual behavior:
Touch interaction support stops working.
Expected behavior:
Touch interaction should work either way.
System configuration
NVDA installed/portable/running from source:
Installed
NVDA version:
2021.3.5
Windows version:
Windows 11
Name and version of other software in use when reproducing the issue:
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
If NVDA add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes