nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.1k stars 634 forks source link

During testing of LibreOffice 24.8.1.2 with NVDA alpha-34118, an error occurs when filling out the form using Microsoft Pinyin #17198

Closed dpy013 closed 1 month ago

dpy013 commented 1 month ago

Steps to reproduce:

First open LibreOffice 24.8, then open the Calc spreadsheet module, Then use the left and right arrow keys to browse to a cell, press f2 to fill in the use of Chinese, this time NVDA will issue an error tone

Actual behavior:

sound an error tone

Expected behavior:

Completing the form normally without an error tone

NVDA logs, crash dumps and other attachments:

nvda-Calc.log

System configuration

NVDA installed/portable/running from source:

Portable and install

NVDA version:

alpha-34118

Windows version:

Windows version: Windows 10 22H2 (10.0.19045) workstation AMD64

Name and version of other software in use when reproducing the issue:

LibreOffice 24.8 latest

Other information about your system:

none

Other questions

Does the issue still occur after restarting your computer?

yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

yes Also tested the installed version of alpha-34118, the error is the same as the portable version

If NVDA add-ons are disabled, is your problem still occurring?

yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

yes

Adriani90 commented 1 month ago

Cc: @michaelweghorn

michaelweghorn commented 1 month ago

I currently cannot reproduce this with current development versions of both, LibreOffice and NVDA.

First open LibreOffice 24.8, then open the Calc spreadsheet module, Then use the left and right arrow keys to browse to a cell, press f2 to fill in the use of Chinese, this time NVDA will issue an error tone

The title of the issue mentions Microsoft Pinyin and you mention the use of Chinese, both of which I'm not familiar with, so maybe it's related to a different setup.

@dpy013 Can you please describe in more detail how to set up the use of Chinese and how you're typing/inserting Chinese characters, and which ones?

I've quickly tried to set up "Chinese (Simplified, China)" with "Microsoft Pinyin" for input following the description at https://answers.microsoft.com/en-us/windows/forum/all/chinese-pinyin-input/ec028f92-8782-4b8c-9988-d4842fbbc9a2 , but don't get any NVDA errors when typing in Calc.

For reference, this is a screencast of me trying to reproduce the issue. Maybe a sighted user can spot what's different in my setup or attempt to reproduce?

https://github.com/user-attachments/assets/a78f471e-4991-49d5-9629-5c530a2dd124

LibreOffice version: Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: b4289da0b4074a219aec899814378c71952e934a CPU threads: 12; OS: Windows 10 X86_64 (10.0 build 19045); UI render: default; VCL: win Locale: en-US (en_DE); UI: en-US Calc: threaded

NVDA master self-built from commit 05eb87a0d53f342cec4b62c6f39fbdf6ff313c8f

michaelweghorn commented 1 month ago

@dpy013 Another question: Is this a regression, i.e. did it work without an error in earlier versions of LibreOffice and/or NVDA? (If so: What are versions that are known to work?)

dpy013 commented 1 month ago

hi @michaelweghorn I only used the latest version of the NVDA development board for testing and did not use any other version for testing. Also in the Simplified Chinese language there are two Microsoft Pinyin. One is the old version and the other is the new version. I only used the old version of Microsoft Pinyin to test libre office. This is an oversight on my part. I will test the new version of Microsoft Pinyin. Here is how to switch between the old and new versions of Microsoft Pinyin: First press windows+i to open settings, Then press the left and right arrows to find the time and language and press enter, At this point press tab to switch to the list, use the up and down arrows to navigate to the language and press enter, Then use tab to find the language: List Chinese (Simplified, Chinese) - Language Pack installed; Text-to-Speech Converter installed; Speech Recognition installed; Handwriting Input installed; Basic Typing Tool with available spell checker and dictionary installed. Not selected Collapsed Move the up and down arrows, and press enter to select Simplified Chinese, tab key to navigate to the options, then enter, At this point continue to use tab to navigate to the List Microsoft Pinyin Input Method Not selected Collapsed Continue to use the up and down arrows to move a bit, select the item in the list, and press enter. At this point continue using the tab key to navigate to the options press enter At this point continue using the tab key to navigate to. General Pinyin Style, Default Mode, Fuzzy Pinyin Rule Press the space bar to re-select him, Finally, use the tab key to navigate to Compatibility Use previous version of Microsoft Pinyin Input Method button. Checking this button is to use the old version of Microsoft Pinyin, unchecking it is to use the new version of Microsoft Pinyin.

dpy013 commented 1 month ago

Here is the version info for my libre office: Version: 24.8.1.2 (X86_64) / LibreOffice Community Build ID: 87fa9aec1a63e70835390b81c40bb8993f1d4ff6 CPU threads: 8; OS: Windows 10 X86_64 (10.0 build 19045); UI render: Skia/Vulkan; VCL: win Locale: zh-CN (zh_CN); UI: zh-CN Calc: CL threaded

cary-rowen commented 1 month ago

@dpy013 I don't think you answered the key question posed by @michaelweghorn, which is whether this is a regression behavior and you should test more thoroughly using new and older versions of libreOffice and NVDA, thank you.

michaelweghorn commented 1 month ago

@dpy013 Thanks for the detailed description. I can reproduce the issue when I enable the compatibility option as described.

I've submitted pull request #17212 for a suggested fix.

I was first working on a fix in the LibreOffice-specific app module, and am attaching the local commit I had for reference: 0001-soffice-Don-t-create-TextInfo-for-unrelated-focus-ob.patch.txt

However, thinking about it some more, my current understanding is that this is conceptually not a LibreOffice-specific problem, therefore I've implemented a different approach and submitted that in the PR.

dpy013 commented 1 month ago

Used NVDA pr17212-34138 + oneCore to do the test. It's still showing the error. Here are the exact test logs: nvda.log

dpy013 commented 1 month ago

Also, I wonder why? Using the latest version of libre office 24.8.1.2 Using the up, down, left and right arrow keys in the table module does not allow me to navigate the rows, columns and cells of the table anymore. The following NVDA versions were used for testing: NVDA2024.4 beta4、 nvda_snapshot_pr17212-34138、 and nvda alpha-34133

michaelweghorn commented 1 month ago

Used NVDA pr17212-34138 + oneCore to do the test. It's still showing the error. Here are the exact test logs: nvda.log

That's a different error now. The previous one was also reproducible in Writer or when just typing "e" twice in Calc, which works fine for me now.

However, when writing more and moving around the sheet, I can reproduce the error seen in your new log as well. That would need further analysis.

@dpy013 Is there are particular reason why you're using the old version of Microsoft Pinyin? It might be that the old version itself has issues, e.g. doesn't send proper accessibility events.

Unless there's a particular reason for not switching to the new version, I'm wondering whether that might be the best way forward?

michaelweghorn commented 1 month ago

Also, I wonder why? Using the latest version of libre office 24.8.1.2 Using the up, down, left and right arrow keys in the table module does not allow me to navigate the rows, columns and cells of the table anymore.

I can't reproduce that. What are the exact steps to reproduce? Does this happen only when the IME popup is active or a cell is in edit mode or also when just trying to navigate without editing anything?

Since your initial report mentions:

Then use the left and right arrow keys to browse to a cell

, I'm wondering whether anything has changed since then. Did this still work when you were reporting your initial issue?

dpy013 commented 1 month ago

Also, I wonder why? Using the latest version of libre office 24.8.1.2 Using the up, down, left and right arrow keys in the table module does not allow me to navigate the rows, columns and cells of the table anymore.

I can't reproduce that. What are the exact steps to reproduce? Does this happen only when the IME popup is active or a cell is in edit mode or also when just trying to navigate without editing anything?

Since your initial report mentions:

Then use the left and right arrow keys to browse to a cell

, I'm wondering whether anything has changed since then. Did this still work when you were reporting your initial issue?

hi @michaelweghorn Thank you for your work. I will continue to investigate this issue and open a new one to describe him specifically.

dpy013 commented 1 month ago

Used NVDA pr17212-34138 + oneCore to do the test. It's still showing the error. Here are the exact test logs: nvda.log

That's a different error now. The previous one was also reproducible in Writer or when just typing "e" twice in Calc, which works fine for me now.

However, when writing more and moving around the sheet, I can reproduce the error seen in your new log as well. That would need further analysis.

@dpy013 Is there are particular reason why you're using the old version of Microsoft Pinyin? It might be that the old version itself has issues, e.g. doesn't send proper accessibility events.

Unless there's a particular reason for not switching to the new version, I'm wondering whether that might be the best way forward? hi @michaelweghorn I will be using the new version of Microsoft Pinyin. The reason for not using Microsoft Pinyin is that I personally have multiple screen readers on my computer.

dpy013 commented 1 month ago

I tested the form in libre office using pr17212-34139. It is still reporting errors, here is the changelog: nvda.log

michaelweghorn commented 1 month ago

I will be using the new version of Microsoft Pinyin. The reason for not using Microsoft Pinyin is that I personally have multiple screen readers on my computer.

@dpy013 Do you mean the reason for not using the new version of Microsoft Pinyin or actually for not using Microsoft Pinyin at all? Is there a difference between using the current and the new version of Microsoft Pinyin when it comes to screen reader accessibility that would make using the new version less desirable than the old one?

I tested the form in libre office using pr17212-34139. It is still reporting errors, here is the changelog: nvda.log

Is that with the new version of Microsoft Pinyin or still with the older one? (In case of the latter, that's expected, as the only update in PR #17212 was to the changelog + PR description, to clarify that it fixes the Writer use case only by itself.)

As mentioned earlier, I can reproduce the errors with the old Microsoft Pinyin version, but not the new one.

dpy013 commented 1 month ago

I will be using the new version of Microsoft Pinyin. The reason for not using Microsoft Pinyin is that I personally have multiple screen readers on my computer.

@dpy013 Do you mean the reason for not using the new version of Microsoft Pinyin or actually for not using Microsoft Pinyin at all? Is there a difference between using the current and the new version of Microsoft Pinyin when it comes to screen reader accessibility that would make using the new version less desirable than the old one? It's not that I don't use Microsoft Pinyin, I'll be moving to a newer version of Microsoft Pinyin for everyday use. As for the difference in use between the two versions. In my case it's the difference in typing stability. The old version of Microsoft Pinyin is more stable than the new one. So I have been using the old version of Microsoft Pinyin.

I tested the form in libre office using pr17212-34139. It is still reporting errors, here is the changelog: nvda.log

Is that with the new version of Microsoft Pinyin or still with the older one? (In case of the latter, that's expected, as the only update in PR #17212 was to the changelog + PR description, to clarify that it fixes the Writer use case only by itself.) Are you having hardships fixing the Writer and Calc modules? If so, you can split it into two pr's or problems. Also, I will not be using the old version of Microsoft Pinyin. I will switch to the new version of Microsoft Pinyin.

As mentioned earlier, I can reproduce the errors with the old Microsoft Pinyin version, but not the new one. Thank you again for your patience in responding and for your work.

cary-rowen commented 1 month ago

@dpy013 I guess there is some confusion here, can you avoid mentioning things that are not relevant to the question? The only connection between you having multiple screen readers installed and you using an older version of Microsoft Pinyin is the difference in compatibility of different screen readers with Microsoft Pinyin.

You wrote:

In my case it's the difference in typing stability. The old version of Microsoft Pinyin is more stable than the new one.

Sorry, it seems like it's just a matter of personal preference.

michaelweghorn commented 1 month ago

Are you having hardships fixing the Writer and Calc modules? If so, you can split it into two pr's or problems. Also, I will not be using the old version of Microsoft Pinyin. I will switch to the new version of Microsoft Pinyin. As mentioned earlier, I can reproduce the errors with the old Microsoft Pinyin version, but not the new one.

It's not yet clear to me at this point what exactly the underlying problem(s) when using the old Microsoft Pinyin with Calc are. (Writer works for me with my initial fix in place, Calc triggers errors when switching between sheets, i.e. focus events are involved in addition to caret change events.) In order to address/fix these properly (rather than just adding workarounds to avoid the errors becoming noticeable to the user), that would need further analysis, which takes time that I don't really have at the moment.

Further analysis might possibly even reveal accessibility problems in the old version of Microsoft Pinyin which we cannot fix, in which case the only real solution would be to switch to the new version anyway.

There might still be underlying issues in NVDA and or LibreOffice, but since it works with the newer version of Microsoft Pinyin and you mention that you plan to switch to that one at some point: Can this issue be closed altogether?

dpy013 commented 1 month ago

Are you having hardships fixing the Writer and Calc modules? If so, you can split it into two pr's or problems. Also, I will not be using the old version of Microsoft Pinyin. I will switch to the new version of Microsoft Pinyin. As mentioned earlier, I can reproduce the errors with the old Microsoft Pinyin version, but not the new one.

It's not yet clear to me at this point what exactly the underlying problem(s) when using the old Microsoft Pinyin with Calc are. (Writer works for me with my initial fix in place, Calc triggers errors when switching between sheets, i.e. focus events are involved in addition to caret change events.) In order to address/fix these properly (rather than just adding workarounds to avoid the errors becoming noticeable to the user), that would need further analysis, which takes time that I don't really have at the moment.

Further analysis might possibly even reveal accessibility problems in the old version of Microsoft Pinyin which we cannot fix, in which case the only real solution would be to switch to the new version anyway.

There might still be underlying issues in NVDA and or LibreOffice, but since it works with the newer version of Microsoft Pinyin and you mention that you plan to switch to that one at some point: Can this issue be closed altogether? Agree with your suggestions and solutions

michaelweghorn commented 1 month ago

Agree with your suggestions and solutions

@dpy013 Great, thanks. Can you (as the reporter) or somebody else with sufficient privileges please close this issue?