From 8e893bd9a1244c9d0e61270af2e887c1af8529eb Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:13:46 -0400 Subject: [PATCH 1/2] Extract rule: template-require-input-label --- README.md | 1 + docs/rules/template-require-input-label.md | 67 +++ lib/rules/template-require-input-label.js | 153 ++++++ .../lib/rules/template-require-input-label.js | 469 ++++++++++++++++++ 4 files changed, 690 insertions(+) create mode 100644 docs/rules/template-require-input-label.md create mode 100644 lib/rules/template-require-input-label.js create mode 100644 tests/lib/rules/template-require-input-label.js diff --git a/README.md b/README.md index c17f530afa..2824b55a74 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-input-label](docs/rules/template-require-input-label.md) | require label for form input elements | | | | | [template-require-lang-attribute](docs/rules/template-require-lang-attribute.md) | require lang attribute on html element | | | | | [template-require-mandatory-role-attributes](docs/rules/template-require-mandatory-role-attributes.md) | require mandatory ARIA attributes for ARIA roles | | | | | [template-require-media-caption](docs/rules/template-require-media-caption.md) | require captions for audio and video elements | | | | diff --git a/docs/rules/template-require-input-label.md b/docs/rules/template-require-input-label.md new file mode 100644 index 0000000000..4ebfc1d822 --- /dev/null +++ b/docs/rules/template-require-input-label.md @@ -0,0 +1,67 @@ +# ember/template-require-input-label + + + +Require form input elements to have an associated label for accessibility. + +## Rule Details + +This rule enforces that input, textarea, and select elements have a way to be labeled, either through an `id` attribute (which can be referenced by a `