useInteractionModality detects JAWS and NVDA as mouse in Chromium
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #10316 de @AKnassa — cerrado sin fusionar
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- react, typescript
- Área
- accessibility, frontend
Línea de trabajo
Comienza en el punto de entrada useInteractionModality de @react-aria/interactions y reproduce el comportamiento informado con JAWS o NVDA en Chrome. Compara los datos del evento con los escenarios del issue en Firefox y VoiceOver, y después verifica que estas interacciones de lectores de pantalla en Chromium se notifiquen como "virtual" sin cambiar los casos que ya son correctos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
JAWS + Firefox
Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string
VoiceOver + Firefox
Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string
VoiceOver + Chrome
Insights: it works correctly. a pointerdown event is not triggered and pointerType is an empty string
🔦 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
- Lenguaje dominante
- TypeScript
- Estrellas
- 16k
- Forks
- 1.6k
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 41
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de adobe/react-spectrum
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 88/100
adobe/react-spectrum#10909 ·
Los mantenedores suelen responder en 1 día
-
DatePicker omits timezone for initially empty fields despite zoned placeholderValuePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
adobe/react-spectrum#10900 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Separator adds a redundant role="separator" to its default <hr>Posiblemente ocupada @Janani-bn la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
adobe/react-spectrum#10894 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
ComboBox with selectionMode="multiple": Cmd/Ctrl+A does nothing while the popover is openPosiblemente ocupada @mangeshraut712 la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
adobe/react-spectrum#10866 ·
Los mantenedores suelen responder en 1 día
-
CheckboxGroup: `validationBehavior="aria"` is ignored by its checkboxes since 1.18Posiblemente ocupada @mangeshraut712 la tomó hace 7 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
adobe/react-spectrum#10856 ·
Los mantenedores suelen responder en 1 día
Todos los issues de adobe/react-spectrum
Issues similares
-
mobile-app
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Open-Locker/Open-Locker#352 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
leanprover-community/lean4game#589 ·
Los mantenedores suelen responder en 2 días
-
Add: CS Action BGAbiertocheck:passed streams:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
unocss/unocss#5421 · 1 comentario ·
Los mantenedores suelen responder en 1 día