Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 11 Notepad: status bar is not announced #13688

Closed
josephsl opened this issue May 12, 2022 · 1 comment · Fixed by #13690
Closed

Windows 11 Notepad: status bar is not announced #13688

josephsl opened this issue May 12, 2022 · 1 comment · Fixed by #13690
Milestone

Comments

@josephsl
Copy link
Collaborator

josephsl commented May 12, 2022

Hi,

While a bug report would be a better category, this is marked as a feature request due to the background information provided below.

Background

As part of modernizing inbox apps (programs shipping with Windows by default), Notepad was updated on Windows 11 to adopt the new UI changes. In a recent blog post, Microsoft highlighted changes introduced in Notepad.

The new Notepad was introduced to everyone in February 2022. This version (11.2112) did introduce redesigned UI elements and use of rich edit control for document content. However, it had issues, notably screen readers such as NVDA repeating content from the line above when there was a line of text followed by a blank line, then end of the document. This, together with text repetition problem when Enter key is pressed, was resolved in Notepad 11.2203 released in late April.

One issue is not resolved: status bar reading. In Windows 10 Notepad, one can perform status bar command (NVDA+End in desktop layout, NVDA+Shift+End in laptop layout) and status bar text will be announced if enabled from View menu. This is not the case in Windows 11.

Is your feature request related to a problem? Please describe.

Due to UI redesign, NVDA cannot obtain status bar information in Windows 11 Notepad. Further, status bar is located on different UIA tree location (fifth child of the foreground window in 11.2112, eighth child in 11.2203).

Describe the solution you'd like

Implement status bar retrieval method in the new Notepad app module. Due to the fact that newer Notepad includes bug fixes and is generally available to everyone, tree traversal route will folow that of 11.2203 (that is, minimum supported version will be 11.2203 released in April 2022).

Describe alternatives you've considered

Two alternatives:

  1. Leave things as is. This is because Notepad app module is the example app module used in dev docs. Introducing a new Notepad module will require looking for a new simple app to provide examples for developers getting started with app modules. Alternatively, continue using Notepad with a note that for folks using Windows 11, a different app should be used to test app module basics.
  2. Improve api.getStatusBar function to take situations like Windows 11 Notepad into account when fetching status bars.

Additional context

A working example is included in Windows App Essentials add-on which will be the basis of a follow-up pull request.

Thanks.

@josephsl
Copy link
Collaborator Author

josephsl commented May 12, 2022

Hi,

IMPORTANT: this is separate from a request in #13506 asking Notepad menu to be navigable via mouse and/or touch as that request has to do with UI elements, not status bar content.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue May 12, 2022
… 11 that allows NVDA to announce status bar text if shown. Re nvaccess#13688.

Introduce a new Windows 11 Notepad app module (notepad.exe). With the new UI design, status bar cannot be obtained as in prior Notepad releases. Thankfully it is possible to traverse the UIA tree to obtain the status bar object from a specific child element positiion (this is because child elements have the same UIA class name). Also, statsu bar is shown if focused on the document window (rich edit) and enabled from view menu.
josephsl added a commit to josephsl/nvda that referenced this issue May 16, 2022
…ccess#13688.

Advised by Sean Budd (NV Access): add an explanation and a variable about Notepad 11 status bar (look for a specific UIA element (child of the foreground window) that hosts status bar text if visible).
josephsl added a commit to josephsl/nvda that referenced this issue May 16, 2022
…13688.

Advised by Sean Budd (NV Access): add a docstring for status bar retrieval method to highlight:
* The need for this routine
* Needing to check status bar child position whenver Notepad is updated (Windows 11 NOtepad is updated through Microsoft Store as opposed to being tied to a specific Windows release).
josephsl added a commit to josephsl/nvda that referenced this issue May 16, 2022
…access#13688.

Advised by Sean Budd (NV Access): should the app module method fail (and raise NotImplementedError), api.getStatusBar will resort to position lookup, therefore document this aspect.
seanbudd added a commit that referenced this issue May 17, 2022
Fixes #13688

Summary of the issue:
With the redesigned Windows 11 Notepad, users cannot obtain statsu bar information.

Description of how this pull request fixes the issue:
Introduce a new Windows 11 Notepad app module (notepad.exe). With the new UI design, status bar cannot be obtained as in prior Notepad releases. Thankfully it is possible to traverse the UIA tree to obtain the status bar object from a specific child element position (this is because child elements have the same UIA class name). Also, status bar is shown if focused on the document window (rich edit) and enabled from view menu.

* appModules/Notepad (Windows 11): add a new Notepad module for Windows 11 that allows NVDA to announce status bar text if shown. Re #13688.

Introduce a new Windows 11 Notepad app module (notepad.exe). With the new UI design, status bar cannot be obtained as in prior Notepad releases. Thankfully it is possible to traverse the UIA tree to obtain the status bar object from a specific child element positiion (this is because child elements have the same UIA class name). Also, statsu bar is shown if focused on the document window (rich edit) and enabled from view menu.

* appModules/notepad: add an explanation about status bar index. Re #13688.

Advised by Sean Budd (NV Access): add an explanation and a variable about Notepad 11 status bar (look for a specific UIA element (child of the foreground window) that hosts status bar text if visible).

* appModules/notepad: add docstring for status bar method. Re #13688.

Advised by Sean Budd (NV Access): add a docstring for status bar retrieval method to highlight:
* The need for this routine
* Needing to check status bar child position whenver Notepad is updated (Windows 11 NOtepad is updated through Microsoft Store as opposed to being tied to a specific Windows release).

* appModules/notepad: add a note about api.getStatusBar behavior. Re #13688.

Advised by Sean Budd (NV Access): should the app module method fail (and raise NotImplementedError), api.getStatusBar will resort to position lookup, therefore document this aspect.

* update changes

Co-authored-by: Sean Budd <sean@nvaccess.org>
@nvaccessAuto nvaccessAuto added this to the 2022.2 milestone May 17, 2022
seanbudd pushed a commit that referenced this issue Jun 21, 2022
When checking the change log translation, I have found a wrong reference in an item of the change log. I have thus checked all the refs for 2022.2.

Link to issue number:
None
Follow-up of various issues.

Summary of the issue:
Some of the GitHub references in the change log were targetting wrong issue or PR.

Description of user facing changes
The references have been fixed in the change log document.

Description of development approach
Fixed the following references:

Fixup of PR 13082: fix a misspell in DefaultAppArgs and no longer use globalVars.appArgs in a boolean context (#13386) #13386 replaced by Windows 10/11 Calculator: allow NVDA to announce more operations by suppressing only a limited number of keyboard commands #13383
Revert "Update to py2exe 0.11.0.1 (#13066)" #13508 replaced by Windows 11 Design Elements Are Not Reported by NVDA When Mouse Tracking Is On #13506
Fixup of PR 13082: fix a misspell in DefaultAppArgs and no longer use globalVars.appArgs in a boolean context (#13386) #13386 (bis) replaced by Windows 11 Notepad: status bar is not announced #13688
Also, I have replaced #13276 (Libre Office issue) by #13277 (associated PR) since the issue description is not related at all with the change for developers.
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 a pull request may close this issue.

2 participants