-
-
Notifications
You must be signed in to change notification settings - Fork 637
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare for selective UIA event registration by default #13297
Prepare for selective UIA event registration by default #13297
Conversation
There is a known issue that task manager is misbehaving when selective registration is on. I guess we'll have to take that for ok or fix it somehow. |
@LeonarddeR - you are referring to #11599, correct? I searched NVDA issues for "selective registration" @codeofdusk - do you mind investigating how this PR effects #11599, #11354, #11109, #8624? It looks like this will improve the latter two, but make behaviour worse for the first two. |
Hi, note that enabling selective UIA event registration will break Windows 10 emoji panel support (does not affect Windows 11) due to the fact that emoji panel interface is an overlay that does not take system focus at all. Thanks.
|
|
@codeofdusk - merging this is definitely blocked by the above, and if a fix for #11599 is possible. I suggest we try and find a mechanism to disable this for the Windows 10 emoji panel. Another path is to create a third state for the setting, "Windows 11 only" which only enables this on Windows 11. |
Actually, it looks like I can no longer reproduce #11599 at least on Nickel. I'll proceed with the config spec upgrade. |
Can we use the new feature flag approach while at it? |
I'm not sure. This seems closer to the "diff algorithm" or "Windows Console support" option (choice of two approaches or an "automatic" option that lets NVDA decide based on runtime environment) than an opt-in/opt-out feature with set NVDA developer default. |
df5c845
to
7ce1e20
Compare
See test results for failed build of commit f2926f5ac2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User Guide change looks good
This comment was marked as outdated.
This comment was marked as outdated.
@codeofdusk can you update the PR description? it appears out of date |
@seanbudd What do you mean? It looks up-to-date to me. |
source/config/profileUpgradeSteps.py
Outdated
""" | ||
Selective UIA registration check box has been replaced with event registration multi choice. | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does profile['UIA']['eventRegistration']
become as the result of upgrading when:
- the user has not changed the default value of
profile['UIA']['selectiveEventRegistration']
(e.g. it is set to False) - the user has explicitly set the value to False
I currently only understand the case where:
- the user has explicitly set the value to True
Could you add a summary of what happens for the 3 cases to the docstring?
Co-authored-by: Sean Budd <[email protected]>
@codeofdusk the summary of the issue reads as if the bugs are still an issue. Can you add that these bugs are fixed in Windows 11 SV2? |
@@ -101,7 +101,7 @@ def upgradeConfigFrom_5_to_6(profile: dict): | |||
profile['UIA']['allowInMSWord'] = AllowUiaInMSWord.ALWAYS.value | |||
|
|||
|
|||
def upgradeConfigFrom_6_to_7(profile: dict): | |||
def upgradeConfigFrom_6_to_7(profile: Dict[str, str]) -> None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason, this change prevents NVDA from starting on my system.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need to import Dict
from typing
@seanbudd For some reason, adding your type hints to the config upgrade step seems to prevent NVDA from starting on my machine. |
source/config/profileUpgradeSteps.py
Outdated
@@ -1,6 +1,6 @@ | |||
# -*- coding: UTF-8 -*- | |||
#A part of NonVisual Desktop Access (NVDA) | |||
#Copyright (C) 2016 NV Access Limited | |||
#Copyright (C) 2016–2022 NV Access Limited, Bill Dengler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To fix linting you will probably have to add a space after the #
for each line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @codeofdusk LGTM once these minor things get fixed!
Co-authored-by: Sean Budd <[email protected]>
@seanbudd Do you think it's alright to keep the config spec upgrade and behaviour change in one PR, and in the event of revert follow the process outlined in the known issues? Or should I separate them similar to UIA console? |
@codeofdusk - that would be ideal, but I believe there is less risk of reverting for this PR |
@seanbudd Done. I'll make a follow-up once this is merged. |
See test results for failed build of commit 5caf543b4c |
Link to issue number: Partial mitigation for #11002. Follow-up of #11214 and #13297. Summary of the issue: NVDA 2020.3 introduced support for selective registration for UIA events based on the currently-focused provider, but this is disabled by default due to bugs in the Windows 10 task manager and emoji panel. These bugs have been fixed in Windows 11 SV2. Description of how this pull request fixes the issue: By default, enable selective UIA event registration on Windows 11 Sun Valley 2 (22H2). Testing strategy: Enable by default in master snapshots to allow for wider testing.
…in the selective registration UI, for consistency with the config spec (#14107) Follow-up of #13297. Summary of the issue: In the advanced settings panel, the config options were referred to as "selectively" and "globally", but the config spec uses "selective" and "global", which makes more sense ("selective registration" vs "selectively registration"). Description of how this pull request fixes the issue: Update the UI. No other functional changes.
Link to issue number:
None
Summary of the issue:
We would like to switch to selective UIA event registration by default.
Description of how this pull request fixes the issue:
Convert the selective UIA registration option to a ternary setting and factor out logic to determine whether to register selectively into a new function.
Testing strategy:
N/A
Known issues with pull request:
None known
Change log entries:
Not user-facing
Code Review Checklist: