patternfly / patternfly/patternfly-react

Menu: MenuFooter children excluded from arrow-key navigation

Aperta
#12,614 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
TypeScript
Stelle
862
Fork
392
Merge medio
4g 8h
PR unite (30g)
9

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia individuando le implementazioni dei componenti Menu e MenuFooter e i relativi test di navigazione da tastiera, quindi riproduci il comportamento segnalato con elementi MenuItem e un Button nel footer. Traccia il modo in cui vengono raccolti gli elementi con roving tabindex. Il lavoro è completato quando i children del footer partecipano alla navigazione con i tasti freccia e i test coprono la sequenza prevista.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
react, typescript
Ambito
accessibility, frontend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
64/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.