Skip to content

Merge beta to rc for 2022.3rc1#14195

Merged
seanbudd merged 227 commits into
rcfrom
beta
Sep 29, 2022
Merged

Merge beta to rc for 2022.3rc1#14195
seanbudd merged 227 commits into
rcfrom
beta

Conversation

@seanbudd

Copy link
Copy Markdown
Member

Must be merge commit not squash merge

seanbudd and others added 30 commits June 10, 2022 19:45
Start the dev cycle for the 2022.3 release.
This won't be a compatibility breaking release.
Summary of the issue:

In order to aid reviewing complex pull requests, having a description of the development approach is helpful.
Often this is implicitly included in "Description of how this pull request fixes the issue", however this is also used as a high level summary of the user facing changes. A separation of concerns is needed.

Description of how this pull request fixes the issue:

Adds this information to the PR template and explanation.
…3805)

Summary of the issue:
NVDAObjects.IAccessible.winword star imports everything from NVDAObjects.window.winword. This may cause issues when removing imports from NVDAObjects.window.winword, it is also better to be explicit.

Description of how this pull request fixes the issue:
NVDAObjects.IAccessible.winword now imports all used modules explicitly.
As per the documentation (https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symstore-command-line-options) `-:NOREFS` should be used with `/p`. Reference pointer files are not included unless we use the `/p` flag. 

Description of how this pull request fixes the issue:

Removes `-:NOREFS`  and reorders options to be inline with documentation.
Fixes #13573

Summary of the issue:
"pt" when reporting font size measurements is not translatable.
Font size measurements are reported inconsistently, for example in excel and PowerPoint are reported as "11.0" instead of "11 pt".

Description of how this pull request fixes the issue:
Makes the font size measurement "pt" translatable across APIs.

Browsers provide "font-size" attribute directly as "12pt|px|em|%|rem|ex" or "large", "small", etc.
This requires a more strategic approach for catching each font-size case and replacing it with a translated string.
Documentation has been added for this.
https://developer.mozilla.org/en-US/docs/Web/CSS/font-size
…S Outlook (#13811)

Fixes #13810

Summary of the issue:
PR #13805 removed star imports from NVDAObjects.IAccessible.winword. Unfortunately the appModule for MS Outlook relied on some of the stuff star imported there.

Description of user facing changes
MS Outlook can once again be used with Alpha versions of NVDA.

Description of development approach
Inspected all imports from NVDAObjects.IAccessible.winword - - where they imported stuff which is actually defined in NVDAObjects.window.winword the imports were made explicit.
Summary of the issue:
When the requirements file changes, the ensureVenv script forcefully recreates the environment. In many cases, this behavior is slightly harsh.

Description of how this pull request fixes the issue:
Instead of always recreating the environment, ask the user what to do. If "No" is chosen, the requirements file is installed without recreating
Summary of the issue:
When UIA is enabled for Excel, merged cells were not mentioned as such. Instead, only the first coordinates of the merged range were reported.

Description of how this pull request fixes the issue:
There is no way to fetch the last cell in the range from Excel itself. The UIA implementation in Excel also refuses to provide real row and column numbers. Therefore we have to convert the alphabetical column representation to a column number, then correct the column number for column span and convert it back to alphabetical representation.
…preparation for usage by default (#13807)

Summary of the issue:
It was requested in #10964 (comment) that the ternary option be exposed separately to the change in default behaviour to ease revertability.

Description of how this pull request fixes the issue:
Exposes the ternary option as requested and updates the user guide.
…gui/inputGestures.py` after its split from `source/gui/settingsDialogs.py` (#12386)

Fix-up of PR #11402

Summary of the issue:
In PR #11402, part of source/gui/settingsDialogs.py has been extracted to the new source/gui/inputGestures.py for good reasons.
However, in the process, the name of the copyright holders for this portion of the code has not been reported to the header of the new file.

Description of how this pull request fixes the issue:
Copy all the names from the copryright headers in source/gui/settingsDialogs.py.
…(Windows 11 Sun Valley 2) (#10964)

Supersedes #9771 and #10716. Closes #1682. Closes #8653. Closes #9867. Closes #11172. Closes #11554.

Summary of the issue:

Microsoft has significantly improved performance and reliability of UIA console:
* microsoft/terminal#4018 is an almost complete rewrite of the UIA code which makes the console's UIA implementation more closely align with the API specification.
* microsoft/terminal#10886, microsoft/terminal#10925, and microsoft/terminal#11253 form a robust testing methodology for the UIA implementation, including bug fixes in response to newly added tests based on Word's UIA implementation.
* microsoft/terminal#11122 removes the thousands of empty lines at the end of the console buffer, significantly improving performance and stability. Since all console text ranges are now within the text buffer's bounds, it is no longer possible for console to crash due to the manipulation by UIA clients of an out-of-bounds text range.
* Countless other accessibility-related PRs too numerous to list here.

We should enable UIA support on new Windows Console builds by default for performance improvement and controllable password suppression.

Description of how this pull request fixes the issue:

This PR:
* Exposes all three options for the UIA console feature flag in the UI (replaces the UIA check box with a combo box).
* Adds a runtime check to test if `apiLevel >= FORMATTED`, and use UIA in this case when the user preference is auto. This is the case on Windows 11 Sun Valley 2 (SV2) available now in beta and set for release in the second half of 2022.
Fix-up of #10964.

Summary of the issue:

The link to Expose Text Attributes to UI Automation microsoft/terminal#10336 was broken by t2t preproc directives.

Additional clarification on "NVDA API levels" might be appreciated by some users.
Link to issue number:

Fixes #12097
Fixes #12086

Summary of the issue:

Some punctuation marks in Chinese and Arabic are treated as emoji characters by NVDA.

Description of how this pull request fixes the issue:

This pull request adds those symbols into NVDA's symbols dictionary.
…ernal code when running from sources (#13827)

Summary of the issue:
When starting NVDA from sources messages logged from nvda.pyw are shown as external. Example message:

INFO - external:__main__ (17:20:02.477) - MainThread (4316):
Starting NVDA version source-master-b817b03

This is clearly wrong. The problem is caused by the trailing backslash added in bat scripts (%~dp0 is already terminated with one and adding a second backslash causes logHandler.isPathExternalToNVDA to think that the path is external).

Description of user facing changes
Log messages from nvda.pyw are no longer marked as external.

Description of development approach
All usages of %~dp0 are inspected and trailing backslash is no longer added to the paths. To make logHandler.isPathExternalToNVDA more resilient to invalid paths the path is normalized before checking if it is the same as sys.path.
…handle (#13796)

Closes #13039

Summary of the issue:
When launching IntelliJ IDEA you minimise all windows with Windows+M before the IntelliJ window comes into view, then you get many errors and IntelliJ will take a long time to load. In addition NVDA will log many errors.

Description of how this pull request fixes the issue:
It seems like if a Java window never gets shown then Java Access Bridge is unable to get a window handle for it. Also the caching of window handles in NVDA's Java Access Bridge is unable to help as the Java window was never in focus. As the affected window is in the background and as there is nothing more NVDA can do to solve this I have checked for the presence of a window handle in the Java Access Bridge event handling, if no window handle is present then the event is ignored.

Testing strategy:
Manual testing. Tested using the steps in the issue. Also did some other use of Java applications to observe if this fix has negative impacts anywhere else, none found.

Known issues with pull request:
Technically these events could be processed as the Java Access Bridge objects contain all accessible information, so we are throwing away events when may be we could process them. However due to NVDA Window objects insisting on a window handle we cannot proceed with processing due to the NVDA limitation.
Summary of the issue:
Minor formatting issues with eSpeak.md file

Description of user facing changes:

Normalize capitalization to eSpeak
Normalize paths to NVDA root, link to them where possible
Added instruction to diff config file
Added example of expected build warnings
Summary of the issue:
When announcing if an object has details, more information can be provided about the role of the details.
For example, if a comment is tied to a word, "has comment" should be reported instead of "has details".

Description of how this pull request fixes the issue:
Collects the details role.

The attribute details role is determined in a number of cases.

Braille
Use has cmmt to report presence of comment role aria-details target. Discussion

Focus Mode
detailsRole is normalized on the NVDAObject level to a controlType.Role.

Chromium
The IA2 attribute details-roles is used to get the role.

This supports the following roles (code): comment, definition, doc-endnote, doc-footnote. Other roles are given a value of * .

Currently only chromium supports details-roles.
Additionally, doc-endnote and definition are not supported IA2 attributes, and are not supported in NVDA widely.

We limit reporting for all cases by only reporting the fully supported details-roles: doc-footnote, comment

Other roles are reported as "has details".

FireFox
The related details node is fetched using in process injection, and the IAccessible information is retrieved.
The role is determined from the IAccessible role of the related node.

This is slower and provides a wider reporting of roles.

Browse Mode
The detailsRole attribute is added directly to the buffer, either as a descriptive role string or a role integer as a string.

Testing strategy:
The system test cases test the details role for Chrome, using both focus and browse mode.

runsystemtests.bat -t "*aria details*"

Equivalent manual testing was performed using those test cases on both Chrome and FireFox.
Fixes #13232

Summary of the issue:
Since PR #12849, information about selected cells in LibreOffice Calc is queried using the 'IAccessibleTable2' interface which is supported from LibreOffice 7.3 on.
The call to the 'selectedCells' method on that interface requests a list of a11y objects for all currently selected cells, of which only the first and the last one are actually needed for the announcement of selected cells.
Since Calc spreadsheets have more than a billion cells, this is inefficient when many cells are selected and resulted in Calc becoming unresponsive.

Description of how this pull request fixes the issue:
Instead of using the 'selectedCells' method from the 'IAccessibleTable2' interface, the first and last selected cell are now retrieved using the 'accSelection' on the 'IAccessible' object of the table, which avoids that a11y objects for all other selected cells have to be generated as well.

Testing strategy:
use LibreOffice Calc 7.3 or above
select all cells in LO Calc and check that NVDA announces coordinate + content of the first cell (A1) and the last cell (AMJ1048576) in the spreadsheet
test a few other selections in the spreadsheet (use shift + arrow keys to increase/decrease selection)
…sts to workaround issues in find_module and for forward compatibility. (#13853)

None, discussion in PR #13814

Summary of the issue:
As mentioned in #13814 (comment) FileFinder.find_module is deprecated. find_spec is the recommended replacement method.
As noted in #13814 (comment), using either find_spec or find_module with pkgutil.iter_importers results in paths containing "." being incorrectly treated as python packages, causing #13813

Description of development approach
Description of user facing changes
No user facing change

Description of development approach
When checking if the given appModule exists, instead use importlib.util.find_spec, which does not have the same problematic behaviour as pkgutil.iter_importers.
Closes #13295 

#Summary of the issue:

eSpeak is updated using the steps outlined in espeak.md.

Build issues fixed:
1. When a language dictionary fails to compile, an `errno` is raised. our `IntEnum` implementation of `espeak_ng_STATUS` doesn't correctly capture `errno`. Usage of `IntFlag` is required.
1. The dictionary compilation action did not specify the name of the language.
This used to be handled by eSpeak implicitly through getting a mapping using the rules path.
This is no longer the case for some languages.
1. eSpeak added `CLEANFILES` for certain language dictionary components. This can be mirrored by `env.Clean` or `os.remove`.
1. A PR to eSpeak was created to fix building Malay (ms) espeak-ng/espeak-ng#1225.

# Description of user facing changes

Added languages:
  - Belarusian
  - Luxembourgish
  - Totontepec Mixe

# Description of development approach

New languages were added to the compile dictionary.
Summary of the issue:
The ui.browseableMessage has no margin. For people with visual difficulties, it makes more difficult to isolate the content of the browseable message from the text present in the background around the browseable message.

Description of user facing changes
The content of browseable message such as formatting information (double press of NVDA+F) is now rendered with a margin around the text.

Description of development approach
Just added the following style property to the message's body:
style="margin:1em"
The 1em measurement should correspond to 1 character.
Summary of the issue:
The BreakCommand is not implemented with SAPI4.
There is also a known issue with eSpeak not supporting the break SSML tag correctly.

Description of user facing changes
Fix pauses being announced correctly when using MathPlayer and SAPI4 or eSpeak.

Description of development approach
For SAPI5 the Pau tag is used to implement the pause.

There is a known issue with eSpeak and the break SSML tag, which has been fixed with a workaround, adding the strength attribute, while we wait for espeak-ng/espeak-ng#1232 to be fixed.
Summary of the issue:
There are no clear instructions for NVDA developers to test SAPI 4 synthesizers.
As SAPI 4 is no longer published by Microsoft, it requires research to set up and test SAPI 4 synthesizers with NVDA.

Description of user facing changes
Added notes for developers
Summary of the issue:
The width of the License Agreement was fixed, however the outer dialog scales with DPI.
This causes inconsistent behaviour for the License Agreement text sizing within the Launcher dialog.

Examples refer to a machine with high DPI and 200% scaling

For example, the width of the license agreement text for my machine display setting is roughly 2/3rds of the dialog.
Additionally, the GPL2 license text is manually wrapped wraps at different line lengths, with 80 being the most common.
Longer lines exist for custom changes to the GPL2 license.

Description of user facing changes
Makes the width of the license text dialog fit 80 characters of text comfortably.
Also changes the height of the dialog by ~100px (scaled) for readability.

Description of development approach
Get a the width of a line of license text by creating and destroying a hidden text control.
Use that to set the scaled size of the license text.
NVDA translation automation and others added 14 commits September 16, 2022 00:02
From translation svn revision: 69871

Authors:
vgjh2005@gmail.com
jiangtiandao901647@gmail.com
manchen_0528@outlook.com
dingpengyu06@gmail.com
singer.mike.zhao@gmail.com
1872265132@qq.com

Stats:
26	26	source/locale/zh_CN/LC_MESSAGES/nvda.po
2	10	user_docs/zh_CN/changes.t2t
33	33	user_docs/zh_CN/userGuide.t2t
 3 files changed, 61 insertions(+), 69 deletions(-)
From translation svn revision: 69871

Authors:
wangjanli@gmail.com
maro.zhang@gmail.com
Aaron Wu <waaron2000@gmail.com>
Victor Cai <surfer0627@gmail.com>
haach111000@gmail.com

Stats:
4	4	source/locale/zh_TW/characterDescriptions.dic
24	1	user_docs/zh_TW/changes.t2t
 2 files changed, 28 insertions(+), 5 deletions(-)
From translation svn revision: 69871
From translation svn revision: 69939

Authors:
Diogo Costa <diogojoca@gmail.com>
Rui Batista <ruiandrebatista@gmail.com>
Rui Fontes <rui.fontes@tiflotecnia.com>
Ângelo Abrantes <ampa4374@gmail.com>

Stats:
5	5	source/locale/pt_PT/symbols.dic
 1 file changed, 5 insertions(+), 5 deletions(-)
From translation svn revision: 69939
From translation svn revision: 69951

Authors:
Grzegorz Zlotowicz <grzezlo@wp.pl>
Patryk Faliszewski <patric3031@wp.pl>
Zvonimir Stanecic <9a5dsz@gozaltech.org>
Dorota Krac <dorkakrac@yandex.com>
Piotr Rakowski <kontakt@piotrrakowski.net>
Hubert Meyer <hubmeyer1989@gmail.com>
Arkadiusz Swietnicki <nuno69a@gmail.com>

Stats:
12	0	user_docs/pl/changes.t2t
 1 file changed, 12 insertions(+)
From translation svn revision: 69951

Authors:
Ondrej Rosik <ondrej.rosik@gmail.com>
Peter Vagner <peter.v@datagate.sk>
Jan Kulik <jan.kulik.szsle@outlook.sk>

Stats:
4	4	user_docs/sk/changes.t2t
 1 file changed, 4 insertions(+), 4 deletions(-)
From translation svn revision: 69951

Authors:
Cagri Dogan <cagrid@hotmail.com>

Stats:
3	3	source/locale/tr/LC_MESSAGES/nvda.po
 1 file changed, 3 insertions(+), 3 deletions(-)
From translation svn revision: 69951

Authors:
vgjh2005@gmail.com
jiangtiandao901647@gmail.com
manchen_0528@outlook.com
dingpengyu06@gmail.com
singer.mike.zhao@gmail.com
1872265132@qq.com

Stats:
2	2	user_docs/zh_CN/userGuide.t2t
 1 file changed, 2 insertions(+), 2 deletions(-)
From translation svn revision: 69951
Merge rc to beta
@seanbudd seanbudd requested review from a team as code owners September 29, 2022 02:23
@seanbudd seanbudd requested review from Qchristensen and feerrenrut and removed request for a team September 29, 2022 02:23
NVDA translation automation added 6 commits September 29, 2022 02:27
From translation svn revision: 69984

Authors:
Bernd Dorer <bdorer@mailbox.org>
David Parduhn <xkill85@gmx.net>
Rene Linke <rene.linke@hamburg.de>
Adriani Botez <adriani.botez@gmail.com>
Karl Eick <hozosch@web.de>
Robert Hänggi <aarjay.robert@gmail.com>
Astrid Waldschmetterling <a.r.waldschmetterling@gmx.de>

Stats:
19	3	source/locale/de/LC_MESSAGES/nvda.po
0	7	user_docs/de/changes.t2t
 2 files changed, 19 insertions(+), 10 deletions(-)
From translation svn revision: 69984

Authors:
Hrvoje Katic <hrvojekatic@gmail.com>
Zvonimir Stanecic <9a5dsz@gozaltech.org>
Milo Ivir <mivir@milotype.de>
Dejana Rakic <dejana.rakic.2@gmail.com>

Stats:
9	0	user_docs/hr/changes.t2t
 1 file changed, 9 insertions(+)
From translation svn revision: 69984

Authors:
Beqa Gozalishvili <beqaprogger@gmail.com>
Goderdzi Gogoladze <goderdzigogoladze@gmail.com>

Stats:
7	7	source/locale/ka/LC_MESSAGES/nvda.po
 1 file changed, 7 insertions(+), 7 deletions(-)
From translation svn revision: 69984

Authors:
Grzegorz Zlotowicz <grzezlo@wp.pl>
Patryk Faliszewski <patric3031@wp.pl>
Zvonimir Stanecic <9a5dsz@gozaltech.org>
Dorota Krac <dorkakrac@yandex.com>
Piotr Rakowski <kontakt@piotrrakowski.net>
Hubert Meyer <hubmeyer1989@gmail.com>
Arkadiusz Swietnicki <nuno69a@gmail.com>

Stats:
1	1	source/locale/pl/symbols.dic
0	3	user_docs/pl/changes.t2t
183	46	user_docs/pl/userGuide.t2t
 3 files changed, 184 insertions(+), 50 deletions(-)
From translation svn revision: 69984

Authors:
Daniel Johansson <daniel.johansson@coeptus.se>
Niklas Johansson <sleeping.pillow@gmail.com>
Karl-Otto Rosenqvist <Karl-otto@mawingu.se>

Stats:
3	3	source/locale/sv/LC_MESSAGES/nvda.po
 1 file changed, 3 insertions(+), 3 deletions(-)
From translation svn revision: 69984
@seanbudd seanbudd merged commit fbf8109 into rc Sep 29, 2022
@nvaccessAuto nvaccessAuto added this to the 2023.1 milestone Sep 29, 2022
@seanbudd seanbudd modified the milestones: 2023.1, 2022.3 Sep 29, 2022
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.