Branch for 2022.4#14173
Merged
Merged
Conversation
Added a link to the "What is NVDA" video from YouTube to help explain the general features. Co-authored-by: Sean Budd <sean@nvaccess.org>
Merge beta to master
Merge beta to master
) Partially closes #13845 Windows 10 part of #13867 Summary of the issue: Recognize Windows 10 build 19045 as Version 22H2. Description of user facing changes None Description of development approach Tested through Windows Insider Program - added Windows 10 build 19045 metadata. Testing strategy: Manual testing: instal Windows 10 build 19045 release preview build to make sure it is recognized as 22H2 by NVDA.
#13836 partial fix. Summary of the issue: The group box containing radio buttons is not correctly identified in applications using the (java Access Bridge. This is due to a bug in the Java runtime. Most roles have their identifier string converted to something more readable through a resource bundle, however "groupbox" is not in the accessibility resource bundle, so the key "groupbox" is used. NVDA was previously expecting the groupbox role to be presented as "group box", which would be expected if it had been included in the accessibility resource bundle. AccessibleRole source code: https://github.com/openjdk/jdk17u/blob/master/src/java.desktop/share/classes/javax/accessibility/AccessibleRole.java Accessibility resource bundle: https://github.com/openjdk/jdk17u/blob/master/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility.properties Description of user facing changes NVDA previously was not identifying the group box for radio buttons in an application using Java Access Bridge. This change correctly maps the role exposed by Java Access Bridge to the grouping state. Description of development approach Comparing roles expected in NVDAobjects/JAB/init.py and those included in the accessibility resource bundle file and then the key used in the AccessibleRole class.
…upport (#13911) Fixes #12469 Summary of the issue: Winget is the new package manager in the most recent versions of Windows 10 and 11. It allows automatic updating via the command line. However, Winget threats Alpha versions of NVDA older than any released version. This means that, when an Alpha version for NVDA 2022.3 is installed, Winget will yet threat NVDA 2022.1 as an upgrade. See microsoft/winget-cli#1209 (comment) for more information about version parsing in Winget. In short, our versioning scheme for alpha versions (e.g. alpha-25875,d6a193ae) is considered pretty exotic. I proposed three possible solutions in #12469 (comment). Option 3 is not possible with winget, see microsoft/winget-cli#1209 (comment). Therefore, this pr chooses option 1, but it extends on that (see below) Description of user facing changes In add/remove programs: Old situation: DisplayName: NVDA DisplayVersion: alpha-25875,d6a193ae New situation: DisplayName: NVDA alpha-25875,d6a193ae DisplayVersion: '2022.3.0.25875' In about window: Old situation: Version: alpha-25875,d6a193ae New situation: Version: alpha-25875,d6a193ae (2022.3.0.25875) Apart from fixing Winget this way, it will be much easier for end users to see on what year.major.minor branch of NVDA they are with their alpha version. note that versions in other places are really not affected. Therefore this change is barely visible. Also note that having a version in the Displayname and the product version in the DisplayVersion for ARP is pretty common. This is used by Visual Studio for example.
…13960) Summary of the issue: There is no way to simply obtain the accelerator key of the currently focused object without reading its entire description. Description of how this pull request fixes the issue: Adds a new script to report the accelerator key. By default, it is bound to Shift+numpad 2 (desktop) and Ctrl+Shift+NVDA+. (laptop). As a mnemonic, accelerator keys are (or at least used to be) visually displayed by an underlined character.
…13971) Fixes #13420 Fixes #9179 Summary of the issue: When in say all NVDA moves caret by the unit specified as a RREADINGCHUNK for a given text info implementation. In most text info implementations it defaults to line, however in ITextDocumentTextInfo it was set to sentence. While it probably results in smoother reading for literary text written in language where TOM can split into sentences properly, in text's such as log or for languages without clear concept of sentence such as Chinese it results in caret not following spoken text since it is moved to the current position only when the sentence ending is reached. Description of user facing changes Say all both for review and system cursor moves by line in Rich Edit controls such as WordPad or NVDA's log viewer. Description of development approach for ITextDocumentTextInfo textInfos.UNIT_READINGCHUNK has been set to line.
Merge beta to master
Summary of the issue: User requests for a more in-depth guide to help new users get started with NVDA. The guide has been written with the intention of including it in the User Guide, but also being able to easily separate it out into a standalone document where needed. The quick start guide also helps bring users onboard in such a way as to give them enough information to get started, and also include information about other resources (eg training material and user groups), to ensure they are able to find additional support if needed. Description of user facing changes Move System Requirements to become section 1.2 Make new "Quick Start Guide" section 2, with sections on downloading NVDA, installing NVDA and Running NVDA (and smaller topics in the quick start guide on preferences, getting help, community. The idea is that the Quick Start Guide will also be able to be used outside the user guide as a standalone document. Section 3 "More setup options" includes most of the original section 3, but renamed as "Getting and setting up NVDA" could be confusing next to "Quick start guide". Most of the text is unchanged, as although slightly repetitious after the quick start guide, the quick start guide walks deeply through (default) options where "More setup options" covers other details, such as information on portable copies. I appreciate this is a large documentation update and I apologise in advance to the translators. I am deeply grateful for all your work! Description of development approach Early work on this was included in the Switching from Jaws to NVDA Wiki some time ago and has been favourably commented on. The text has been drafted several times with the intention of complementing the remainder of the User Guide.
Summary of the issue: Without a signed NVDA build, certain features cannot be tested. Only NV Access have the ability to sign a build with the NV Access certificate. Other developers who wish to create a signed build to test NVDA must sign the build with their own certificate. There is no documentation on creating a self-signed build. Description of user facing changes Added notes on creating and testing a self-signed build. Description of development approach Add notes, tested creating a self-signed build. Based on these instructions: https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing
…mentation (#14011) Summary of the issue: Currently when trying to execute scons devDocs build fails, and the following error is shown: D:\my_repos\nvda\.venv\Scripts\python.exe -m sphinx.cmd.build -M html devDocs devDocs\_build Traceback (most recent call last): File "C:\Python37\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:\my_repos\nvda\.venv\lib\site-packages\sphinx\cmd\build.py", line 25, in <module> from sphinx.application import Sphinx File "D:\my_repos\nvda\.venv\lib\site-packages\sphinx\application.py", line 43, in <module> from sphinx.registry import SphinxComponentRegistry File "D:\my_repos\nvda\.venv\lib\site-packages\sphinx\registry.py", line 24, in <module> from sphinx.builders import Builder File "D:\my_repos\nvda\.venv\lib\site-packages\sphinx\builders\__init__.py", line 26, in <module> from sphinx.util import import_object, logging, progress_message, rst, status_iterator File "D:\my_repos\nvda\.venv\lib\site-packages\sphinx\util\rst.py", line 21, in <module> from jinja2 import Environment, environmentfilter ImportError: cannot import name 'environmentfilter' from 'jinja2' (D:\my_repos\nvda\.venv\lib\site-packages\jinja2\__init__.py) scons: *** [devDocs\_build] Error 1 scons: building terminated because of errors. The error is caused by the fact that the version of Sphinx we're using incorrectly specifies the range of Jinja2 on which it depends, and authors of Jinja2 removed various deprecated methods in version 3.1. The more recent version of Sphinx fixes this issue. Description of user facing changes Developers can once again build developer documentation. Description of development approach I've updated the version of Sphinx in our requirements file to the latest at the time. While at it I've also specified explicitly the version of sphinx_rtd_theme we need.
Closes parts of #13845 Summary of the issue: Recognize Windows 22H2 releases. In part 1 (this pull request), recognize 10.0.22621 as Windows 11 Version 22H2 (Nickel/Sun Valley 2). Description of user facing changes No user facing changes Description of development approach Verified that the following builds will be tied to upcoming Windows feature updates: 19045: Windows 10 22H2 (see additional context as this is out of scope for this PR) 22621: Windows 11 22H2 Build 22621 is available to release preview Windows Insiders, build 19045 forthcoming.
…3980) Fixes #13975 Summary of the issue: NVDA does not support 3 state checkboxes and toggle buttons with UIA. When using WPF or Microsoft edge UIA. Description of user facing changes When a checkbox is partially checked, NVDA will report half checked, same as the turn features control panel applet. Description of development approach in NVDAObjects\UIA, if toggle state is indeterminate, add half checked state
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.
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.
…ur generated comInterfaces (#14016) one of the prerequisites for eventual further work on #12971 Summary of the issue: When trying to generate developer documentation various modules cannot be imported, and as a result it is impossible to generate any documentation from their docstrings. In most cases this is caused by the fact that they try to import various com interfaces from our comInterfaces package, which cannot work since we set its path in a particular way at runtime. The example error for one of the modules is as follows: WARNING: autodoc: failed to import module 'IAccessibleHandler'; the following exception was raised: cannot import name '_CE3F726E_D1D3_44FE_B995_FF1DB3B48B2B_0_1_3' from 'comtypes.gen' (D:\my_repos\nvda\.venv\lib\site-packages\comtypes\gen\__init__.py) Description of user facing changes None Description of development approach During developer documentation build our com interfaces directory is appended to the comtypes.gen search path, to match the behavior at runtime.
Closes #13157 (given microsoft/terminal#13756). Supercedes #13671. Summary of the issue: There is no way to move the review cursor by page. This is especially useful in terminals as a "page" can be defined as a screenful of text, solving #13157 without violating any other assumptions in NVDA and still permitting easy jump to the absolute top/bottom of the terminal buffer using the currently existing scripts. Description of how this pull request fixes the issue: Added new scripts (bound to NVDA+pageUp/NVDA+pageDown on desktop and NVDA+Shift+pageUp/NVDA+Shift+pageDown on laptop) to move to previous/next page respectively.
Merge beta to master
Merge GHSA-rmq3-vvhq-gp32 to master
Summary of the issue: NVDA checks in various places if it is running as source. This check should be abstracted out, as the check is dependent on py2exe behaviour. When viewing code, it is also not immediately clear what `getattr(sys, 'frozen')` means, whereas a named variable will be clearer. Description of user facing changes A named variable with documentation for code contributors. Description of development approach Checked what `import sys; getattr(sys, 'frozen', None)` returns in the python console of an installed copy of NVDA and a source copy of NVDA.
Summary of the issue: It was discovered in #12064 that NVDA sends the architecture to the update server when updating, but it doesn't properly distinguish between architectures. Therefore, NVDA should send which architecture is in use specifically. Description of user facing changes None, only for usage stats. Description of development approach Consistency of data is kept by not changing how the x64 key is determined in the dictionary. The specific architecture is added as an extra key to the dictionary.
Reference the new NVDA API announcements mailing list in the developer guide and the change log. Adds notes to the developer guide on the NVDA deprecation, removal and addition process. Updated the deprecations.md doc to include new deprecation processes.
Summary of the issue: scriptHandler.findScript is considered too complex. Therefore it should be broken up into smaller functions. Description of user facing changes None Description of development approach Added typing to related objects. Split up scriptHandler.findScript so it is more modular.
Merge beta to master
…ew schema. (#14183) fix-up of #14132 Summary of the issue: When upgrading configurations to the new versions of the schema we often need to check what value was set previously as not to change user preferences. In our profile upgrade steps we relied on the fact that false values in the config are falthy in the boolean context, but at the state where profile is upgraded these are not yet transformed into right types, so a value set to False is set to literal string "False" which is always truthy in a boolean context. I've discovered this when, after #14132 got merged, in the profile where I had reporting of row and column headers disabled it got re-enabled after the schema update. Description of user facing changes People who have reporting of row and column header disabled would still have them disabled after updating to NVDA 2022.4. Description of development approach In places where we check if the option is set to True in our profile upgrade steps I used the default configobj converter between string and booleans to convert options into the right values. In addition I've removed some unnecessary pass statements and some variables capturing exceptions which weren't used. While fixing previous upgrade steps would not help people who are upgrading NVDA regularly it still made sense to do so, to support people who skipped several upgrades and to have consistent style for the upgrade steps.
Summary of the issue: Visual Studio uses a WPF implementation of the Windows Terminal control that will use a different UIA class name. As such, NVDA currently does not add the needed overlay class to this control, so autoread and password suppression do not work as expected. Description of how this pull request fixes the issue: Added the new UIA class name to the necessary lists.
Closes #14197 Summary of the issue: Janitorial update of eSpeak. Fixes a regression and long standing issue with Turkish pronunciation. Also fixes a regression in Mandarin pronunciation. Description of user facing changes eSpeak is updated Description of development approach Followed instructions in include/espeak.md. Checked the following diffs, which are empty.
84a2eea to
3eef81c
Compare
Member
Author
|
It looks like master was accidentally merged to this branch, when merging this branch to master. I have reset the commit to 3eef81c |
See test results for failed build of commit 697bf9f533 |
See test results for failed build of commit 03a7c8f718 |
See test results for failed build of commit 03a7c8f718 |
8a370f2 to
d3e77b6
Compare
…y left out of pr #14165 (#14223) Summary of the issue: PR #14165 was to make it so that when moving outside of a table in Excel, NVDA would announce exiting the table. However, part of the code was accidentally left out of the pr, namely the code to choose the ExcelTable class for Excel table elements. Description of user facing changes NVDA will now really report exiting tables in Microsoft Excel. Description of development approach UIA NVDAObject's findOverlayClasses includes the ExcelTable NVDAObject class for Excel tables. Testing strategy: Performed steps for pr #14165.
See test results for failed build of commit d7d4179872 |
See test results for failed build of commit d7d4179872 |
Fixes #14214 See also #14213 Summary of the issue: The current battery status message when pressing NVDA+shift+b is too verbose, because it reports the AC status before the battery level. This is useful for an AC state change (e.g. when plugging in a charger) But is not ideal for when pressing NVDA+shift+b to fetch the battery status. Description of user facing changes Reverts to previous ordering in 2022.3. When the AC status changes, the AC status is still reported first: "charging" or "AC disconnected". When NVDA+shift+b is pressed to fetch the battery status, the battery status is reported first: "X percentage, Z hours and Y minutes remaining" Description of development approach Change internal parameter onlyReportIfStatusChanged to _ReportContext. A _ReportContext is used to determine order of speech. When the context is an AC status change, this reports the current AC status first. When the context is a user fetching the current battery status, this reports the remaining battery life first.
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.
Must be merge commit not squash merge
Final merge for 2022.4 release, using commit
99b2bcffrom master.Changes intended for 2022.4 must now set base/target to this branch, and after merging, the beta branch