nvaccess / nvda

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

Thunderbird 115: NVDA fails to read items in some controls with the command to read the current item #15161

Open k-kolev1985 opened 1 year ago

k-kolev1985 commented 1 year ago

Steps to reproduce:

  1. Launch NVDA.
  2. Install and launch Thunderbird 115.
  3. Add at least one e-mail account (with messages present in it) in Thunderbird, so you can browse through folders and messages.
  4. Press F6 a few times, to get to the tree view with the folders.
  5. Use Up/Down arrows to select a folder.
  6. Use NVDA's command to read the current item (e.g. NVDA+Up Arrow in desktop layout).
  7. Press F6 to go to the list of messages for the selected folder.
  8. Use Up/Down arrows to select a message.
  9. Use NVDA's command to read the current item (e.g. NVDA+Up Arrow in desktop layout).

Actual behavior:

Expected behavior:

System configuration

NVDA installed/portable/running from source:

Installed.

NVDA version:

NVDA alpha-28694,c4ca763b, in bulgarian.

Windows version:

Windows 11 Pro version 22H2 (build 22621.1992), 64-bit, in Bulgarian with all locale settings set to "Bulgarian".

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

Thunderbird 115.0.0, 64-bit, in bulgarian.

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.

2023.1 - the result is the sane.

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

Yes, it is.

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

Yes, it does.

Additional information

The tree view with the folders and the list of messages are only two examples - the issue is reproducible in the tree view and list view in the address book of Thunderbird and maybe in other similar controls as well.

amirsol81 commented 1 year ago

Also duplicable with Thunderbird 116 Beta 3.

jscholes commented 1 year ago

Possibly related to https://github.com/nvaccess/nvda/issues/15159.

Qchristensen commented 1 year ago

Two workarounds in the meantime for this:

1) Press NVDA+numpad 5 (laptop: NVDA+shift+o). This reports the current object - As long as you have object navigation set to follow focus this will work (and anyone reading this not sure what that is - you probably don't need to worry as you likely haven't changed it from the default)

2) Move focus off the current item and back - eg down arrow then up arrow probably works best. Other commands such as tab then shift tab, or alt twice will also do it, but as they move the focus out of the message list, they will also report that as well.

Adriani90 commented 1 year ago

Yeah it seems this navigation as requested in the issue description works only for child objects but not for parent objects. So on the parent object for a message for example, all columns are sumarized but not read by NVDA. On the child level of a message element in the message list, you can navigate column by column (with object navigation). So it seems something is broken on the parent object level.

cc: @emitche did you expose the object information to the accessibility API also on a parent object level?

This might also be related to the problem in #15162.

emitche commented 1 year ago

Yeah it seems this navigation as requested in the issue description works only for child objects but not for parent objects. So on the parent object for a message for example, all columns are sumarized but not read by NVDA. On the child level of a message element in the message list, you can navigate column by column (with object navigation). So it seems something is broken on the parent object level.

cc: @emitche did you expose the object information to the accessibility API also on a parent object level?

This might also be related to the problem in #15162.

I will investigate this. Thank you for this information.

thgcode commented 10 months ago

I was searching a solution for this problem and I think it seems a bug on the implementation of IAccessible 2 Text Object interface. For web controls NVDA tries to get the name from the IAccessibleTextObject, but if you try to get the text from it for example on the Python console, you will get:

>>> focus.IAccessibleTextObject.text(0, focus.IAccessibleTextObject.nCharacters)
'        '

However, it is not a space, it seems to return strange characters:

>>> focus.IAccessibleTextObject.text(0, focus.IAccessibleTextObject.nCharacters).encode()
b'\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc'

In this case, the focus variable points to a message object on the messages list. A temporary solution I thought is if NVDA detects these characters, it falls back to NVDAObjectTextInfo so it gets the text from the name of the control, but if the IAccessibleTextObject could be fixed it would be nice as it could solve this problem not only for Thunderbird but also for other applications that use the IAccessibleTextObject.

Adriani90 commented 10 months ago

cc: @michaelDCurran

Adriani90 commented 1 month ago

This is what I get in the log when trying to review a parent object with the review cursor:

IO - inputCore.InputManager.executeGesture (14:42:36.028) - winInputHook (23632):
Input: kb(laptop):NVDA+rightArrow
DEBUGWARNING - NVDAObjects.IAccessible.normalizeIA2TextFormatField (14:42:36.030) - MainThread (23432):
Unsupported value for text-align attribute: "start"
IO - speech.speech.speak (14:42:36.030) - MainThread (23432):
Speaking [CharacterModeCommand(True), ' ', EndUtteranceCommand()]
IO - inputCore.InputManager.executeGesture (14:42:36.188) - winInputHook (23632):
Input: kb(laptop):NVDA+rightArrow
DEBUGWARNING - NVDAObjects.IAccessible.normalizeIA2TextFormatField (14:42:36.190) - MainThread (23432):
Unsupported value for text-align attribute: "start"
IO - speech.speech.speak (14:42:36.191) - MainThread (23432):
Speaking [CharacterModeCommand(True), ' ', EndUtteranceCommand()]

In this casee, NVDA is silent on every character when pressing nvda+left or right arrow.

Tested with NVDA 2024.4 Beta and Thunderbird 128.2.0. @LeonarddeR maybe you have some advice on this one.