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

Microsoft Teams: Menu focused when trying to read a message #11821

Closed
LeonarddeR opened this issue Nov 9, 2020 · 6 comments · Fixed by #11822 or #14363
Closed

Microsoft Teams: Menu focused when trying to read a message #11821

LeonarddeR opened this issue Nov 9, 2020 · 6 comments · Fixed by #11822 or #14363
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority
Milestone

Comments

@LeonarddeR
Copy link
Collaborator

LeonarddeR commented Nov 9, 2020

Steps to reproduce:

  1. Install most recent Teams
  2. Focus an incoming message in a chat or team channel.

Actual behavior:

NVDA reads the incoming message.

Expected behavior:

NVDA starts reading the incoming message, but this is suppressed by a menu getting focus. This is the menu that allows you to pick a reaction for a message (e.g. like). A focus triggers this menu. It doesn't strictly gain focus, however NVDA"s handling of the menuStart event redirects focus to it.

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

alpha-21324

Windows version:

Windows 10 20H2

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

Microsoft Teams 1.3.00.28779
Builds like 1.3.00.26xxx don't suffer from this.

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

If addons are disabled, is your problem still occuring?

Yes

Did you try to run the COM registry fixing tool in NVDA menu / tools?

N/a

@LeonarddeR
Copy link
Collaborator Author

Relevant logging:

DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (09:52:40.166) - MainThread (15784):
Hook received winEvent: EVENT_OBJECT_SHOW, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (09:52:40.166) - MainThread (15784):
Adding winEvent to limiter: EVENT_OBJECT_SHOW, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (09:52:40.166) - MainThread (15784):
Hook received winEvent: EVENT_SYSTEM_MENUPOPUPSTART, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (09:52:40.166) - MainThread (15784):
Adding winEvent to limiter: EVENT_SYSTEM_MENUPOPUPSTART, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
...
DEBUG - IAccessibleHandler.orderedWinEventLimiter.OrderedWinEventLimiter.flushEvents (09:52:40.191) - MainThread (15784):
Emitting winEvent EVENT_OBJECT_SHOW, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
DEBUG - IAccessibleHandler.orderedWinEventLimiter.OrderedWinEventLimiter.flushEvents (09:52:40.191) - MainThread (15784):
Emitting winEvent EVENT_SYSTEM_MENUPOPUPSTART, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), thread 19832
...
DEBUG - IAccessibleHandler.processMenuStartWinEvent (09:52:40.192) - MainThread (15784):
Processing menuStart winEvent: window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), validFocus False
DEBUG - IAccessibleHandler.winEventToNVDAEvent (09:52:40.192) - MainThread (15784):
Creating NVDA event from winEvent: EVENT_SYSTEM_MENUPOPUPSTART, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams), use cache True
DEBUG - IAccessibleHandler.winEventToNVDAEvent (09:52:40.192) - MainThread (15784):
winEvent mapped to NVDA event: menuStart
DEBUG - IAccessibleHandler.winEventToNVDAEvent (09:52:40.197) - MainThread (15784):
Successfully created NVDA event menuStart for <NVDAObjects.IAccessible.ia2Web.Ia2Web object at 0x06458E30> from winEvent EVENT_SYSTEM_MENUPOPUPSTART, window 1967980 (Chrome_RenderWidgetHostHWND), objectID OBJID_CLIENT, childID -59951, process 2296 (teams)
IO - speech.speak (09:52:40.237) - MainThread (15784):
Speaking ['menu', CancellableSpeech (still valid)]

@LeonarddeR
Copy link
Collaborator Author

Just tested with JAWS, also no issues there. Marking this P2.

@munawarb
Copy link

@LeonarddeR I just downloaded the latest NVDA (2020.4) and this problem is still there.

It's fixed for the message list, but if you @mention someone and then perform a "say line," NVDA reports "blank." It also continues to remain silent when you press Backspace. The only way to fix it is as before: press Tab to get to the "Send" button, then Shift+Tab to get back to the edit field to continue typing your message.

I've also noticed the ghost menu popping back up when in a call and someone does a screen share. NVDA will announce "menu" and you have to press Tab to get it to focus again on whatever control you were on (like the unmute button.)

So, this issue is not resolved.

@LeonarddeR
Copy link
Collaborator Author

I'm afraid for this, either Teams has to fix this properly or we'll have to dive into the core of NVDA with regard to menu popup start events, see #11822 (comment)
It's undoable to fix this on a case by case basis as no doubt there'll be a new version of Teams just after a release of NVDA that introduces another incarnation of this issue.

@gauravahir28
Copy link

gauravahir28 commented Oct 27, 2022

Facing this issue again after the new update of teams!

@Yeldece
Copy link

Yeldece commented Nov 4, 2022

This is still exist.

michaelDCurran added a commit that referenced this issue Nov 10, 2022
…ent handling as Teams keeps changing the layout of problematic menus. See #11821 and #14355.
michaelDCurran added a commit that referenced this issue Nov 12, 2022
…on messages are focused. (#14363)

Fixes #14355
Broadens approach from pr #11822 which was to fix #11821.

Summary of the issue:
When a conversation message is focused in Microsoft Teams (E.g. arrowing up and down a threaded conversation list) Teams displays a reaction menu along side the focused message. As Chromium therefore fires a menu popupStart event, NVDA handles this by faking focus on the menu itself
This behaviour has been historically necessary for win32 context menus that fail to focus the first item in the menu.
However, In Teams this is very disruptive.

Description of user facing changes
NVDA will no longer get stuck in a menu when arrowing up and down threaded conversations in Microsoft Teams.

Description of development approach
Broaden the approach taken in pr #11821 by suppressing handling of menu popupStart for any element in teams with 'menu' in its xml-roles attribute. Previously NVDA would also check for very particular message container classes on the parent's parent. But as Teams keeps moving these, this is no longer managable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority
Projects
None yet
5 participants