Support Outlook Date picker control in Outlook advanced Search dialog#14280
Merged
Conversation
…k 2016+ / Windows 10+. Allows better support for date picker controls and other modern richEdit controls in Outlook.
See test results for failed build of commit 1d2989912d |
See test results for failed build of commit 518f510638 |
See test results for failed build of commit 518f510638 |
seanbudd
approved these changes
Oct 23, 2022
6 tasks
michaelDCurran
added a commit
that referenced
this pull request
Apr 19, 2023
…d above (#14839) Found when investigating #5221 Fixes #6871 Fixes #11512 Though both of these issues had already been avoided in Outlook 2016+ by #14280 Summary of the issue: When arrowing through a password in the password field in the Protect Sheet dialog in Microsoft Excel (alt h o p), NVDA produces an error and says nothing. Similarly, when tabbing to that control and the cursor is already on a password character, NVDA produces an error and the focus is not announced at all. Description of user facing changes NVDA no longer fails to announce the focus when tabbing to the password field in Excel's Protect sheet dialog. Description of development approach 1. In the ITextDocument TextInfo's text property: catch COMError when calling range.text. This can occur when the edit control is protected. Just log a debugWarning and return the empty string - there is nothing else we can do about this error. This allows NVDA to announce the focus without an error. And when arrowing through the characters, 'blank' will be spoken rather than an error, which is better than nothing. 2. In the appModule for Excel: treat RICHEDIT60W windows as having a good UI automation implementation if on Windows 10 or higher and Office 2016 or higher. Office 2016 on Win 10+ has a very good UI automation implementation for RICHEDIT60W, which includes being able to fetch 'circle' characters when arrowing through a password. So in summary, on Office 2016 win10+ the error is gone and NvDA can announce 'circle' when arrowing through password characters in the Protect sheet dialog. On older versions of Office / Windows, the error is gone, though NVDA will announce 'blank' when arrowing through password characters.
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:
Fixes #12726
Summary of the issue:
When focusing date picker controls in Microsoft Outlook's Advanced Search dialog, NVDA announces no label or value for the control, instead just announcing "edit blank".
NVDA currently accesses these RICHEDIT60W controls with MSAA / the RichEdit API. However, it seems that the UI Automation implementation is much richer, though for some reason these windows do not themselves report as having a UIA implementation (I.e. HasServersideProvider returns false).
Description of user facing changes
When focusing date picker controls in Microsoft Outlook's advanced search dialog, e.g. the date Received field, NVDA now reports the appropriate label and value of the control.
Description of development approach
In Outlook appModule's isGoodUIAWindow method, mark RICHEDIT60W windows as having a good UI Automation implementation in Outlook 2016+ / Windows 10+.
Testing strategy:
In Outlook 365 on Windows 11, open the Outlook Advanced search dialog by pressing control+e and tabbing to the Advanced search button and pressing enter, then tabbing 5 or so times to the Received date field, and ensuring that the label, and value if filled, is announced for the control. Note to fill the field, press downArrow to make the date picker appear and choose a date.
Known issues with pull request:
None known.
Change log entries:
New features
Changes
Bug fixes
For Developers
Code Review Checklist: