Merge branch for 2023.3 to beta#15369
Merged
Merged
Conversation
Beta to master
Start the dev cycle for the 2023.3 release. This won't be a compatibility breaking release.
closes #13394 Summary of the issue: As elaborated in #13394, line indentation reporting can be too noisy in contexts where indentation changes for blank lines aren't meaningful and distract from the actually meaningful indentation changes, such as is the case when reading source code for Python and many other programming languages. Description of user facing changes A new checkbox is added to Document formatting, "Ignore blank lines for line indentation reporting". By default it is off, in which case line indentation reporting behaves as it does currently. If the user ticks the checkbox, then indentation changes are not reported for blank lines. There is also a new unassigned global command for toggling the setting. Description of development approach new config property: ignoreBlankLinesForRLI = boolean(default=false) short for ignoreBlankLinesForReportLineIndentation, which was too long and causing Flake8 issues new settings panel checkbox for toggling ignoreBlankLinesForRLI in speech.speech.getTextInfoSpeech, if ignoreBlankLinesForRLI is true and the line is blank, the block of code that inserts the indentation announcement and updates the indentation cache is skipped, otherwise it behaves as usual user guide updated with brief info on new option added unassigned global command for toggling ignoreBlankLinesForRLI added system test for confirming the correct behavior
beta to master
Beta to master
beta to master
Reintroduces #14697 Closes #10185 Closes #11061 Closes #11615 Summary of the issue: WASAPI usage should be reenabled by default on alpha so wider testing can occur Description of user facing changes WASAPI is re-enabled - refer to #14697 for benefits Description of development approach change feature flag default value to enabled
Merge beta to master
Merge beta to master
merge beta to master
merge beta to master
Merge beta to master
merge beta to master
merge beta to master
Merge beta to master
merge beta to master
#15270) The code of conduct currently prohibits explicitly violent language, but has no statement on inciting violence. Inciting, encouraging or otherwise glorifying violence is materially not much different to violence itself. Prohibiting inciting violence is a common standard on social media platforms, and is also prohibited on GitHub itself This PR adds an explicit ban on inciting or glorifying violence to the code of conduct. This PR also adds an explicit ban on religious and political proselytising.
Merge beta to master
Fixes #15282 Summary of the issue: User error caused the unicode braille symbol for the 4 5 6 dots to be incorrectly labelled as 1 2 3 Description of user facing changes Fix pronunciation of the unicode 4 5 6 braille symbol
Link to issue number: None Summary of the issue: Some translatable strings in the add-on store didn't use pgettext grouping Description of user facing changes Description of development approach Fix missing strings that weren't correctly grouped with pgettext
Fixes #15019 Summary of the issue: NVDA only fetches object text range information if "report headings" and "report comments and notes" are enabled. This only happens when using the object model. This causes a crash when attempting to update the caret, as we try to fetch range information that hasn't been generated by nvdaHelper. Description of user facing changes Fix crash in Microsoft Word when Document formatting options "report headings" and "report comments and notes" were not enabled. Description of development approach Always fetch range information, regardless of these options.
Fixes #15309 Summary of the issue: In Edge browse mode, when opening the context menu, NVDA many times goes back to browse mode. Description of user facing changes NVDA will no correctly focus the context menu opened from Edge browse mode. Description of development approach The issue behind this is as follows. Take a link as example: Disabling the option Automatically set system focus to focusable elements ensures that an object only gets focus when strictly necessary. This is the case when opening the context menu, because otherwise, the context menu would open for the wrong object. When opening the context menu on the link, NVDA calls script_passThrough script_passThrough calls setFocus on the link's object and sends the gesture. Two focus events are fired, one for the link in the document and one for the context menu NVDA first processes the context menu event and after that, the link object event Focus bounces from the context menu back to the link. There is a very trivial fix for this. With calling api.processPendingEvents, we ensure that NVDA first processes the event generated by setFocus before executing the gesture.
…on (#15295) Fixes #15283 Summary of the issue: .NET 7 Win Forms has a native implementation for SysListView32 controls. This conflicts with us listing SysListView32 as a bad UIA Class name. Description of user facing changes Win forms project in #15283 now works as expected for the most part. Description of development approach Implemented SysListView32 in a new UIA module. Note that UIA seems to expose the following tree by default: A list object Children for the list items having the ListItem control type, but neither GridItem nor TableItem patterns Sub items containing both GridItem and TableItem patterns. I did the following: Introduced fetching of children text and column headers, mostly based on the Outlook app module Implement position info based on row number of the first child and total row count of parent
Fixes #14285 Summary of the issue: There are reports of NVDA being sluggish in Rich Edit controls. In d5a3383, rich edit classes were classified as bad for UIA for us to always use the win32 implementation. However, our support for UIA text editing is good enough for this restriction to be lifted, as this also solves the reported sluggishness. Description of user facing changes Using UIA instead of win32 API's under the hood. Description of development approach Moved the role, value and states overrides to a base class in window.edit Rather than simply removing win32 edit classes when using UIA, insert the EditBase class as well. This ensures that role is reported as editable text rather than document, and that the multiline state is added. This ensures backwards compatibility as long as code authors don't match against MSAA specific properties.
Fixes #14916 Summary of the issue: When opening the context menu from the Edge downloads window, NVDA doesn't reflect this. Description of user facing changes Context menu is read again. Description of development approach It looks like the context menu items aren't direct children of the foreground window, therefore we compare the root of the foreground and the root of the focus window instead. Fixed a typo in a UIAHandler debug string Ensured that UIAHandler.getNearestWindowHandle returns when a cached window handle couldn't be fetched from an UIAElement due to a COMError.
Summary of the issue: Driver used 0 for write_timeout (non-blocking). If display was updated frequently (for example pressing and holding arrow key down in long document), display updating continued some time after for example arrow key was not pressed anymore. Using write_timeout 0.2 seconds (quite typical value with other braille drivers) resolves this. Description of user facing changes Braille shows pretty quickly valid information after situations where braille line was updated frequently (for example when pressing and holding arrow key down in long document). Description of development approach In addition to write_timeout change, there is a change how display is updated after reconnection and exit from internal menu. Using braille.handler._displayWithCursor function, driver code can be reduced.
Fixes #15226 Summary of the issue: Driver continued port initialization retries although there was IOError exception. Description of user facing changes Port initialization is stopped when there is IOError exception. Description of development approach If there is IoError exception, _initPort function returns None which causes _initConnection function to raise RuntimeError. No need to try with 9600 bps, and there is no other port to try.
This PR reorganizes the "devDocs" folder of project documentation.
The proposed structure is as follow:
- projectDocs
- product_vision.md
- design (for product design and technical design overviews)
- dev (for development and contributing docs)
- developerGuide
- issues (for issue reporting and triage)
### Testing
Tested the following scons commands:
- scons developerGuide
- scons devDocs
- scons devDocs_nvdaHelper
NV Access is intending to move most of the wiki into the repository, so changes are tracked better and easier to propose. The contributing wiki page is a prime candidate for migration. The contributing wiki, and project README are somewhat difficult to navigate and follow. As part of a wider goal of making these simpler, migrating them to the repository is a required first step. Description of user facing changes The Contributing wiki page was merged back to CONTRIBUTING.md. https://github.com/nvaccess/nvda/wiki/Contributing A large amount of this wiki page was duplicated in codingStandards.md. These sections were merged and updated in codingStandards.md. Additionally, some grammar and formatting fixes were made
#15328) GitHub has an issue where even though we disable opening blank issues, they can still be created. If a GitHub user reaches the page: https://github.com/nvaccess/nvda/issues/new, .github/ISSUE_TEMPLATE.md is rendered. It is uncertain where this page is linked from, as the preferred and main UX is where you choose an issue https://github.com/nvaccess/nvda/issues/new/choose. An older copy of the issue template is kept in the blank issue template. This is not kept in sync with the main bug report issue template. It also misses a lot of information from the main bug report issue template. Description of user facing changes Remove the duplicate bug report template from the blank issue template. Instead encourage using issue templates correctly.
…15334) Summary of the issue: In the Command Line Options section of the user guide, a pair of --s on the line -copy-portable-config resulted in strikethrough rendering in the output HTML. Description of user facing changes All options are `` by backticks. Description of development approach All options are `` by backticks.
Summary of the issue: The triage docs are out of date. Additionally, NV Access is intending to move most of the wiki into the repository, so changes are tracked better and easier to propose. Description of user facing changes The two triage wiki pages were merged into this one document: https://github.com/nvaccess/nvda/wiki/Issue-triage-help https://github.com/nvaccess/nvda/wiki/Triage-process/ A new section on issue labelling was created. This adds more information into what makes an issue labelled as "triaged". The section on the wiki on prioritization and p1,p2,p3,... labels was move to the labelling section. The information here dated, and was not in line with how NV Access was labelling and prioritising. We are also proposing new changes to the priority labelling with clearer definition boundaries. The current p1-p4 issues will all be downgraded to p2-p5, with the exception of manually reviewed issues, and issues flagged by the community. Additionally, some grammar and formatting fixes were made
Merge beta to master
…ord text (#15205) Closes #15206 Closes #15220 Summary of the issue: Various issues for alignment reporting: In MS Excel horizontal or vertical text alignment is not always correctly reported. In MS Word (legacy), text alignment is not correctly reported for "justify" and for "distrubute". Description of user facing changes Reporting text alignment in Word and Excel is now handled better in various situations. "Default" is not reported anymore since it does not give any clear indication of the position of the text. In MS Excel (no UIA) the alignment is reported as per Excel's options: for horizontal text alignment in cell: "General", "Centered across columns", "Repeat" and "Distribute" is now reported instead of "Default" or nothing for vertical alignment: "bottom" is reported instead of "default" In MS Word (no UIA): "justify" is now reported instead of "Default" "distribute" is now reported instead of nothing Description of development approach Standardized alignments returned by getFormatField* functions around a string enum as done in #11897. Thus, all the interfaces are impacted.
Fixes #15115 Summary of the issue: This extends pull request #15134 and includes pull request #15156. Collaborated with @LeonarddeR. Description of user facing changes Braille line is updated in terminal window when there is text change. In addition braille line is updated in any application when: braille cursor is turned on or off with gesture if there is selected text in edit control or document, changing "show selection" state with gesture updates braille line when otherwise supported Description of development approach Terminal window updates are handled with: NVDAObjects.behaviors.Terminal.event_textChange and event_UIA_notification in winConsoleUIA._NotificationsBasedWinTerminalUIA. Objects are passed to BrailleHandler.handleUpdate function. When braille show selection state is changed with gesture, BrailleHandler.initialDisplay function is executed. When braille cursor is toggled with gesture, BrailleHandler._updateDisplay function is executed.
Fix-up of #15205 Summary of the issue: While addressing #15205 review, deprecation code has been added. However, I have forgotten to update the initial description's change log paragraph to mention it. Description of user facing changes Updated change log with deprecation information. Note: a message will have to be sent to the API mailing list. While at it: Added formatting to the previous item of the change log. Fixed a missing end of list causing "Deprecation" paragraph title not being rendered correctly
Partly related to issue #6483. Summary of the issue: The BRLTTY driver was available even when there was no BRLTTY instance with BrlAPI enabled running on the local computer (the only type of connection supported for now). Opening the actual connection has quite a long timeout, so this cannot be done as an availibility check. However, BrlAPI uses named pipes in a known location, so we can use that to check for availability. In the future we might also expose this as a port selection if multiple pipes are discovered and/or we add an interface to connect to a BrlAPI server on another host over TCP. While I was working on this driver, I also marked it threadSafe and added a few more keybindings. Description of user facing changes The BRLTTY driver will not show up in the list of braille displays if no local BRLTTY with BrlAPI enabled is running. More BRLTTY commands have been mapped to NVDA actions.
…lid (#15346) Raised due to #15345 Fix up of #15241 Summary of the issue: Add-ons installed from the add-on store in NVDA versions before 2023.2beta2 may have invalid encoding in their add-on store cache file. This causes an error to be logged, and the add-on to be treated as an externally installed add-on. The file name of the invalid add-on cache file is not logged with the error. This information is required for debugging.
Fixes #15150. Summary of the issue: When WASAPI is enabled, NVDA sometimes hangs and cannot be recovered, especially when switching audio devices. The freezes all occur in WasapiWavePlayer._idleCheck when calling wasPlay_idle. Description of user facing changes Fixed the hangs. Description of development approach If getting the playback position fails with an error, playback has probably been interrupted; e.g. because the device disconnected. Treat this as if playback has finished so we don't wait forever and so that we fire any pending callbacks. Never treat a stream as idle while we're feeding audio to it. Aside from this not making any sense, we might otherwise try to sync and stop it in the main thread, which could cause hangs or crashes.
Fixes #15333 Summary of the issue: In #15295, we removed SysListView32 as a bad UIA class name as there are now decent UIA implementations that should be prefered over their MSAA counterparts. However, it turns out that Windows Management Console, despite advertising a native UIA implementation, offers something quite incomplete. Description of user facing changes Working list navigation in mmc, such as in windows Services list Description of development approach Classify SysListView32 as Bad UIA class in the mmc app module. Note. I have also tested several other applications in Windows, including regedit, and there no UIA implementation of SysListView32 is advertised. Therefore I think this might be a onetimer. Ensures that whenever UIA is used wit an incomplete implementation, no errors occur by performing the necessary checks.
closes #15196 Summary of the issue: It is currently not possible to disable display drivers for automatic detection, other than the HID braille standard There is no obvious way for add-on bundled braille display drivers to register themselves in automatic detection. Description of user facing changes In the braille display selection dialog, when automatic is selected, there is now an additional checklistbox that allows you to disable drivers. The disabled drivers are saved in config. The advanced option for to disable HID braille has been removed. Users should use the new checklistbox instead. There is a config profile upgrade step to remember the user's decision about explicitly disabling HID. It is now possible to select the HID braille driver manually when it is disabled for automatic detection. The old option in advanced setting disabled HID completely, i.e. the driver wasn't available for manual selection either. Description of development approach Added a registerAutomaticDetection classmethod to BrailleDisplayDriver. This method is called by bdDetect.initialize. The classmethod receives a bdDetect.DriverRegistrar that contains the following methods: addUsbDevices: to register USB devices addBluetoothDevices: To register bluetooth devices addDeviceScanner: convenience method to register a handler to the scanForDevices extension point Added a supportsAutomaticDetection boolean attribute on braille display drivers. This should be set to True for bdDetect to recognize the driver. Removed the option from the config to enable/disable HID, instead rely on a new excludeDisplays lisst in the config that is populated by the new option in the braille display selection dialog. Note that exclusions are saved, not inclusions. This ensures that new drivers will be opt-out. bdDetect.Detector._queueBgScan has a backwards compatible change for its limitToDevices parameter. When None, it falls back to the list of enabled drivers. When no drivers are disabled, it checks all drivers. Logic from bdDetect.initialize() has been moved to the respective display drivers, calling the replacement methods on the driverRegistrar and omitting the name of the driver in the method call.
Replaces #11270, adding configuration. Fixes #2797. Summary of the issue: Some videos include text which is graphical only with no accompanying verbalization, thus making it inaccessible to screen reader users. OCR is very useful for this purpose. However, having to repeatedly and manually dismiss and recognize is tedious and inefficient. It would be useful if NVDA could do this automatically, reporting new text as it appears. This could be useful for other scenarios as well such as virtual machines and games. Description of how this pull request fixes the issue: When the user performs content recognition (e.g. NVDA+r for Windows 10 OCR), we now periodically (every 1.5 seconds) recognize the same area of the screen again. The result document is updated with the new recognition result, keeping the previous cursor position if possible. The LiveText NVDAObject is used to report any new text that has been added. LiveText honours the report dynamic content changes setting, so turning this off will prevent new text from being spoken. Because the result document is updated, this means braille is updated as well, allowing braille users to see changes as they occur. While Windows 10 OCR is local and relatively fast, other recognizers might not be; e.g. they might be resource intensive or use an internet service. Recognizers can thus specify whether they want to support auto refresh using the allowAutoRefresh attribute, which defaults to False.
Link to issue number: #15046 Summary of the issue: The lack of the ability to quickly switch to tabs complicates navigation Description of user facing changes Users will be able to switch between tabs in web documents, by assigning the appropriate gesture. Description of development approach Added another elif into _searchableAttribsForNodeType method in iaccessible, UIA and mshtml classes. Added quick nav for tab navigation.
…15355) Summary of the issue: The following advanced options are greyed out or not depending if they are applicable: "Volume of NVDA sounds" and "Volume of NVDA sounds follows voice volume". If they are applicable or not depends on other options: "Use WASAPI for audio output" and "Volume of NVDA sounds" respectively. Unfortunately, when pressing the "Restore defaults" button of the advanced panel, the options are reset to there default values, but they are not greyed out / ungreyed accordingly. Description of user facing changes When pressing the restore default button in advanced panel, WASAPI advanced options will now be greyed out or not according to if they are applicable or not. Description of development approach Just call the update function self._onWASAPIChange() when restoring the values.
There are a few issues with the current project documentation: The README is quite long, and focused largely on configuring the developer environment. Instead, it should be a homepage for the various aspects of the project. Detailed information should be split into their own documents. contributing.md is quite long and should be split similarly into the ways one can contribute to NVDA. There is a lot of missing information in terms of how to get started with various ways of contributing. Description of user facing changes README.md is now split into Community information support / getting help getting add-ons Issue reporting General community information Contributing.md is now split into testing translating Issue triage Development Design add-on dev add-on distribution Guides have been updated or added when missing
Follow up to #15337 Summary of the issue: Update CODEOWNERS to cover project documentation. Request a review from our documentation reviewers (Quentin) when modifying relevant project documentation.
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.
Final merge for 2023.3 release, using commit
145a638from master.Changes intended for 2023.3 must now set base/target to the beta branch
Merge not squash