Branch for 2022.1#13452
Merged
Merged
Conversation
…re focusable and gain focus (#13357) Fixes #13221 Summary of the issue: In the Microsoft Edge Downloads manager (CTRL+J), as well as in the channel and DM outputs of the Slack app, HTML lists and list items are used to display the items. These are made focusable via either aria-activedescendant, or the rowing tabIndex pattern. The reason is that for compatibility, these can be used to host rich content, such as whole sub documents or controls. Until now, NVDA would not automatically switch to focus mode when focus lands on such a focusable list item. Description of how this pull request fixes the issue: This PR adds a rule for enabling passthrough mode if a list item that is read-only, has state focused, and at the same time its paarent is of role list and is focusable.
Fixes #13311 Summary of the issue: NVDA causes a crash when interacting with 64-bit builds of Notepad+++ 8.3. This happens because Notepad++ developers decided to deviate from the official Scintilla interface (they character points are represented by longlong rather than long in 64-bit builds). Since this allowed them to introduce the support for much bigger files this change is going to stay and NVDA has to adapt (see explanations in notepad-plus-plus/notepad-plus-plus#11133). Description of how this pull request fixes the issue: For 64-bit builds of Notepad++ 8.3 and above longlong is used for representing characters points. Testing strategy: - Notepad++ 8.3 x64 no longer crashes and text can be read normally. - 32-bit build of the same version of NPP works as well as it used to before this change. - Older version of Notepad++ x64 works normally and long is used for characters points there. - Different editor (teXnicCenter) using Scintilla is not negatively affected. - The newly introduced appmodule can be imported by using from nvdaBuiltin.appModules import notepadPlusPlus in an add-on.
…creen (#13384) Fix-up of PR #13242 Originally reported by @Stefan-Kliesch-FHP in #13348 Summary of the issue: getStartOnLogonScreen can fail with UnboundLocalError when the autostart key does not exist. Description of how this pull request fixes the issue: If we failed to open autostart key we no longer try to access it.
…Word via UIA, using UIA remote ops (#13387) This reintroduces the commits in pr #13283 which had been reverted in pr #13350. However it also addresses build issues. Summary of the issue: PR #13283 introduced support for reporting line/column/section numbers in Microsoft word via UI Automation, by using the UI Automation Remote Operations Library. However, this PR had to be reverted in #13350 as 1. UIA would not initialize properly in binary builds due to a missing manifest file. (Improper initialization of UIA during NVDA start #13347) 2. NVDA failed to build on Visual Studio 2022. Specifically when building the Remote Ops library with msbuild, midl would fail with an error about a system environment variable being missing. 3. NVDA could no longer be built on Windows 7. (Impossible to build NVDA after introduction of UIA remote library #13346) Description of how this pull request fixes the issue: This PR reintroduces all of the original changes, but: • setup.py now includes *.manifest files in the lib directory. • NVDA again now requires Visual Studio 2019. However, builds will not fail if a newer version of Visual Studio (E.g. 2022) is installed along side 2019. this is managed by setting MSVC_VERSION in scons before it looks for Visual Studio, so that it specifically selects VS 2019 (VC 14.2). Although building on Windows 7 could not be fixed, the readme now notes that only building on Windows 10 and higher is supported.
versionInfo.copyrightYears has not yet been updated to include 2022 Description of how this pull request fixes the issue: versionInfo.copyrightYears is updated to include 2022
Initially changes for 2021.3.1 were delivered to beta, subsequently it was decided to avoid complications with translations, to make changes directly on RC. The changes were cherry picked from beta. There were then several more changes made squashed / merged to RC These changes need to be cherry picked back into the beta branch. This was done in #13185 Changes for 2021.3.3 were cherrypicked directly to rc. But because rc and beta/master have diverged, these changes need to be cherrypicked back to master and beta. An exchange of merging master and beta has already occurred since the last release. As a result, these changes need to be cherry-picked directly to master, to get eventually merged to beta. Description of how this pull request fixes the issue: Update the changes file from release-2021.3.3 No other introduced changes from 2021.3.2 and 2021.3.3 need to be cherry-picked back to master. This is because 2021.3.2 and 2021.3.3 was created from code existing on master.
… globalVars.appArgs in a boolean context (#13386) Fix-up of PR #13082 Summary of the issue: PR #13082 added fake implementation of globalVars.appArgs which is used in cases where command line arguments are not parsed. It introduced two mistakes however: The fake class was named DefautAppArgs (note the missing "l") NVDA's logHandler uses appArgs in a boolean context to check if log viewer should be opened, determine if log fragment can be marked for copy etc. The new class was always True in a boolean context. Description of how this pull request fixes the issue: The class is renamed to DefaultAppArgs. logHandler no longer checks boolean value of appArgs. This is safe since: Both logHandler.Logger.markFragmentStart and logHandler.Logger.getFragment are used only in NVDA and they are invoked by the user action (even before #13082 appArgs was always truthy in that context). The check for appArgs being falthy in logHandler.Logger._log introduced in 2827a34 can also be safely removed since even for NVDA_slave activateLogViewer is set to False (only two cases where it is set to True occur when user invokes log viewer via keyboard command. this check has been added not for any additional security but just to avoid AttributeError being raised when trying to access globalVars.appArgs.secure when logging from slave.
Fixes regression caused by #13364 Closes #13397 Summary of the issue: The version matching to apply the new NP++ 8.3+ behavior was incorrect, as it doesn't work for versions like 8.2.1 and 8.1.9.2. Description of how this pull request fixes the issue: Only match against the first character of the minor version. Testing strategy: Tested on version 8.1.9.2, 8.2.1, 8.3 and 8.3.1 of NP++
Remove spurious be.
Help investigate #13401 Summary: An unknown issue caused a system test failure. When investigating it wasn't clear whether the second speech sequence made it to the 'spySynthDriver'. This change adds further logging to the spy's implementation of synthDriver.speak
Summary of aria-details was not able to be reported in FireFox. Explanation: Firefox does not yet expose the IA2 attribute "details-roles", used as a proxy / optimization for fetching details relations. The absence of this prevented the details summary being fetched. Instead, just rely on fetching the details relation.
Background: Improved support for reporting details summary: #13106 Summary: Web authors would like to start using aria-details, however: - It is not enabled by default. - There is no default gesture to fetch the details. Information about longdesc: - The longdesc attribute is only valid on an img element. - longdesc does not seem to be exposed in Chrome / edge, it continues to work in Firefox. - longdesc is deprecated, mdn advises not using it and transitioning away from current uses. - longdesc has an incompatible UX with aria details. The longdesc attribute contains a URL, the browser exposes an action, when triggered the URL is opened in a new tab. In contrast, Aria details is expected to be read without leaving the page. - Anyone who still relies on longdesc support can assign an alternative gesture. Description of Change: - NVDA+d now runs aria-details summary script - Report 'has details' by default
…r of maximum concurrent jobs to speed up builds by default (#13371) Reverts #13226 Summary of the issue: While building NVDA with multiple jobs leads to faster build times, it also leads to scrambled output which can be quite annoying when debugging. Description of how this pull request fixes the issue: Disable multiple jobs by default but warn users to run with -jX to get a faster build if applicable.
Values in the State/Role enums are getting large, it is easy for a developer to accidentally duplicate a value. NVDA states were initially defined as powers of 2 so that the states property on NVDAObject could return multiple (bit flag) values within an integer. However, for a long time now, the states property returns a Python set. The values no longer have to set a unique bit. Also, now that Role/State constants are enums, we no longer depend on manually matching values printed in logging with the values in the file (because enums are named). Change: - Decorate Role/State enum classes with unique. - Prevent errors manually assigning a value by using auto.
Fixes #11568 Partial fix for #12920 Summary of the issue: Recent versions of Adobe Reader introduced a Protected Mode, where by the Adobe Acrobat process has less privileges and is sandboxed. This ensures that insecure PDFs do not have a chance to affect the rest of the Operating System. By default Adobe Reader is configured to enter its Protected mode on start-up, and to set the 'isAppContainer' attribute on its process token. There seems to be a bug however, either in Adobe Reader, the Windows OS, or NVDA (NV access and Adobe cannot be sure) that causes the Adobe Reader process to become unstable when NVDA tires to register IAccessible2. Specifically, the call to CoGetPSClsid seems to start making things unstable. The further call to CoRegisterPSClsid fails, and then eventually the process completely crashes randomly in places such as TSF initialization. The upshot is that If Adobe Reader is started when NVDA is running, many errors are written to NVDA's log, and Adobe Reader closes straight away. Description of how this pull request fixes the issue: NVDAHelper's IAccessible2 registration code now checks if the process token has the 'IsAppContainer' attribute, and of so refuses to install IAccessible2 support. Note that Adobe Reader itself does not require IAccessible2 to function. Also, the 'IsAppContainer' is only set on very heavily sandboxed sitations, and is not the same as the app container that is used for Windows Desktop Bridge apps. Thus, refusing to install IAccessible2 into processes with the 'IsAppContainer' attribute has no other known side affects.
…essageBoxActive (#13376) Relates to #13007, as the new design should be backwards compatible, we can implement the API changes as-is for 2022.1. Follow up to the API proposed in #12984 Summary of the issue: The API for gui.message had not yet been determined for 2022.1, as per #13007. As the future API is intended to be backwards compatible, this PR commits to the API proposed in #12984. Description of how this pull request fixes the issue: gui.IsInMessageBox was a boolean, this has been replaced by a function gui.message.isModalMessageBoxActive, which tracks if a messageBox is open in a safer manner. Changes logic gui/message.py to be safer with locking and handling errors.
State/Role mappings of IA to NVDA enums containined duplicates: - IAccessibleRolesToNVDARoles - IAccessibleStatesToNVDAStates
…e user guide to correct missing information (#13373) Addresses a concern raised in #13354 Summary of the issue: In this comment, @CyrilleB79 pointed out that the user guide does not indicate that screen layout is always used in Outlook, irrespective of the "Use screen layout" setting. It seems reasonable for the user to assume, since it isn't otherwise indicated, that turning off screen layout will be effective anywhere browse mode is used, when in fact this is not the case. Description of how this pull request fixes the issue: I added a note to the section in the user guide, explaining that this option is not applicable to Microsoft Office applications. While looking at the section, I thought that it didn't really explain well the difference between screen layout and not screen layout, and used terms like "fields" in a way that most users might not associate with the elements changed by the option. * Rewrote and expanded the Browse mode: "Use Screen Layout" section in the user guide. * The primary focus was to add a note explaining that the option is inapplicable for Microsoft Office apps. (Per comment on #13354) * Removed extraneous words ("content in", first sentence), and fixed plural-singular errors. * Generally expanded the section to better explain the option, and give an example.
Mistyped settingsID as setingsID on lines 157 and 158 in nvda\source\autoSettingsUtils\autoSettings.py Description of how this pull request fixes the issue: corrected, just added a letter 't'.
Summary of the issue: BrxCom wrapper is not compatible with Python 3 anymore and causes NVDA to crash. Furthermore BrxCom is deprecated and is no longer supported. Description of how this pull request fixes the issue: BrxCom support via wrapper dll removed from braille display driver.
…#13437) Microsoft Word 2016 exposes a rich UI Automation implementation. For some time now, users have been able to optionally turn this on with an advanced setting. NVDA's support for MS Word via UIA has major performance advantages over the older object model support, so NVDA should use the UIA support by default where available. However, as the UIA implementation improved throughout Office 2016's lifetime, we should only enable our support for recent builds of Office 2016, specifically for build 15000 and higher, and when only on Windows 11. This was previously tried in pr #12770 but reverted in pr #12989 The main argument for reverting was the lack of math support, and ability to report line column and section numbers. These have all been since addressed. Description of how this pull request fixes the issue: NVDA now uses UI Automation to access Microsoft Word document controls by default when on Windows 11, for Microsoft Word version 16.0.15000 and higher. The Use UI Automation to access Microsoft Word document controls when available checkbox has been replaced with a combo box with the following values: • Default (where suitable) • Only where necessary: where the Microsoft Word object model is not available at all • Where suitable: Windows 11 / Microsoft Word version 16.0.15000 or higher, or where the Microsoft Word object model is unavailable • Always: where ever UI automation is available in Microsoft word (no matter how complete). If the older checkbox was previously checked, the setting will be set to Always.
Fixes #13408 Summary of the issue: Liblouis 3.21.0 has been released. Description of how this pull request fixes the issue: Updates liblouis to 3.21.0 which mainly brings major updates for Hungarian and German. Changelog.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Qchristensen
approved these changes
Mar 10, 2022
Qchristensen
left a comment
Member
There was a problem hiding this comment.
All reads well, great work!
seanbudd
approved these changes
Mar 10, 2022
4 tasks
Contributor
Author
|
I've reviewed the change log via https://raw.githubusercontent.com/nvaccess/nvda/branchFor2022.1/user_docs/en/changes.t2t |
Contributor
|
@feerrenrut , this PR should be included in 2022.1 milestone, not 2022.2. Thanks. |
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.
Branch for 2022.1 release, using commit 80e47b5 from master.
Changes still intended for 2022.1 should be "stacked" against this branch
Todo:
git diff release-2021.3.3...branchFor2022.1 -- "*.t2t"or latest release section in file: https://raw.githubusercontent.com/nvaccess/nvda/branchFor2022.1/user_docs/en/changes.t2tMerge not squash