Re: backing up NVDA settings



As for profiles comment, consider the following scenario:

Imagine a user creates two configuration profiles: a manual profile, and an app-specific profile. With this set up, three profiles will be used: normal configuration, manual profile, and app-specific profile. Now suppose a feature to notify users about unsaved settings is implemented.

Now suppose this user activates the manual profile, called "profile 1". Then the user switches to the app-specific profile for an app, say Windows Terminal because the user needs to read terminal output, which takes place as soon as system focus moves to Windows Terminal window. now suppose the user opens object presentation settings panel from Windows Terminal window and tells NVDA to not announce object descriptions (by default, this setting is on).

Scenario 1: after changing settings, user exits NVDA while focused on Windows Terminal. NVDA says the current profile is not saved and offers to save changes.

Scenario 2: after changing settings, user moves to a different app and exits NVDA. NVDA will prompt to save settings.

Scenario 3: after changing settings, not only the user moves to a different app, but deactivates profile 1, the manual configuration profile, and then exits NVDA.

Scenario 4: after changing settings, not only the user moves to a different app and deactivates manual profile, the user creates a new profile and activates it. Then the user changes Windows OCR language and does not save settings, then exits NVDA.

Think carefully:

  • Scenario 1 is straightforward - at least the user thinks NVDA is presenting config save dialog while "focused" on Windows Terminal when in fact Windows Terminal profile is deactivated. Why? Because exit dialog is part of NVDA itself, not Windows Terminal, therefore the app is different and the Windows Terminal profile is deactivated.
  • Scenario 2 is a bit easier to understand on the surface but may confuse users without specifying exactly which profile is not saved.
  • Scenario 3 is similar to scenario 2 but with an important caveat: what if the user changes something from manual profile without saving it? If the setting is not changed, NVDA would have an easier time because only one profile needs to be saved. But if you do not save settings in more than one profile, then NVDA must present settings for multiple profiles.
  • Scenario 4 is perhaps the most complicated set up and demonstrates the question raised from scenario 3.

These complications arise due to how configuration profiles are organized and handled from NVDA, something I hope to write about when given a chance to do so. But suffice to say that configuration profiles handling uses at least three components: configuration maps, settings scope, and profile switch detection.



Join to automatically receive all group messages.