创建可访问按钮组件的钩子,提供键盘激活和无障碍检查。
useButton 钩子用于创建符合 Video.js 标准的可访问按钮组件。它提供键盘激活支持(Enter 和 Space 键)以及 ARIA 属性处理,确保按钮组件在所有设备上都能正常工作。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
params | UseButtonParams | — | 按钮配置参数 |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
onClick | () => void | — | 点击事件处理函数 |
isDisabled | boolean | false | 是否禁用按钮 |
label | string | — | 按钮标签(用于无障碍) |
trackState | object | — | 用于计算禁用状态的追踪状态 |
| 返回值 | 类型 | 说明 |
|---|---|---|
getButtonProps | (props?: object) => ButtonProps | 获取按钮 props 的函数,支持合并额外 props |
buttonRef | RefObject<HTMLElement> | 按钮元素的 ref |
| 属性 | 类型 | 说明 |
|---|---|---|
onKeyDown | React.KeyboardEventHandler | 键盘事件处理(支持 Enter 和 Space) |
onClick | React.MouseEventHandler | 点击事件处理 |
tabIndex | number | Tab 键顺序(禁用时为 -1) |
role | string | ARIA 角色("button") |
aria-disabled | boolean | ARIA 禁用状态 |
useButton 自动处理键盘激活:
isDisabled 禁用时,键盘事件不会触发role="button"aria-disabled 状态tabIndex 以支持键盘导航isDisabled 为 true 时,tabIndex 设置为 -1getButtonProps 函数允许合并额外的 props: