Accessibility
FormDialog, FormDialogSize, FormDialogSubmitResult from @prepared911/ui/blocks/form-dialog.
dialog, named by the title heading and described by the description. The page behind it is inert.autofocus element), stays inside while open, and returns to the trigger on close. Tab cycles through the fields, Cancel and Save.role="alert") and moves focus once to the first control marked aria-invalid="true", or to the summary when none is. Set invalid and give each field its own error copy.aria-busy with a spinner and its pending name, Cancel is disabled, the form is aria-busy, and Escape does not close the dialog. Nothing covers or disables the page.scrollRegionLabel so a keyboard user can reach it when it overflows and holds no focusable field.prefers-reduced-motion. The surfaces' own motion is Dialog's.