From 0f01f92a8e3471608f5654444519d3991463232a Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Wed, 18 Mar 2026 18:17:58 -0400
Subject: [PATCH 1/2] Extract rule: template-require-valid-form-groups
---
README.md | 1 +
.../template-require-valid-form-groups.md | 56 ++++++++
.../template-require-valid-form-groups.js | 96 +++++++++++++
.../template-require-valid-form-groups.js | 128 ++++++++++++++++++
4 files changed, 281 insertions(+)
create mode 100644 docs/rules/template-require-valid-form-groups.md
create mode 100644 lib/rules/template-require-valid-form-groups.js
create mode 100644 tests/lib/rules/template-require-valid-form-groups.js
diff --git a/README.md b/README.md
index 14120af108..8cbc63494a 100644
--- a/README.md
+++ b/README.md
@@ -197,6 +197,7 @@ rules in templates can be disabled with eslint directives with mustache or html
| [template-no-nested-interactive](docs/rules/template-no-nested-interactive.md) | disallow nested interactive elements | | | |
| [template-no-nested-landmark](docs/rules/template-no-nested-landmark.md) | disallow nested landmark elements | | | |
| [template-no-pointer-down-event-binding](docs/rules/template-no-pointer-down-event-binding.md) | disallow pointer down event bindings | | | |
+| [template-require-valid-form-groups](docs/rules/template-require-valid-form-groups.md) | require grouped form controls to have fieldset/legend or WAI-ARIA group labeling | | | |
| [template-table-groups](docs/rules/template-table-groups.md) | require table elements to use table grouping elements | | | |
### Best Practices
diff --git a/docs/rules/template-require-valid-form-groups.md b/docs/rules/template-require-valid-form-groups.md
new file mode 100644
index 0000000000..7bc1f70eb6
--- /dev/null
+++ b/docs/rules/template-require-valid-form-groups.md
@@ -0,0 +1,56 @@
+# ember/template-require-valid-form-groups
+
+
+
+Require grouped form controls to have appropriate semantics.
+
+When multiple form controls are related, they should be grouped with either:
+
+- `
`,
``,
`