Skip to content

Clarity improvement in magnifier naming#20281

Draft
Boumtchack wants to merge 13 commits into
nvaccess:betafrom
France-Travail:MagnifierNamingClarity
Draft

Clarity improvement in magnifier naming#20281
Boumtchack wants to merge 13 commits into
nvaccess:betafrom
France-Travail:MagnifierNamingClarity

Conversation

@Boumtchack

@Boumtchack Boumtchack commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Link to issue number:

Closes #20126

Summary of the issue:

At the moment, the magnifier module lacks clarity in naming, it uses several terms to talk about the same things and that can lead to confusions

Description of user facing changes:

Users will have a better and clearer desciption and settings of the magnifier

Description of developer facing changes:

Variables and naming will be more consistent and logical

Description of development approach:

Adapting code naming to the User guide terms

Testing strategy:

Known issues with pull request:

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@Boumtchack

Copy link
Copy Markdown
Contributor Author

@CyrilleB79 I started rewritting the user docs and I'll do the same in the settings when #19913 is closed.

@CyrilleB79 CyrilleB79 mentioned this pull request Jun 4, 2026
5 tasks
@Boumtchack Boumtchack marked this pull request as ready for review June 10, 2026 11:36
@Boumtchack Boumtchack requested review from a team as code owners June 10, 2026 11:36
@Boumtchack Boumtchack marked this pull request as draft June 10, 2026 11:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates the magnifier “follow focus” terminology to “tracking” across the codebase, user docs, and scripts, and renames the fullscreen mode action from “toggle” to “cycle” for clarity.

Changes:

  • Renamed MagnifierFollowFocusType to MagnifierFollowTrackingType and updated related call sites.
  • Updated user documentation to reflect the new “tracking” terminology and revised descriptions.
  • Renamed the fullscreen magnifier mode command from toggleFullscreenMode to cycleFullscreenMode.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
user_docs/en/userGuide.md Renames “focus tracking” language to “tracking” and adjusts magnifier documentation/anchors.
tests/unit/test_magnifier/test_focusManager.py Updates unit tests to use the renamed follow/tracking enum.
source/gui/settingsDialogs.py Renames magnifier UI “Focus” group to “Tracking” and updates follow checkbox plumbing; also changes review cursor config key usage.
source/globalCommands.py Updates scripts to use the renamed enum and cycles fullscreen mode via the renamed command.
source/_magnifier/utils/types.py Renames the follow enum type and updates translation contexts/labels.
source/_magnifier/utils/focusManager.py Migrates focus manager to the renamed tracking enum type.
source/_magnifier/config.py Updates follow-state config mapping and public API parameter naming to “tracking”.
source/_magnifier/commands.py Updates toggle-follow API to accept tracking type and renames fullscreen mode function to “cycle”.

Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread source/gui/settingsDialogs.py Outdated
Comment thread source/gui/settingsDialogs.py Outdated
Comment thread source/gui/settingsDialogs.py Outdated
Comment thread source/_magnifier/config.py Outdated
Comment thread source/_magnifier/config.py Outdated
Comment thread source/_magnifier/utils/types.py
Comment thread source/globalCommands.py Outdated
@CyrilleB79

Copy link
Copy Markdown
Contributor

FYI, I have made modifications in #20261 which update UI strings and even more sometimes. These may conflict with this PR, sorry (especially regarding "follow mode" / "tracking type").

Comment thread source/gui/settingsDialogs.py Outdated
@Boumtchack Boumtchack marked this pull request as ready for review June 10, 2026 13:49
@CyrilleB79

Copy link
Copy Markdown
Contributor

Also are we sure that "tracking mode" (previously "focus mode" / "full-screen mode") only applies to full-screen? Couldn't a docked mode user choose between "center" and "Border"? This PR is probably not the place to change that, but at least keep it in mind when/if changing variable/options names to avoid "full-screen" if the option may be moved in the future.

And another question:
"Center" / "Border" are names while "Relative" is an adjective. This makes the GUI reading a bit strange. Of course, we understand that they all are tracking modes names in any case. But I wonder if we cannot find better names. I have no ideal solution though.
We could change "to Keep centered on the screen" and "Keep within the borders of the screen" as Windows Magnifier uses; but I have no idea how "Relative" would be renamed in this case...

@Boumtchack Boumtchack marked this pull request as draft June 10, 2026 14:23
@Boumtchack

Boumtchack commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

FYI, I have made modifications in #20261 which update UI strings and even more sometimes. These may conflict with this PR, sorry (especially regarding "follow mode" / "tracking type").

Yes I will wait for your modification, I reverted to draft.

Also are we sure that "tracking mode" (previously "focus mode" / "full-screen mode") only applies to full-screen? Couldn't a docked mode user choose between "center" and "Border"? This PR is probably not the place to change that, but at least keep it in mind when/if changing variable/options names to avoid "full-screen" if the option may be moved in the future.

for now it's a fullscreen thing, because It's a fullscreen thing for Windows Magnifier, but nothing is fixed and this could be applied to other types of view, I think we could keep it as it is for know and change it if we want to add this to other modes, like spotlight (wich would be change to overview)

And another question:
"Center" / "Border" are names while "Relative" is an adjective. This makes the GUI reading a bit strange. Of course, we understand that they all are tracking modes names in any case. But I wonder if we cannot find better names. I have no ideal solution though.
We could change "to Keep centered on the screen" and "Keep within the borders of the screen" as Windows Magnifier uses; but I have no idea how "Relative" would be renamed in this case...

sometimes I feel like removing relatives would just save us some times, ahah

@Boumtchack Boumtchack marked this pull request as ready for review June 15, 2026 13:37
Comment thread source/_magnifier/utils/types.py Outdated
Co-authored-by: Cyrille Bougot <cyrille.bougot2@laposte.net>
Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/gui/settingsDialogs.py Outdated
Comment thread user_docs/en/userGuide.md Outdated

@CyrilleB79 CyrilleB79 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Partial review.
I've not had time to give all feedback or provide more suggestions.

Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/_magnifier/commands.py
Comment thread source/_magnifier/commands.py
Comment thread source/_magnifier/commands.py
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As explained in the initial issue, "Relative" should be explained without referring to Windows Magnifier.

Since you indicate the goal of each mode:
I think that Relative mode is useful if one wants to figure where the tracked element / the zoomed area is located with respect to the whole screen.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought I had changed it, my bad

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought I had changed it, my bad

Indeed, you had. But it has been lost somewhere, maybe while merging latest changes in beta.
Let's hope you have not lost other parts of your work.

@CyrilleB79

Copy link
Copy Markdown
Contributor

Also, it may be interesting to rename "focus manager" to "tracking manager" (file name, class, etc.)

@Boumtchack

Copy link
Copy Markdown
Contributor Author

should I rename the "follow" functions to "tracking" as well? like toggleAllFollow() and toggleFollow()

@seanbudd seanbudd added this to the 2026.2 milestone Jun 17, 2026
@seanbudd

Copy link
Copy Markdown
Member

This is way too much unnecessary code churn for beta. Can we please avoid any large code changes and instead only keep updating user facing strings and other necessary beta changes?

@seanbudd seanbudd marked this pull request as draft June 17, 2026 02:10
@Boumtchack

Copy link
Copy Markdown
Contributor Author

well I'm not sure this pr really is needed for the beta as the goal was to rename variables and not so much a userchange issue, I think @CyrilleB79 already covered a lot of this in #20261.

Maybe I there's some changes that can be made to userSettings and Userguide, but the main goal of this pr was to rename all functions for developers more than users

fullscreenModeLabelText = _("Focus &mode:")
fullscreenModeLabelText = _("Tracking &mode:")
fullscreenModeChoices = [mode.displayString for mode in FullScreenMode] if FullScreenMode else []
self.fullscreenModeList = fullscreenGroup.addLabeledControl(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rename this one since it is part of the (public) API:

Suggested change
self.fullscreenModeList = fullscreenGroup.addLabeledControl(
self.trackingModeList = fullscreenGroup.addLabeledControl(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants