patternfly / patternfly/patternfly-react
Menu: MenuFooter children excluded from arrow-key navigation
还没有人认领这个 Issue。
- 主要语言
- TypeScript
- 星标
- 862
- 派生
- 392
- 平均合并
- 4 天 8 小时
- 30 天内合并 PR
- 9
描述
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
- Create a
Menuwith severalMenuItementries and aMenuFootercontaining aButton - Open the menu and use arrow keys to navigate
- Observe that arrow keys cycle through
MenuItementries but never reach theMenuFooterbutton - The
MenuFooterbutton is only reachable viaTab, 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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先定位 Menu 和 MenuFooter 组件的实现及其键盘导航测试,然后使用 MenuItem 条目和一个 footer Button 重现报告的行为。跟踪如何收集 roving tabindex 项。完成标准是 footer 子项参与方向键导航,并且测试覆盖预期的顺序。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- react, typescript
- 领域
- accessibility, frontend
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 64/100