Form

Start a contact or enquiry form from layouts/_default/contact.html. It posts directly to the Worker and remains useful without JavaScript. Keep field labels, autocomplete hints, required-state semantics, consent, and the post-submit destination together in the template.

Template anatomy: Form

Includes#

  • Native labels and controls with meaningful autocomplete values
  • A required privacy-consent control and a Button submit action
  • A hidden honeypot that is removed from both the accessibility tree and tab order
  • A localized redirect to the Form confirmation page after a successful Worker response

Do not split#

Do not move validation, consent, spam handling, or success routing into Markdown shortcodes. Those are form behaviour and belong in the layout and Worker contract.