アクセシビリティ
フローはキーボードでアクセスでき、スクリーンリーダーで読み取ることができます。 ノードとエッジは、キーボードでフォーカス、選択、移動、削除できます。
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ガイドのベストプラクティスに従ってください。