angular / angular/components

bug(MatTree): MatTree with interactive elements in each row is not keyboard accessible using a screenreader

Ouverte
#22,419 9 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Accessibility area: cdk/tree P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

Reproduction

Use StackBlitz to reproduce your issue:

Steps to reproduce:

  1. Navigate to StackBlitz link above on a Windows machine
  2. Use the keyboard to interact with the tree by tabbing to a node, pressing enter or space to expand it, then tabbing to a nested checkbox and selecting it. Do not use the mouse.
  3. Enable JAWS or NVDA screen reader
  4. Attempt to repeat step 2, using the keyboard to interact with the tree
  5. Manually expand the tree using the mouse then tab through the elements until you get to a nested checkbox. Press space or enter to select the checkbox.

image

Expected Behavior

Enabling a screen reader should not change the behavior when interacting with the tree using a keyboard. With a screen reader enabled, I should be able to expand a row, tab to a nested checkbox, and select the checkbox using only the keyboard.

Actual Behavior

Hitting space or enter appears to send the click event to the first encountered input element, rather than the focused element. In the linked example, this can be either the textbox above the tree or an unfocused checkbox, depending on how you tab through the list. Either way, the focused element doesn't seem to receive the event.

Environment

JAWS v2021.2102.34 / NVDA v2020.4 (reproducible with both)
Windows 10 Enterprise Version
Chrome Version 89.0.4389.114

Also tested with Firefox Version 87.0, but was not able to reproduce on FF

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la reproduction StackBlitz liée et répétez les étapes uniquement au clavier dans Chrome sous Windows avec JAWS ou NVDA. Comparez le comportement avec et sans le lecteur d’écran, notamment avec la case à cocher imbriquée et la zone de texte située au-dessus de l’arbre. La tâche est terminée lorsque l’élément ciblé reçoit Enter ou Space et que l’arbre reste accessible au clavier avec un lecteur d’écran, tout en préservant le comportement signalé dans Firefox.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
accessibility, frontend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.