Toolbar工具栏
把一组相关的控件收成一条:整条只占一个 Tab 停靠点,方向键在控件之间移动。放不下时沿主轴原生滚动。里面放按钮、开关按钮、分隔线、Spacer 都可以。
示例
横向
先 ⇥ 进入工具栏,再按 → ← 移动,Home / End 到两端。再按一次 ⇥ 直接离开。
工具栏只占一个 Tab 停靠点,进去之后用方向键移动。
纵向
orientation="vertical" 时改用 ↑ ↓。这里关掉了 loop:走到头不再回到另一端。
API
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
orientation | 'horizontal' | 'vertical' | 'horizontal' | 排列方向,同时决定用哪一对方向键。 |
gap | Responsive<Space> | 2 | 子项间距(间距档位)。 |
loop | boolean | true | 方向键走到头后回到另一端。 |
wrap | boolean | false | 放不下时换行,而不是横向滚动。只对横向工具栏有效。 |
aria-label | string | — | 工具栏的名字。页面上有多条时必须给。 |
…rest | HTMLAttributes | — | ref、className、style 和其余原生属性透传到根节点。 |
无障碍
- 根节点是
role="toolbar",带aria-orientation。记得给aria-label或aria-labelledby。 - roving tabindex:只有当前项能被 Tab 到,上次停在哪一项,下次 Tab 回来还在那一项。
- ← → (纵向为 ↑ ↓)移动,Home / End 到两端。禁用的按钮会被跳过。
- 焦点在文本输入框里时方向键留给光标,不会被工具栏拦走;带 Ctrl / Alt / ⌘ 的组合键也不拦。
- 图标按钮各自要有
aria-label;纯分组用的分隔线传decorative。