Label
A form field row — label, input, and help text. The for attribute has been the accessibility API this whole time.
plain CSS — works everywhere
How it works
for+idlinks label to input: clicking focuses, and screen readers announce the label with the field.grid gap-1.5handles the vertical rhythm; the help text is just a muted<p>.- Add
aria-describedbypointing at the help text if it carries information the user must hear.