用途:该技能提供使用 Adobe React Aria hooks 与 react-stately、并结合 React 19 模式构建无障碍(WCAG 合规)交互 UI 的参考模式。适用于实现按钮、链接、开关、模态对话框、自动完成/组合框、菜单、表格、列表框与选择等组件。
主要能力:
- 可访问按钮与链接:用 useButton 结合 useFocusRing,通过 mergeProps 合并 buttonProps 与 focusProps,统一键盘与指针交互并管理焦点环可见性。
- 模态对话框:用 useDialog、useModalOverlay 与 FocusScope(contain、restoreFocus、autoFocus)管理 ARIA 角色、焦点陷阱与关闭后焦点还原。
- 自动完成/组合框:用 useComboBox、useFilter 与 useComboBoxState 实现过滤、键盘导航与选择播报。
- 菜单、表格、列表框与选择模式,含 roving tabindex。
- 提供 Hook 与组件、焦点管理、虚拟列表、状态管理等关键决策建议,以及反模式清单。
使用方式:以 hooks 组合为主,代码中导入 react-aria、react-stately 等包,按示例绑定 ref 与 props。列表超过约 100 项时建议 useVirtualizer + useListBox;状态优先用 react-stately hooks 而非本地 useState。
限制与注意:不得用带 onClick 的 div 代替交互元素,应使用 useButton 或原生 button;模态不可手动 focus,须用 FocusScope;动态状态更新须加 aria-live;标签须正确关联。若资料未提供某功能的收费、价格、平台或效果,暂未提供。