アクセシビリティ
フローはキーボードでアクセスでき、スクリーンリーダーで読み取ることができます。 ノードとエッジは、キーボードでフォーカス、選択、移動、削除できます。
React Flowのアクセシビリティを向上させる方法についてアイデアがある場合は、お気軽にお問い合わせください.
組み込み機能
キーボードコントロール
- ノードとエッジは、
Tab
キー(tabIndex={0}
+role="button"
)を使用してフォーカスできます。 Enter
またはSpace
を使用してノードとエッジを選択し、Escape
を使用して選択解除できます。- ノードは矢印キーで移動できます(速度を上げるにはShiftキーを押します)。
- ノードとエッジには、キーボードコントロールを記述するための
aria-describedby
属性が追加されます。
プロパティを使用してキーボードコントロールを設定できます:nodesFocusable
、edgesFocusable
、disableKeyboardA11y
。 nodesFocusable
とedgesFocusable
(どちらもデフォルトではtrue)は、Tabキーで要素にフォーカスし、EnterキーとEscapeキーで選択または選択解除できるようにする場合にtrueにする必要があります。 disableKeyboardA11y={true}
を設定すると、ノードは矢印キーで移動できなくなります。
ノードは、nodesDraggable
とnodesFocusable
がtrueの場合(デフォルトの動作)にのみ、矢印キーで移動できます。
WAI-ARIA
- エッジ:デフォルトの
aria-label
- 新しいEdge
オプションariaLabel
で上書き可能 - ノード:
ariaLabel
オプション(ノード内にテキストが存在する可能性があると想定しているため、ここではデフォルトはありません) - ミニマップコンポーネント:
aria-describedby
+ title - 属性コンポーネント:
aria-label
- コントロールコンポーネント:コントロールコンテナーとボタンの
aria-label
よりアクセスしやすいノードベースUI
- ノードにテキストコンテンツがない場合は、ノードオプションを介してariaラベルを提供する必要があります。
- ノードに名前がある場合、エッジに特定のariaラベルを渡すことによって、エッジのデフォルトの
aria-label
( 'source.idからtarget.idまで')を改善できます。 - アプリケーションでは、WAI-ARIAガイドのベストプラクティスに従ってください。