Skip to content

Branch for 2022.4#14173

Merged
seanbudd merged 83 commits into
betafrom
branchFor2022.4
Oct 10, 2022
Merged

Branch for 2022.4#14173
seanbudd merged 83 commits into
betafrom
branchFor2022.4

Conversation

@seanbudd

@seanbudd seanbudd commented Sep 21, 2022

Copy link
Copy Markdown
Member

Must be merge commit not squash merge

Final merge for 2022.4 release, using commit 99b2bcf from master.
Changes intended for 2022.4 must now set base/target to this branch, and after merging, the beta branch

seanbudd and others added 30 commits July 25, 2022 14:02
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>
)

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.
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.
The changes for #13934 were accidentally forgotton
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.
…ipts (#14029)

Follow up of #14021

Summary of the issue:
In the Thunderbird message list on some systems, move by page appears to work, but expansion doesn't.

Description of how this pull request fixes the issue:
Widen scope of try/except to catch this case.
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.
…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.
@seanbudd seanbudd added this to the 2022.4 milestone Sep 29, 2022
codeofdusk and others added 2 commits September 29, 2022 16:12
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.
@seanbudd

seanbudd commented Oct 7, 2022

Copy link
Copy Markdown
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

@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 697bf9f533

@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 03a7c8f718

@seanbudd seanbudd marked this pull request as ready for review October 10, 2022 00:04
@seanbudd seanbudd requested review from a team as code owners October 10, 2022 00:04
@seanbudd seanbudd requested review from Qchristensen and feerrenrut and removed request for a team October 10, 2022 00:04
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 03a7c8f718

…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.
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit d7d4179872

@AppVeyorBot

Copy link
Copy Markdown

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.
@seanbudd seanbudd merged commit 17ff0a1 into beta Oct 10, 2022
@seanbudd seanbudd deleted the branchFor2022.4 branch October 10, 2022 05:09
@seanbudd seanbudd removed the blocked label Oct 10, 2022
@seanbudd seanbudd restored the branchFor2022.4 branch October 10, 2022 05:27
@seanbudd seanbudd deleted the branchFor2022.4 branch February 13, 2024 05:42
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.