学习高级使用

无障碍性

可以使用键盘访问流程,并且屏幕阅读器可以读取流程。节点和边可以通过键盘进行聚焦、选择、移动和删除。

如果您有任何关于如何改进 React Flow 无障碍性的想法,请随时联系我们

内置功能

键盘控制

  • 节点和边可以通过使用Tab键 (tabIndex={0} + role="button") 进行聚焦。
  • 节点和边可以通过使用EnterSpace进行选择,可以通过使用Escape进行取消选择。
  • 节点可以通过箭头键进行移动(按住 Shift 键可以提高速度)。
  • 节点和边将获得一个aria-describedby属性来描述键盘控制。

您可以使用以下属性配置键盘控制:nodesFocusableedgesFocusabledisableKeyboardA11y。如果您希望能够使用 Tab 键聚焦元素,然后使用 Enter 和 Escape 键选择或取消选择元素,则nodesFocusableedgesFocusable(默认情况下都为 true)需要为 true。如果您设置disableKeyboardA11y={true},则节点将不再可以通过箭头键移动。

仅当nodesDraggablenodesFocusable为 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 指南