Conversation
…IA element (#13723) Fixes a possible regression from #13691 Follow-up to #13506 Fixes #13717 Summary of the issue: On some Windows 11 systems, Start button is seen as IAccessible object rather than UIA element. This causes IAccessible handler to report attribute error when handling events as an attribute is not present in UIA elements. Description of how this pull request fixes the issue: On the surface, Start button window class name (Start) should be classified as a bad UIA window. However, when handling events from UIA handler thread, good UIA windows are checked before looking for bad UIA window class names. Because File Explorer's good UIA window method checks for the root element (the element being the ancestor of Start button), bad UIA window class name will not et a chance to detect IAccessible Start button. Therefore edit good UIA window method instead by checking for the specific class name in Windows 11. Testing strategy: Manual testing: Prerequisites: Windows 11 Version 21H2 or later (test systems are running Version 22H2 preview (build 22621 beta): Run a build from this branch. Press Windows+D to show Desktop. Press Tab to move through shell elements such as Start button, Task View button, Taskbar, notification area, and back to Desktop. While performing step 3, make sure NVDA is saying something. For detailed debug output, enable IAccessible and UIA debugging from Advanced settings panel, restart NVDA with debug logging enabled, then perform steps 2 through 4 from aboveabove. Then open the log and see what IAccessible and UIA handlers are saying about focus events. * appModules/explorer: do not treat IAccessible Start button class as UIA window. Re #13717. Reported by a user: on some systems, Windows 11 Start button is seen as IAccessible (MSAA), not UIA, causing IAccessible handler to report AttributeError since event ID could not be found in UIA objects. Therefore in File Explorer app module, do not treat IAccessible Start button (window class name: Start) as UIA element. * appModules/explorer: combine Start button IAccessible object class check with other class name checks. Re #13717. Tip from Sean Budd (NV Access): move Start button class name check to the parent boolean - that is, package Windows 11 + shel elements + excluding IAccessible Start button under 'logical and' check.
Summary of the issue: When activating Highlight of navigator object, the highlighting rectangle does not show up. It only shows up when the navigator object is moved for the first time. If the highlight of nav object is previously disabled, the issue occurs for all the four following types of activation: When checking the corresponding checkbox in the vision parameters When you reload NVDA's saved config provided that highlighter is enabled in NVDA's saved config. When activating with a gesture a profile containing nav object highlight enabled When NVDA starts up if the default config has nav object highlight enabled Description of how this pull request fixes the issue: Checks nav object initialization when the providers are initialized. Prior to this PR, only the focus initialization was checked (and the caret thanks to it).
…, allow panning after review commands (#13718) Fixes #8682 Fixes #11519 Summary of the issue: #8682: when using the read_currentLine, read_currentWord, and read_currentCharacter commands after the caret has been moved, it is impossible to pan the Braille display through the displayed content. #11519: when moving the mouse with Mouse Tracking on (default) and Braille Tether set to Auto (default), using read_currentLine, read_currentWord, and read_currentCharacter speaks content under the mouse, but does not update the Braille display with the spoken content. Description of how this pull request fixes the issue: These three global review functions all call braille.handler.setTether early in their processing. braille.handler.setTether clears the display buffer, making it impossible to scroll through the displayed content. braille.handler.setTether also does not update the display, causing the problems discussed in #11519 -- tether flags are set properly, but the display does not change. A simple call to braille.handler.handleReviewMove in all three cases solves both of these issues.
… position information (#13744) Fixes #9184 and fixes #9728 Summary of the issue: A number of features in Java Access Bridge were not working optimally. 1. Various commands like read window and read window title were not working when Java applications have multiple windows. (#9184) 2. Toggle buttons were not read correctly. (#9728) 3. Unnecessary spaces when HTML tags removed from Java controls. (#9728) 4. Provide position information for Java tab controls. (#9728) Description of how this pull request fixes the issue: 1. According to Java documentation* when getAccessibleIndexInParent returns -1 there is no parent. So in NVDA if indexInParent is None we should treat it as if parent is not set. 2. Java toggle buttons use the checked state for pressed, correctly map this. The value should be ignored for a toggle button. 3. Updated the regular expression processing for HTML tags to check if the tags are at the start or end or have surrounding whitespace, in which case the tag is stripped. If there is only non-whitespace characters around the tag then replace the tag with a space to prevent words being joined. 4. For Java controls with Role.TAB use indexInParent and parent.childCount to find the position information. * https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/accessibility/AccessibleContext.html#getAccessibleIndexInParent()
…tire code base. (#13646) Summary of the issue: Process ID of NVDA is retrieved and used inconsistently in the code base: In appModuleHandler we're storing it as a module level variable when initializing, however it is also pointlessly reinitialized when user re-initializes appModules - this makes no sense as process ID is constant during NVDA's life time. Most modules retrieve it by calling os.getpid In some cases win32 function GetCurrentProcessId is used directly. Description of how this pull request fixes the issue: NVDA process ID is stored in globalVars when NVDA starts - all usages of os.getpid and GetCurrentProcessId now use the new variable. Since appModuleHandler.NVDAProcessID is gone appropriate backward compatibility solution for add-ons has been implemented.
### Summary of the issue: Liblouis 3.22.0 has been released. ### Description of how this pull request fixes the issue: Updates liblouis to 3.22.0. Changelog: https://github.com/liblouis/liblouis/releases/tag/v3.22.0 ### Testing strategy: Ran from sources and loaded the new braille table. Works as it should.
…t required (#13761) Fixes #13659, #13735 Summary of the issue: Certain applications don't provide a column order array. For the case of single column list views, a column order array is unnecessary, as a default mapping can be assumed. Description of how this pull request fixes the issue: For single column list views, map the first column in the UX, to the first column index: i.e. [0] is the column order array. When fetching from a multi column list view, log an error if the column order array is unknown.
Closes #13727 Summary of the issue: eSpeak fails to perform automatic language switching for a common language codes "en", "fr", Reported to eSpeak project: espeak-ng/espeak-ng#1200 A PR has been opened against eSpeak to fix this: espeak-ng/espeak-ng#1211 Description of how this pull request fixes the issue: Creates a dictionary of aliases for language codes without locale, which map to appropriate supported languages with locale. This may need to be added to over time as appropriate. Integration tests have been added to ensure this list is comprehensive when we update eSpeak. When eSpeak is unaware of a language code, the new behaviour is to: • check for a default, if not then • check for the language stripped of the dialect locale, if not then • check for any matching language (regardless of dialect, e.g 'en-au' to 'en-us'), if not then • ignore the language change
Fixes #13732 Summary of the issue: OneCore keeps a cache of voices for NVDA in the registry. OneCore fails to automatic language switch when remnants of a previously installed OneCore language exist in the cache. This causes speech to not be announced. This is only an issue for installed copies, as portable copies bypass the NVDA OneCore cache. Description of how this pull request fixes the issue: Drop the language change command if a given language is unsupported by OneCore.
feerrenrut
approved these changes
Jun 10, 2022
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.
Branching at commit 4eb30c9
Note must be a merge commit not squash merge