patternfly / patternfly/patternfly-react

Menu: MenuFooter children excluded from arrow-key navigation

Abierto
#12,614 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
TypeScript
Estrellas
862
Forks
392
Merge medio
4 d 8 h
PR fusionados (30 d)
9

Descripción

Description

Children placed inside MenuFooter (e.g., a "Browse" button) are excluded from the Menu component's roving tabindex arrow-key navigation. Users can Tab to reach MenuFooter items, but arrow keys skip over them entirely.

This breaks the expected keyboard pattern where all interactive items within a menu are reachable via arrow keys.

WCAG Impact

  • 2.1.1 Keyboard — All interactive elements within the menu should be reachable via the menu's keyboard navigation pattern (arrow keys)

Steps to Reproduce

  1. Create a Menu with several MenuItem entries and a MenuFooter containing a Button
  2. Open the menu and use arrow keys to navigate
  3. Observe that arrow keys cycle through MenuItem entries but never reach the MenuFooter button
  4. The MenuFooter button is only reachable via Tab, which exits the menu's roving tabindex pattern

Expected Behavior

Arrow-key navigation should include MenuFooter children as the last item(s) in the navigation sequence, or there should be an opt-in mechanism to include footer actions in the roving tabindex.

Context

We use MenuFooter to place a "Browse" action inside select dropdowns (e.g., PageFormAsyncSingleSelect in ansible/ansible-ui). Keyboard users cannot reach the Browse button via arrow keys, only via Tab — which is inconsistent with the rest of the menu's keyboard model.


Jira Issue: PF-4544

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza localizando las implementaciones de los componentes Menu y MenuFooter y sus pruebas de navegación con teclado; después, reproduce el comportamiento informado con entradas MenuItem y un Button en el footer. Sigue el proceso de recopilación de los elementos con roving tabindex. El trabajo estará terminado cuando los elementos hijos del footer participen en la navegación con las teclas de flecha y las pruebas cubran la secuencia esperada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
react, typescript
Área
accessibility, frontend
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
64/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.