无障碍性
可以使用键盘访问流程,并且屏幕阅读器可以读取流程。节点和边可以通过键盘进行聚焦、选择、移动和删除。
如果您有任何关于如何改进 React Flow 无障碍性的想法,请随时联系我们。
内置功能
键盘控制
- 节点和边可以通过使用
Tab
键 (tabIndex={0}
+role="button"
) 进行聚焦。 - 节点和边可以通过使用
Enter
或Space
进行选择,可以通过使用Escape
进行取消选择。 - 节点可以通过箭头键进行移动(按住 Shift 键可以提高速度)。
- 节点和边将获得一个
aria-describedby
属性来描述键盘控制。
您可以使用以下属性配置键盘控制:nodesFocusable
、edgesFocusable
和disableKeyboardA11y
。如果您希望能够使用 Tab 键聚焦元素,然后使用 Enter 和 Escape 键选择或取消选择元素,则nodesFocusable
和edgesFocusable
(默认情况下都为 true)需要为 true。如果您设置disableKeyboardA11y={true}
,则节点将不再可以通过箭头键移动。
仅当nodesDraggable
和nodesFocusable
为 true 时(默认行为),节点才能通过箭头键移动。
WAI-ARIA
- 边:默认
aria-label
- 可以使用新的Edge
选项ariaLabel
覆盖。 - 节点:
ariaLabel
选项(此处没有默认值,因为我们假设节点内部可能存在文本)。 - 小地图组件:
aria-describedby
+ 标题。 - 署名组件:
aria-label
。 - 控制组件:
aria-label
用于控制容器和按钮。
更易访问的基于节点的 UI
- 如果您的节点没有文本内容,您应该通过节点选项提供一个 aria-label。
- 当您的节点具有可以使用的名称时,您可以通过将特定的 aria-label 传递给边来改进边的默认
aria-label
(“从 source.id 到 target.id”)。 - 在您的应用程序中遵循最佳实践 WAI-ARIA 指南。