Skip to content

useInteractionModality detects JAWS and NVDA as mouse in Chromium #10310

Description

@jesusgalhub

Provide a general summary of the issue here

Scenario: useInteractionModality reports "mouse" when screen reader user interacts
GIVEN a user has started their screenreader (JAWS or NVDA) and a chromium browser (Chrome)
WHEN the user interacts with the page clicking a button
THEN the hook useInteractionModality reports the modality as "mouse"

🤔 Expected Behavior?

JAWS/NVDA + Chromium interactions are detected as virtual

😯 Current Behavior

JAWS/NVDA + Chromium interactions are detected as mouse

💁 Possible Solution

We created a very simple 'codepen' to log the event information for every browser and screen reader, to check if there is any difference in terms of the received information.
https://es-d-95332884020260709-019f3c39-f927-7d3c-823e-4328eff26b40.codepen.dev/

We detected that the combination JAWS/NVDA + Chrome throws a clickevent and a pointerdown event after interacting with a button by pressing Enter. In addition, we receive pointerType as mouse.

JAWS/NVDA + Firefox and VoiceOver does not trigger a pointerdown event and the pointerType comes as an empty string, so we can detect the device is assistive technology.

We need another type of check for failing combinations to evaluate them as virtual interactions.


Test scenario

1- Navigate to https://codepen.io/editor/jesusgonzaleza/pen/019f3c39-f927-7d3c-823e-4328eff26b40
2- Start your screen reader
3- Interact with the "Simulate click" button
4- Check the reported data from the event

JAWS + Chrome

Insights: a pointerdown event is triggered and pointerType is mouse
Image

JAWS + Firefox

Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string

Image

VoiceOver + Firefox

Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string

Image

VoiceOver + Chrome

Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string

Image

🔦 Context

We detect if a user is a screen reader user in a SPA. In that case, we focus the title of the page in certain navigations so they are aware of changes.
We use useInteractionModality from @react-aria/interactions for some other component related complex accessibility logics.

🖥️ Steps to Reproduce

1- Start JAWS
2- Open Chrome
3- Interact with any button using the screen reader
4- Modality is reported as mouse

Version

3.28.1

What browsers are you seeing the problem on?

Chrome

If other, please specify.

No response

What operating system are you using?

Windows

🧢 Your Company/Team

No response

🕷 Tracking Issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions