Windows 11/input experience window: recognize IME interface#14836
Merged
Conversation
… Re nvaccess#14509. Windows 11 IME candiate's parent window has AutomationId of 'TEMPLATE_PART_CandidatePanel' and items underneath it wil be reocnigzed as IME candidate items.
…access#14509. If UI Automation Id is 'TEMPLATE_PART_CandidatePanel' or 'IME_Prediction_Window' and role is either a list or a pop-up menu, reocgnize this as Windows 11 IME user interface.
…s 11. Windows 11 raises focus event when IME candidate receives system focus, and without turning off element selected event, it will result in NVDA announcing candidate items twice. Therefore return early if IME candidate item raises element selected event while running Windows 11.
…ate item in Windows 11. Unlike Windows 10, Windows 11 IME window adds an extra element when descending IME window hierarchy, therefore descend one more level to handle IME candidate item and UIA eement selected event coming from it.
Collaborator
|
cc: @cary-rowen |
Contributor
|
I tested this and it looks good so far, I'll keep an eye on it. |
seanbudd
approved these changes
Apr 18, 2023
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.
Link to issue number:
Closes #14509
Summary of the issue:
NVDA does not recognize Windows 11 IME interface, or if it does, announces candidate items multiple times.
Description of user facing changes
NVDA will recognize and announce Windows 11 IME candidate items used when entering text in languages such as Chinese, Japanese, Korean, and other languages through use of input method editors (IME).
Description of development approach
Three changes to modern keyboard app module:
For the third change, feedback from people speaking and typing Chinese, Japanese, and Korean would be helpful (this PR was based on Korean nput but could be expanded to cover Chinese, Japanese, and perhaps other languages in the future, either part of this pull request (unlikely) or in future PR's).
Testing strategy:
Manual testing (prerequisite: CJK input method editors must be instaled):
On Windows 11, install IME for languages such as Chinse, Japanese, or Korean. Then open a text field such as Notepad document, switch input language to one of these languages (Windows+Space), then:
Known issues with pull request:
Feedback from speakers of various languages and users of IME's would be helpful in refining this PR as this implementation is limited to CJK IME at this time.
Change log entries:
If adopted and tested after receiving feedback:
Bug fixes:
Under Windows 11 fixes section:
NVDA will once again announce candidate items when entering text in languages such as Chinese and Japanese. (#14509)
Code Review Checklist:
Additional context:
This PR comes from code found in Windows App Essentials add-on, with the fixed described included in the add-on since late 2021.