Skip to content

Merge master to beta#14634

Merged
seanbudd merged 13 commits into
betafrom
master
Feb 13, 2023
Merged

Merge master to beta#14634
seanbudd merged 13 commits into
betafrom
master

Conversation

@seanbudd

Copy link
Copy Markdown
Member

Must be merge commit not squash merge

seanbudd and others added 13 commits January 30, 2023 08:23
Fixes #14519
Fixup of #14303

Summary of the issue:
#14303 fixed a bug where landmarks and regions were not correctly reported in some cases.
However, #14303 failed to check/respect the config setting for reportLandmarks

Description of user facing changes
Landmarks are no longer reported incorrectly

Description of development approach
Check the config setting when reporting landmarks/regions in the case introduced by #14303
A typo in #14070 prevents navigated to the first column in a table in Firefox.

Description of user facing changes
Use table navigation commands to move to the first column in firefox works again

Description of development approach
Fix typo
#14578)

Fixes #14407

Summary of the issue:
When launching NVDA with parameter --lang=windows, an error occurs when openeing the General settings dialog.
This error probably occurs when Windows language is not in the list of languages supported by NVDA (even if I have not been able to test such Windows localization). This error also occurs when Windows provides language+region code ('fr_FR') whereas NVDA supports 'fr' more generally.

Description of user facing changes
For Windows language not directly supported by NVDA, use the language code as a description instead of a full text description.

Description of development approach
I have choosen to replace full text description by the language code when NVDA does not support windows language+region. This is the simplest approach.
For fr_FR, I may have implemented a fallback to 'fr', but this would just throw other corner cases for Windows languages completely unknown to NVDA. I believe that displaying full text language names in a few more cases do not deserve a much more complex implementation. The first goal is to be able to open the settings dialog.
…tures to be displayed in the INput gesture dialog (#14600)

Fixes #14599

Summary of the issue:
In some case (e.g. NVDA dev or add-on dev/update/uninstall), the file gesture.ini may contain script association for scripts that do not exist anymore in the current config. As described in #14599, if you try to reassign the shortcut that was used for such old removed scripts, the gesture may not be displayed in the input gesture dialog.

Description of user facing changes
When the file gesture.ini contains script association for unexisting scripts, e.g. due to old add-on or old devs in NVDA source code, there will not be anymore the risk that a gesture associated to a currently valid script be not displayed.

Description of development approach
• If a script name is not found in a class, do not consider this script handled and remove it from the handledScripts set; also log a debugWarning in this case.
• And also checked other continue statement (and commented one of them) to check the logic with respect to scripts added in this list.
It is possible to register a callback on hwIo.IoBase to catch read errors. However, if this is a callback on a driver and the driver closes the device, the device keeps a reference to the callback on the driver. This causes a circular reference.

Description of user facing changes
Possibly less unreachable object errors

Description of development approach
Similar to _onReceive, ensure that onReadError is set to None when closing the device.
A synth driver inherrits from autoSettingsUtils.autoSettings.AutoSettings but overrides its loadSettings method to work around changing the voice. However, that override doesn't respect settings that aren't saved in config, like the parent class does.

Description of user facing changes
None

Description of development approach
Ensure that a synth doesn't try to get a setting from config that's not a setting stored in config.
…nate of a merged cell (#14585)

For some translators (Chinese ones at least), in the case of merged cell it would be better to report "column 2 to column 3" instead of "column 2 to 3" as we do today.
Today, NVDA uses 2 translatable strings to report the coordinates of a merged cell:
• for rows: "row %s" and "through %s"
• for columns: "column %s" and and "through %s"

Description of user facing changes
Translators will now have two strings indicating the end coordinate of a merged cell, one for rows and one for columns.

Description of development approach
I just have used .format(...) with named parameters. Defining strings with two parameters named differently allows to create 2 translatable strings instead of only one. As a side effect, it's also better for translators to have named parameters rather than just %s which is not explicit.
Note: using pgettext was another option, but with named parameters, it didn't turn out to be necessary.
…ion of a link (#14583)

It was pointed out, that in this age of phishing and other daily digital security threats effecting average users across the globe, the ability to determine where a link on the web, in an email, or anywhere else, is actually going to take you, is of increasing importance.
NVDA has no current way to do that in most/all circumstances.

Description of user facing changes
Added the following global commands:
• NVDA+k (all layouts): Report the destination URL of the link in the navigator object. Pressed once, will speak/braille the link, or other element containing a link, represented by the navigator object. Pressed twice, will show the link text in a window with the link name as its title, which can be reviewed more carefully.
• Unassigned by default: Report the destination URL of the link in the navigator object in a window. Will skip directly to showing the browseable message, as above. This second option is imagined as an alternative to which braille users might prefer to remap NVDA+k.
The NVDA+k key was chosen because of its relatability to the browse mode K command.
I also added the NVDA+k key and description, to the "Reporting location and other information" section of the user guide. I did not add information about the unmapped command, or a broader description of the feature in general, because I was not sure of an appropriate section for it, though it may be worth adding a "Miscellaneous Features" section at some point.

Description of development approach
• Added two new scripts to globalCommands.py. The first will output the link, if the navigator object is or contains a link (such as a graphic with a link), as a ui.message if called once, or as a ui.browseableMessage if called twice.
• If the role is not LINK, or the states do not contain the LINKED state, it speaks/brailles "Not a link".
• The second script just calls the first script, with a flag directing it to ignore whether the key was pressed twice, and proceed directly to displaying in a ui.browseableMessage.
…ast item (#14574)

Status bar contents are not read in Notepad 11.2212.

Description of user facing changes
Status bar will be read in newer Notepad 11 releases.

Description of development approach
Reposition status bar index to become second to last item (-2) in the Notepad UI tree. This is applicable in stable (11.2210 as of time of this pull request) and upcoming dev (11.2212) release with tabbed Notepad interface. Unless the UI tree changes significantly, this change will support old and new Windows 11 Notepad releases.
Fixes #14127
Supersedes #14451

Summary of the issue:
When using the foobar2000 audio player, the ctrl+shift+r command should report the remaining time in the audio file in the SS, MM:SS, HH:MM:SS, or D HH:MM:SS format depending on the remaining time length.
However, using the command on audio files over a day long produces an error as the code attempts to read the time string in the HH:MM:SS format instead of the D HH:MM:SS format.

Description of user facing changes
Time calculation is now processed correctly for all audio length up to 31 days. After this point, it is uncertain how foobar reports time.

In addition to fixing the time calculations, the spoken UI message was also amended to say "[time] total", "[time] elapsed", or "[time] remaining", rather than just "[time]" so as to be more understandable for the listener.

Description of development approach
Created a collection of translatable time string output formats.

Created a generic way to parse timedeltas to localised formatted strings.

Created internal functions for foobar appModule to parse foobar time strings to localised formatted strings.

---------

Co-authored-by: saurabhanand03 <asaurabh2003@gmail.com>
@seanbudd seanbudd requested review from a team as code owners February 13, 2023 22:58
@seanbudd seanbudd requested review from Qchristensen and michaelDCurran and removed request for a team February 13, 2023 22:58
@seanbudd seanbudd merged commit 261532f into beta Feb 13, 2023
@nvaccessAuto nvaccessAuto added this to the 2023.1 milestone Feb 13, 2023
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.

7 participants