プロップ

これらは NavigableMenuTabbableContainer のプロップです。特定のコンポーネントに固有のプロップは適切にラベル付けされています。

cycle: boolean

コンポーネントが終了から開始に戻るかどうかを示すブール値です。

  • 必須: いいえ
  • デフォルト: true

eventToOffset: ( event: KeyboardEvent ) =

-1 | 0 | 1 | undefined

(TabbableContainer のみ)

イベントに基づいてオフセットを取得します。

  • 必須: いいえ

onKeyDown: ( event: KeyboardEvent ) =

void

キーが押されたときに呼び出されるコールバックです。

  • 必須: いいえ

onNavigate: ( index: number, focusable: HTMLElement ) =

void

メニューが子要素の1つにナビゲートするときに、インデックスと子要素を引数として渡すコールバックです。

  • 必須: いいえ

orientation: ‘vertical’ | ‘horizontal’ | ‘both’

(NavigableMenu のみ)

メニューの方向です。「縦」、「横」、または「両方」のいずれかです。

  • 必須: いいえ
  • デフォルト: "vertical"

コンポーネント

NavigableMenu

NavigableMenu は、矢印キーを使用してコンポーネント内を上下(または左右)に移動できるようにします。tab キーは処理されません。orientation プロップは、使用される矢印キーが縦、横、または両方であるかを判断するために使用されます。

デフォルトでは、NavigableMenumenu ロールを持ち、期待通りに機能するためには、コンポーネントはその子要素が次のいずれかのロールを持つことを期待します: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox'

TabbableContainer

TabbableContainertab キーを使用してのみナビゲートされます。すべての意図されたタブストップには tabIndex 0 が必要です。

使用法

  1. import {
  2. NavigableMenu,
  3. TabbableContainer,
  4. Button,
  5. } from '@wordpress/components';
  6. function onNavigate( index, target ) {
  7. console.log( `Navigates to ${ index }`, target );
  8. }
  9. const MyNavigableContainer = () => (
  10. <div>
  11. <span>Navigable Menu:</span>
  12. <NavigableMenu onNavigate={ onNavigate } orientation="horizontal">
  13. <Button variant="secondary">Item 1</Button>
  14. <Button variant="secondary">Item 2</Button>
  15. <Button variant="secondary">Item 3</Button>
  16. </NavigableMenu>
  17. <span>Tabbable Container:</span>
  18. <TabbableContainer onNavigate={ onNavigate }>
  19. <Button variant="secondary" tabIndex="0">
  20. Section 1
  21. </Button>
  22. <Button variant="secondary" tabIndex="0">
  23. Section 2
  24. </Button>
  25. <Button variant="secondary" tabIndex="0">
  26. Section 3
  27. </Button>
  28. <Button variant="secondary" tabIndex="0">
  29. Section 4
  30. </Button>
  31. </TabbableContainer>
  32. </div>
  33. );