Skip to content

Releases: websanity/formsanity

2026.9.11

Choose a tag to compare

@janscarton janscarton released this 11 Sep 18:34

Full Changelog: 2026.9.10...2026.9.11

2026.9.10

Choose a tag to compare

@janscarton janscarton released this 10 Sep 06:15

Changes for existing servers

  • In a multipart/form-data body, the parts of an array-valued field are now named name[]: checkbox and radio sets, a lone checkbox, select[multiple], and a file input with multiple. A single-valued field keeps its bare name. JSON bodies are unchanged. A server written to the earlier bare-key naming must map the suffix back. See Field Names and Values in the submission protocol.
  • An authored name must not end in [].

New

  • A PHP implementation of the server. php/ holds the server parser conformance class and the envelope layer as the Composer package websanity/formsanity (PHP 8.4+). It is written from the specs and pinned by the shared vectors, the demo pages, and a replay of what the client posts. docs/php.md shows how to use it. A Composer install carries only the PHP product, the specs, the vectors, and the docs.
  • The spec's duration and us-dollar pattern rows are restored, the server's reading of a partly relevant set is stated, and a value that names no member of a choice group is a relevance failure.

Full Changelog: 2026.9.9...2026.9.10

2026.9.9

Choose a tag to compare

@janscarton janscarton released this 10 Sep 01:16

Changes for existing forms

Three behaviors changed. Check forms written against earlier versions.

  • data-fs-relevant on one member of a choice group now governs that member alone. To hide or disable a whole group, put the attribute on its fieldset.
  • required on any member of a checkbox set now requires the set, as it does on a radio group.
  • A choice group with some disabled or irrelevant members now submits its enabled members. The submission protocol's omission rule is per control.

New

  • Member relevance: data-fs-relevant on a choice-group member or on an option, with hidden and disabled modes. See Member Relevance in the vocabulary spec.
  • Conditional requiredness: data-fs-required="expression" makes a field required only while the expression is true. See Conditional Requiredness in the vocabulary spec.
  • Lone toggle rows: a row whose label wraps its own checkbox gets the styled toggle look and aligns with the rows around it.

Server implementations need updating for the first two items.

Full Changelog: 2026.8.26...2026.9.9

2026.8.26

Choose a tag to compare

@janscarton janscarton released this 26 Aug 15:11

Full Changelog: 2026.8.25...2026.8.26

2026.8.25

Choose a tag to compare

@janscarton janscarton released this 25 Aug 07:45

Full Changelog: 2026.8.24...2026.8.25

2026.8.24

Choose a tag to compare

@janscarton janscarton released this 24 Aug 22:13