beta to rc#20032
Merged
Merged
Conversation
Fixes #19157 Summary of the issue: Unable to toggle AI Image Captioner while Screen Curtain is enabled Description of user facing changes: Able to toggle imageDesc while screen curtain is enabled
### Summary of the issue: Updates miscDeps to the latest commit ### Description of user facing changes: None ### Description of developer facing changes: Readme has been updated. ### Description of development approach: `cd miscDeps && git checkout master && git pull && cd .. && git add miscDeps && git commit` ### Testing strategy: None neded ### Known issues with pull request: None
### Summary of the issue: The Quick Start Guide (QSG) contains the following issues: * It mentions unassigned commands; unassigned commands should not be mentioned in the Quick Start Guide since: * if they are unassigned, they are probably not so common to deserve to be in the QSG * the QSG does not indicate how to assign a gesture to a command, which makes mentioning unassigned commands useless in this guide. * There is a paragraph on the synth settings ring commands in the QSG, but the user would not even know what it is. * Other unassigned commands are mentioned in the synth settings ring paragraph of the QSG. ### Description of user facing changes: * Removed unassigned "Report language" from the QSG. * Added an initial description of the synth setting ring at the top of its dedicated paragraph in the QSG. * Removed the mention of unassigned commands to jumpt to the first/last value in the synth ring commands since they are not assigned, for same reason as above. ### Description of developer facing changes: N/A ### Description of development approach: N/A ### Testing strategy: Check the generated User Guide. ### Known issues with pull request: None
Fixup of #19003 ### Summary of the issue: The license wasn't updated to GPL 2 or later in the user guide
Summary of the issue:
The userGuide.md contained multiple typos, grammar errors, and inconsistencies that needed correction to improve documentation quality.
Description of user facing changes:
Improved clarity and correctness of the NVDA User Guide through fixing:
5 spelling errors (itallic→italic, meanning→meaning, bloks→blocks, sortered→sorted, THE→The)
3 grammar errors (by assign→by assigning, wil→will, tree→three)
5 inconsistencies in terminology and capitalization (NvDA→NVDA)
1 duplicate key mapping in Eurobraille keyboard commands
Total: 19 documentation improvements. No functional changes.
Merge rc to beta
Merge beta to master
…ash three times in two minute. (#19175) Closes #19133 Summary of the issue: If NVDA crashes somehow on startup, the watchdog restarts NVDA. This issue limits how many times the watchdog will atttempt to recover from crashes by preventing the crash handler from booting if the application has been in a boot loop of 3 or more crashes in one minute. Description of user facing changes: When NVDA gets itself into a crash loop, which is very rare, it can crash many times very rapidly. So rapidly that a user's keyboard is effectively locked from use. This issue prevents NVDA from crashing on repeat. Since NVDA often boots at startup, failure to gracefully bail can lock the users computer up every time the user logs in. Description of developer facing changes: The watchdog prevents crash handling code from booting on the fourth crash, by simply recording the timestamp of the last 3 crashes in a text file along side the crash dmp file, and then using the timestamps in a rolling window to decide if NVDA should start the crash handler, or gracefully allow shutdown.
…19210) ### Summary of the issue: The User Guide section 13.1 (Remote Access, Getting started) notes the limitation for starting a new session in secure mode. This was not noted in the secure mode section and may be missed by people looking for information there. ### Description of user facing changes: Added a line to the list of bullet points in 18.1 "Secure mode disables" to note manually initiating a new remote access session.
Fix-up of #11311 ### Summary of the issue: In #11311, it was taken into account that older Excel comments were known as "notes" in newer interfaces, so NVDA's GUI and documentation has been updatedt to be consistent with newer versions. The "Comments" checkbox in the Document formatting settings panel has been updated to "Notes and comments" as part of this work. However, this checkbox does not control Excel's comments/notes reporting; it only controls whether comments in text, e.g. in Word, are reported. ### Description of user facing changes: This checkbox has been renamed back to "Comments" ### Description of developer facing changes: N/A ### Description of development approach: N/A ### Testing strategy: Manual check ### Known issues with pull request: One could argue that this checkbox should instead remain "Notes and comments" and should control Excel's Notes or comments. That's not my approach. And allowing to control "has notes" cell's property while "has formula" cannot be controlled would not be consistent.
<!-- Please read and fill in the following template, for an explanation of the sections see: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md Please also note that the NVDA project has a Citizen and Contributor Code of Conduct which can be found at https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project. This includes creating or commenting on issues and pull requests. Please initially open PRs as a draft. When you would like a review, mark the PR as "ready for review". See https://github.com/nvaccess/nvda/blob/master/.github/CONTRIBUTING.md. --> ### Link to issue number: Part of #18762 Split from #18419 ### Summary of the issue: We should explain our system tests to test against more applications. Starting with open source applications that are easily available within GitHub actions runners, ### Description of user facing changes: None ### Description of developer facing changes: None ### Description of development approach: Perform manual tests and implement equivalent system tests where possible ### Testing strategy: See changes ### Known issues with pull request: ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [x] Documentation: - Change log entry - User Documentation - Developer / Technical Documentation - Context sensitive help for GUI changes - [x] Testing: - Unit tests - System (end to end) tests - Manual testing - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sascha Cowley <16543535+SaschaCowley@users.noreply.github.com>
Starts #18502 ### Summary of the issue: Our system test bottle neck is chrome tests. There are too many chrome tests. They take up 20 min off time which could be parallelized down to 3-5min chunks ### Description of user facing changes: None ### Description of developer facing changes: Reduced PR times, better grouping logic when adding to chromeTests.robot. Symbols tests are now the longest tests (6min). That means 14min from builds is shaved off from this PR. Builds have gone from 40-45min to 30min on average. ### Description of development approach: Added tags to group chrome tests into sub groups. This is to establish grounds for a potential refactor in the future. Added timeout constraints to the 3 bottlenecks of the build: building NVDA source, building the launcher and system tests. This is so we can monitor and constrain build time lengths. With these constraints, we guarantee a 40min or faster build. ### Testing strategy: GitHub actions runners ### Known issues with pull request: This doesn't refactor the test files fully, just begins the proposal for logical groupings. Further work is suggested to refactor chromeTests.py/chromeTests.robot
### Summary of the issue: There is no highlighter on the recognition result. ### Description of user facing changes: There is a highlighter on the recognition result. ### Description of developer facing changes: Added `api.fakeNVDAObjectClasses` set and `api.isFakeNVDAObject` function to identify fake NVDAObject instances. ### Description of development approach: Do not use the display model to obtain the caret rectangle of fake NVDAObjects. ### Testing strategy: Manual testing: After pressing `NVDA+r` to recognize content, move the cursor and observe whether the yellow rectangle follows. ### Known issues with pull request: By default, the highlight rectangle currently covers words rather than individual characters. --------- Co-authored-by: Cyrille Bougot <cyrille.bougot2@laposte.net>
Summary of the issue: Update astral-sh/setup-uv from v6 to v7 to conveniently use the latest security fixes. Below is the release page for v7.1.3. Description of user facing changes: Routine update of CI/CD with no impact on users. Description of developer facing changes: Batch replaced uses: astral-sh/setup-uv@v6 with v7 in .github/workflows/testAndPublish.yml. Description of development approach: Batch replaced uses: astral-sh/setup-uv@v6 with v7 in .github/workflows/testAndPublish.yml to use the latest stable version.
<!-- Please read and fill in the following template, for an explanation of the sections see: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md Please also note that the NVDA project has a Citizen and Contributor Code of Conduct which can be found at https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project. This includes creating or commenting on issues and pull requests. Please initially open PRs as a draft. When you would like a review, mark the PR as "ready for review". See https://github.com/nvaccess/nvda/blob/master/.github/CONTRIBUTING.md. --> ### Link to issue number: Closes #17667. <!-- Use Closes/Fixes/Resolves #xxx to link this PR to the issue it is responding to. --> ### Summary of the issue: The MathCAT add-on is not currently included in the core of NVDA. Integrating MathCAT into NVDA will give users access to mathematical content out of the box. ### Description of user facing changes: The core functionality of the add-on will remain the same, but MathCAT will be included without needing to install it as an add-on (replacing mathPlayer). An additional panel will be added in the NVDA preferences dialog containing the configuration that is currently handled in MathCAT's add-on configuration dialog. Additionally, the user docs will be updated to reflect the replacement of mathPlayer with MathCAT. ### Description of developer facing changes: The code from the MathCAT add-on has been refactored and cleaned up to conform to NVDA's coding standards, and that code is included in the `mathPres/MathCAT` directory with this PR. Dependencies have been added as a Git submodule in `include/nvda-mathcat`. Before this PR is ready for review, changes will also be made to the way MathCAT is initialized (currently, it is only set up to be loaded as an add-on), and YAML configuration will be replaced with configobj. ### Description of development approach: Developments will proceed in the following steps: - Update the initialization of MathCAT so that it is loading and running correctly in its current form. - Include MathCAT configuration into the NVDA preferences dialog. - Replace YAML configuration with configobj. - Add unit and system tests. ### Testing strategy: The add-on code after refactoring has been tested only by loading it into NVDA and testing it functionally. Discussion of more unit and system tests is ongoing. ### Known issues with pull request: - Previously, `libmathcat_py.pyd` was included in that MathCAT directory. Now, it is located in `include/assets`, so it is not being imported correctly. This can be fixed by updating `pyproject.toml` with the new path. ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [x] 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 - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken. <!-- Please keep the following --> @coderabbitai summary --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Sean Budd <seanbudd123@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sean Budd <sean@nvaccess.org> Co-authored-by: WangFeng Huang <1398969445@qq.com> Co-authored-by: Quentin Christensen <quentin@nvaccess.org> Co-authored-by: Sascha Cowley <16543535+SaschaCowley@users.noreply.github.com>
Follow up to #19209 Summary of the issue: We added a 10min time limit to cap and measure builds. This was just too low, as a recent build narrowly timed out. A similar cap for the create launcher step also is timing out: https://github.com/nvaccess/nvda/actions/runs/19415041964 Description of user facing changes: none Description of developer facing changes: builds shouldnt timeout unexpectedly Description of development approach: increase build timeout to 15min and launcher timeout to 30min
It seems like GitHub changed the URL for CodeQL security analysis
Fixes #19152 Fixup for #18348, Supersedes #19203, #19171 Summary of the issue: In LibreOffice, it is not possible to use braille panning since #18348. Description of user facing changes: Panning works again in LibreOffice Description of developer facing changes: removed OffsetsTextInfo.allowMoveToOffsetPastEnd. Description of development approach: Rather than having one allowMoveToOffsetPastEnd class attribute, introduce a allowMoveToUnitOffsetPastEnd method that takes a unit.
…tup-python@v6 (#19229) Follow up #19219 #19224 Summary of the issue: Updated actions/setup-python@v5 to actions/setup-python@v6 Description of user facing changes: none ci-cd Update Description of developer facing changes: Updated the version of actions/setup-python in testAndPublish.yml to 6.x Description of development approach: Updated the version of actions/setup-python in testAndPublish.yml to 6.x
Summary of the issue: SCons was updated recently. This is a necessary step to build NVDA with Visual Studio 2026, which is fully supported. Description of user facing changes: None Description of developer facing changes: Support for building with VS2026 is now there, however note that VS2022 is still the standard. Description of development approach: Updated SCons
Summary of the issue: Updated actions/upload-artifact from v4 to v5. Updated actions/download-artifact from 4 to 6 Description of user facing changes: none Description of developer facing changes: Updated the stable versions of actions/download-artifact and actions/upload-artifact in the testAndPublish.yml file. Description of development approach: Description of development approach: Updated the stable versions of actions/download-artifact and actions/upload-artifact in the testAndPublish.yml file.
…19213) Link to issue number: Fixes #19214 Summary of the issue: When gestures include numpad operators (numpad plus, numpad minus, numpad multiply and numpad divide) and are defined with numlock on, they do not appear correctly in input gesture dialog, e.g. "num lock" instead of "num lock+numpad plus") Description of user facing changes: Gestures including numpad operators with num lock on are now correctly displayed in the input gesture dialog. Description of developer facing changes: N/A Description of development approach: In kayboard gestures identifiers, numlock can be considered a modifier or a main key name, depending on the situation: considered a modifier when combined with numpad operators, i.e. when numlock is on (but not currently physically pressed) and a numpad operator is presseed considered a main key name in all other other cases, i.e. when physically pressed (alone or with other modifiers such as control or shift) In KeyboardInputGesture.getDisplayTextForIdentifier sort key name with normal modifiers, then numlock and then main key name.
…ut defined speech styles (#19231) <!-- Please read and fill in the following template, for an explanation of the sections see: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md Please also note that the NVDA project has a Citizen and Contributor Code of Conduct which can be found at https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project. This includes creating or commenting on issues and pull requests. Please initially open PRs as a draft. When you would like a review, mark the PR as "ready for review". See https://github.com/nvaccess/nvda/blob/master/.github/CONTRIBUTING.md. --> ### Link to issue number: Split from #19227. ### Summary of the issue: On languages without defined speech styles, such as `nl`, the mathematics settings panel does not load. ### Description of how this pull request fixes the issue: Relocate ZIP file path calculation logic. ### Testing strategy: Verified that the mathematics settings panel opens when the nVDA language and voice are set to Dutch. ### Known issues with pull request: None known ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [n/a] Documentation: (out-of-scope, see #19227) - Change log entry - User Documentation - Developer / Technical Documentation - Context sensitive help for GUI changes - [x] Testing: - Unit tests - System (end to end) tests - Manual testing - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken.
<!-- Please read and fill in the following template, for an explanation of the sections see: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md Please also note that the NVDA project has a Citizen and Contributor Code of Conduct which can be found at https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project. This includes creating or commenting on issues and pull requests. Please initially open PRs as a draft. When you would like a review, mark the PR as "ready for review". See https://github.com/nvaccess/nvda/blob/master/.github/CONTRIBUTING.md. --> ### Link to issue number: Split from #19227. ### Summary of the issue: MathCAT is loaded from `sys.prefix`, which does not reliably point to the MathCAT directory on source copies. ### Description of how this pull request fixes the issue: The MathCAT path is calculated relative to `globalVars.appDir`. ### Testing strategy: Verified that MathCAT is usable on source copies. ### Known issues with pull request: None known ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [n/a] Documentation: (out-of-scope, see #19227) - Change log entry - User Documentation - Developer / Technical Documentation - Context sensitive help for GUI changes - [x] Testing: - Unit tests - System (end to end) tests - Manual testing - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken.
### Link to issue number: None ### Summary of the issue: Edited the MathCAT section of the user guide, both the overview and settings sections for clarity and organization. ### Description of user facing changes: User guide content edits. ### Description of developer facing changes: The following edits were made: * Typical use is now a level 4 heading * ETS acronym expanded (Educational Testing Service) ### Description of development approach: Edited and proofread to make sure content is clearer. ### Testing strategy: None (manual proofreading is recommended) ### Known issues with pull request: None ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [x] Documentation: - Change log entry - User Documentation - Developer / Technical Documentation - Context sensitive help for GUI changes - [x] Testing: - Unit tests - System (end to end) tests - Manual testing - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken. --------- Co-authored-by: Sean Budd <seanbudd123@gmail.com>
…hen running in secure mode (#19238) Fixes #19216 Follow-up #19175 ### Summary of the issue: NVDA was failing to start on secure screens, unless the serviceDebug global parameter was set. ### Description of user facing changes: NVDA works on secure desktops again. ### Description of developer facing changes: None ### Description of development approach: The issue was caused by `utils._crashHandler.CrashStats.crashStatsPath` assuming that `globalVars.appArgs.logFileName` would always represent a path. Notwithstanding this, it also wrote to disk, even when `NVDAState.shouldWriteToDisk` returned `False` (i.e. in scure mode or running from the launcher). 1. Added several defensive measures to the new `utils._crashHandler` module. 2. Changed `watchdog.initialize` to no longer add `utils._crashHandler.crashHandler` as an unhandled exception filter when running in secure mode. ### Testing strategy: Ran from source, and executed the following in the python console to ensure automatic restarts on crash still work as expected: ```py import ctypes;ctypes.windll.kernel32.DebugBreak() ``` Modified NVDA to allow the scratchpad in secure mode, built a self-signed launcher, and installed it. Hit `alt+control+delete`, and observed that NVDA worked as expected. Added the following global plugin to the scratchpad of the user and system config: ```py from globalPluginHandler import GlobalPlugin import ctypes from tones import beep from core import postNvdaStartup class GlobalPlugin(GlobalPlugin): def __init__(self): super().__init__() postNvdaStartup.register(self.crash) def crash(self): beep(500,100) ctypes.windll.kernel32.DebugBreak() ``` Restarted NVDA, and observed that it started, a tone was heard, and it crashed, and this only happened 4 times. Hit `alt+control+delete`, and observed that NVDA started, a tone was heard, NVDA crashed, and did not restart. ### Known issues with pull request: When NVDA crashes on the secure desktop, no feedback is given to the user. However, this is not new.
Fixes #10476 Partially addresses #16272 ### Summary of the issue: Currently, the Screen Curtain is configuration profile dependent. This can lead to situations in which it is unexpectedly deactivated by a config profile change. ### Description of user facing changes: 1. The Screen Curtain is no-longer config profile dependent. 2. Screen Curtain settings have been moved to anew "Privacy and Security" settings category. ### Description of developer facing changes: The `visionEnhancementProviders.screenCurtain` module has bee removed. ### Description of development approach: * Added a new `screenCurtain` subpackage, and migrated the existing `visionEnhancementProviders.screenCurtain` implementation. * The global object pattern was used, as it is a common pattern throughout the rest of NVDA's code. * The core Screen Curtain code is in `screenCurtain._screenCurtain`. The public API is accessible from `screenCurtan`, including the global `screenCurtain.screenCurtain` object. * Updated `core.main` and `core.resetConfiguration` to initializeand terminate screen curtain. * Updated the screen curtain toggle script to use the new implementation. * Updated the OCR script and screen curtain block action. * Re-implemented the screen curtain settings as regular settings in a new "Privacy and Security" panl in `gui.settingsDialogs`. * I decided to call this category "Privacy and Security" rather than "Security and Privacy" (as suggested in #16272), as we already have a "Speech" category, but no categories beginnin wit 'P'. * Also added an unassigned command to jump directly to the privacy and security settings. * Completely removed the `visionEnhancementProviders.screenCurtain` module, and updated the change log to reflect that previously deprecated symbols that had redirects in this module have been removed. * Bumped the config schema version, and added a profile upgrade step that moves the settings out of `vision` and into the root section. As the config keys are otherwise identical, this is all that is necessary. * Updated changed strings to use `pgettext` (category "screenCurtain") ### Testing strategy: Running from source: * Enabled tempory screen curtain with the gesture, with and without the warning enabled. Disabled. * Enabled screen curtain with the gesture, with and without the dialog enabled. Disabled. * Checked and uncheckd the screen curtain option in Privacy and Security settings, with and without the warning enabled. Also checked that unchecking the option to show a warning was reflected in the settings dialog when the warning dialog was shown from NVDA settings. * Enabled and disabled Screen Curtain with sounds turned on and off. * Created a configuration profile. Enabled screen curtain. Saved settings. Activated the profile. Deactivated screen curtain. Saved settings. Switched back to normal config. * Reset to saved configuration after enabling and disabling screen curtain, and reset configuration to factory defaults. * Ran from source on master, and changed screen curtain settings. Ran from source on this branch and ensured the old settings were reflected. Saved the config to disk and ensured that the settings were correctly persisted to `nvda.ini`. ### Known issues with pull request: None
Closes #19811 I am opening this PR as a follow-up to #19888 at the request of @seanbudd Summary of the issue: The automatic language option for MathCAT speech was confusing and didn't respond as expected to speech voice/synthesizer language changes. (from #19888) Description of user facing changes: Removes the "Automatic" option from MathCAT speech. The default is now English. (from #19888) Description of developer facing changes: None Description of development approach: Removed the _mathMl parameter from getLanguageToUse, the save/set/restore language pattern from convertSSMLTextForNVDA, and the "Auto" fallback in _createConfigForSpeechStyle. Added a config profile upgrade step to migrate language = Auto to en.
…on and before NVDA restart (#19901) Fixes #19900 ### Summary of the issue: After an add-on had been installed and the Store closed, the Store could not be reopened until NVDA was restarted. ### Description of user facing changes: The Add-on Store can now be reopened after an add-on has been installed, even before NVDA has been restarted. For add-ons pending install, the install date is not provided since the installation is completed after NVDA has restarted. Add-ons without install date are sorted after all other add-ons. ### Description of developer facing changes: `addonStore.models.addon._AddonManifestModel.installDate` may now be `None`. ### Description of development approach: * `_AddonManifestModel.installDate` now returns `None` if the add-on is not completely installed; take this into account when using this value. * If the `installDate` is `None`, use `datetime.max` to sort the add-on after all other ones. ### Testing strategy: Manual tests: * Tested #19900 STR and checked details field and install date column. * Sorted add-ons by install date column in the list. ### Known issues with pull request: Non --------- Co-authored-by: Cyrille Bougot <cyrille.bougot@laposte.net>
### Summary of the issue: The "Use native math speech in Word and Outlook" option is misleading, as it affects speech, braille and navigation. ### Description of user facing changes: The option has been renamed to "Use native math support in Word and Outlook", and moved to a new "Application support" section of the Math settings panel. The user guide has also been updated to clarify how the option works, and that this prevents using MathCAT in Word and Outlook altogether. ### Description of developer facing changes: None. ### Description of development approach: Created a new group in the math panel. Moved the checkbox creation after creation of that panel, and changed it to point to the new group. Rewrote the UG as appropriate. ### Testing strategy: Ran from source and checked that the settings panel looks correct. Built the user guide from source and checked the output. Ran from source, tabbed to the native word math checkbox and hit `F1` and checked that I was moved to the correct section of the user guide. ### Known issues with pull request: None
### Summary of the issue:
The user guide and changelog for NVDA 2026.1 contain various typos,
inconsistent capitalisation, broken anchors, incorrect key bindings, and
minor wording issues that should be resolved before the translation
freeze.
### Description of user facing changes:
- Fixed spelling and grammar throughout changes.md and userGuide.md
(e.g. "recognising" → "recognizing", "aides" → "aids", "inside of" →
"inside").
- Corrected inconsistent capitalisation (e.g. "unicode" → "Unicode",
"32bit" → "32-bit", "both" → "Both" at start of list items, consistent
"Enhanced mode" / "Simple mode" / "Character mode").
- Fixed incorrect key binding in the MathCAT navigation table: "Describe
placemarker" now correctly reads control+shift+1 through control+shift+0
instead of control+shift+1 through shift+0.
- Fixed a broken anchor {MathSpeechStyle} → {#MathSpeechStyle} and
corrected cross-reference anchors (#reportSpellingErrors →
#ReportSpellingErrors).
- Added missing heading anchor {#MathTypicalUse} to the "Typical Use"
section.
- Removed the obsolete "AsCompound" MathCAT chemistry option and renamed
"SpellOut" to "Spell it out" to match the current MathCAT UI.
- Improved clarity of wording in the spelling/grammar error reporting
settings, add-on copy to system configuration, and add-on store
changelog sections.
- Added missing issue reference (#18956) to a changelog entry.
- Fixed minor formatting issues (missing space before backtick, extra
space before comma).
### Description of developer facing changes:
None
### Description of development approach:
Instructed Claude Code to review `user_docs/en/changes.md` and
`user_docs/en/userGuide.md`. Manually actioned its suggestions.
### Testing strategy:
- Manual review of the rendered documentation for correctness and
consistency.
- Verified that all cross-reference anchors resolve correctly.
### Known issues with pull request:
None
---------
Co-authored-by: Cyrille Bougot <cyrille.bougot2@laposte.net>
Co-authored-by: Luke Davis <8139760+XLTechie@users.noreply.github.com>
This pull request updates translations to languages being tracked from Crowdin. Co-authored-by: GitHub Actions <github-actions@github.com>
…hile reading via speech or sounds (#19936) ### Summary of the issue: When NVDA is configured to report spelling or grammar errors with sounds or in braille, even when it's not configured to report them via speech output, if the cursor is moved out of an error, NVDA says "out of spelling (or grammar) error". ### Description of user facing changes: For NVDA 2026beta, NVDA no longer speak "out of error" if it's not configured to speak or play a sound for spelling or grammar errors. ### Description of developer facing changes: None. ### Description of development approach: A private function has been created to determine if out of errors should be reported. It returns True if NVDA is configured to report errors with speech or sounds. ### Testing strategy: Tested manually, enabling the reporting of errors via braille, speech, or sound outputs. ### Known issues with pull request: None.
Fixes #19952 ### Summary of the issue: The add-on store fails to load if invalid data is returned from the server. ### Description of user facing changes: Crash no-longer occurs. ### Description of developer facing changes: None. ### Description of development approach: When extracting scan results, catch `TypeError` and `IndexError` as well as `KeyError`. ### Testing strategy: Created a faulty cache: ``` jq ` '.data|=(fromjson|.[0].scanResults.virusTotal|=null|tostring)' ` _cachedCompatibleAddons.old.json > _cachedCompatibleAddons.json ``` Ran from source and checked that the add-on store opened. ### Known issues with pull request: In my testing, the invalid file also caused NVDA not to start, but the OP didn't report any such problem, so their problem may have been slightly different? Nevertheless this fix solves an actual bug.
…19953) ### Summary of the issue: The symbols artifact on CI doesn't include any of the dll/exe/pdb files from NVDA's lib directory. This makes it almost impossible to debug problems in NVDA C++ code unless you are using a local build. This is particularly problematic when trying to debug nvdaHelperRemote crashes experienced by users who aren't developers. ### Description of user facing changes: None. ### Description of developer facing changes: The symbols artifact on CI now includes dll/exe/pdb files from NVDA's lib directory. I don't think this needs a change log entry because it doesn't change anything in NVDA itself. ### Description of development approach: Once upon a time, NVDA had `lib\*.dll`, `lib64\*.dll`, etc. Some time ago, the directory structure changed to `lib\x64\*.dll`, `lib\x86\*.dll`, etc. In addition, arm64 and arm64ec libraries were added. However, the CI symbol store creation code was never updated accordingly. This PR updates the paths in the script. ### Testing strategy: Checked the log output from the `Run ci/scripts/buildSymbolStore.ps1` step on GitHub actions for this pull request. Verified that it includes all files. Also downloaded the artifact and checked that it contains all expected files. ### Known issues with pull request: None.
This pull request updates translations to languages being tracked from Crowdin. Co-authored-by: GitHub Actions <github-actions@github.com>
Fix-up of #17997 [Reported](https://groups.io/g/nvda-fr/topic/nvda_2026_1_beta_et_l_annonce/118894622) on French mailing list. ### Summary of the issue: In 2026.1beta versions, spelling errors are no longer reported in Word legacy. ### Description of user facing changes: Spelling errors can now again be reported in Word legacy. ### Description of developer facing changes: N/A ### Description of development approach: In #17997, the config key "reportSpellingErrors" has been modified to "reportSpellingErrors2" due to upgrade. But one use of this config key has been forgotten. It is being fixed here. ### Testing strategy: Manual tests with legacy and UIA Word. ### Known issues with pull request: N/A
Closes #19984 Summary of the issue: Once an add-on is installed, VirusTotal scan results would be cached in a different format than what was served by the server. This would cause issues in unpacking the scanned data. This would cause scan results to fail to be loaded for installed add-ons. Description of user facing changes: Viewing scan results for installed add-ons should be fixed Description of developer facing changes: None Description of development approach: Added a toDict method to the VirusTotalScanResults class in scanResults.py, enabling conversion of scan result objects to a dictionary format matching the original scan results structure. Updated the asdict method in AddonStoreModel to use toDict for VirusTotalScanResults fields, ensuring correct serialization.
This pull request updates translations to languages being tracked from Crowdin. Co-authored-by: GitHub Actions <github-actions@github.com>
This pull request updates translations to languages being tracked from Crowdin. Co-authored-by: GitHub Actions <github-actions@github.com>
…fied Chinese (#20019) PengKun, a contributor from the Chinese community, is planning extensive changes to this dictionary. The attached files contain detailed logs and the rationale for these changes, which are provided here for archival purposes.
This pull request updates translations to languages being tracked from Crowdin. --------- Co-authored-by: GitHub Actions <github-actions@github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.