Yamada UIにスターをあげる

スター
Yamada UIYamada UIv1.7.2

Dialog

Dialogは、ユーザーに実行の確認または中断に使用されるコンポーネントです。

Dialogは、アクセシビリティに関してWAI-ARIA Dialog (Modal) Patternに従います。

  • ダイアログが開くと、自動的にダイアログ内の最初の無効ではない要素またはinitialFocusRefで設定された要素にフォーカスされます。
  • ダイアログが閉じると、ダイアログが開く前にフォーカスされていた要素またはfinalFocusRefで設定された要素にフォーカスされます。
  • ダイアログのオーバーレイをクリックすると、ダイアログを閉じます。
  • ダイアログの背後にある要素はスクロールがブロックされます。

ダイアログを開くトリガーとなる要素にaria-haspopup="dialog"を設定すると、スクリーンリーダーがダイアログを開くことをユーザーに伝えることができます。

const { isOpen, onOpen, onClose } = useDisclosure()
return (
<>
<Button aria-haspopup="dialog" onClick={onOpen}>
Open Dialog
</Button>
<Dialog
isOpen={isOpen}
onClose={onClose}
header="孫悟空"
cancel="わけない"
onCancel={onClose}
success="わける"
onSuccess={onClose}
>
だ…大地よ海よ そして生きているすべての みんな…
このオラにほんのちょっとずつだけ元気をわけてくれ…!!!
</Dialog>
</>
)
Copied!

キーボード操作

ダイアログが開くと、フォーカスはダイアログ内にロックされます。つまり、ダイアログを閉じない限り、ダイアログ外の要素をフォーカスすることはできません。

キー説明状態
Tabダイアログ内の無効ではない次の要素にフォーカスします。最後の要素の場合は最初の無効ではない要素をフォーカスします。isOpen={true}
Shift + Tabダイアログ内の前の無効ではない要素をフォーカスします。最初の要素の場合は最後の無効ではない要素をフォーカスします。isOpen={true}
Escapeダイアログを閉じます。isOpen={true} + closeOnEsc={true}

ARIAロールと属性

コンポーネントロールと属性使い方
Dialogrole="dialog"ダイアログであることを示します。
aria-modal="true"表示されているウィジェットがモーダルであることを示します。
aria-labelledby関連したDialogHeaderidを設定します。
aria-describedby関連したDialogBodyidを設定します。
DialogOverlayaria-hidden="true"要素をアクセシビリティツリーから除外します。
DialogCloseButtonaria-label="Close dialog""Close dialog"を設定します。
DialogHeaderidDialogと関連付けるために使用するid
DialogBodyidDialogと関連付けるために使用するid

GitHubでこのページを編集する

ModalDrawer