Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9e8e45e
Prepare Release v13.1.4 using 'release-plan'
github-actions[bot] Apr 27, 2026
0cf348b
Merge pull request #2750 from ember-cli/release-preview
NullVoxPopuli Apr 27, 2026
148a2a3
feat: add template-require-input-type — reject invalid input types; o…
johanrd Apr 27, 2026
675427a
Merge pull request #2763 from johanrd/html-validate/template-require-…
NullVoxPopuli Apr 28, 2026
493f154
Update parser
NullVoxPopuli Apr 28, 2026
4ae4688
Merge pull request #2766 from ember-cli/nvp/update-parser
NullVoxPopuli Apr 28, 2026
e5baa77
Prepare Release v13.2.0 using 'release-plan'
github-actions[bot] Apr 28, 2026
c52084a
Merge pull request #2765 from ember-cli/release-preview
NullVoxPopuli Apr 28, 2026
6a8d7b7
docs: add glimmer-attribute-behavior reference
johanrd Apr 28, 2026
6052bae
docs: cite ember-source 6.12, drop separate Glimmer version
johanrd Apr 28, 2026
8c4c540
docs(glimmer-attribute-behavior): rewrite from verified empirical data
johanrd Apr 28, 2026
e0a8d17
fix(docs): use querySelector to satisfy unicorn/prefer-query-selector
johanrd Apr 28, 2026
1b384a7
docs(glimmer-attribute-behavior): add "Reading attribute values in ru…
johanrd Apr 28, 2026
bb1ebb3
feat(utils): add glimmer-attr-presence — encodes the verified renderi…
johanrd Apr 28, 2026
bfb839d
fix(glimmer-attr-presence): correctness fixes + adopt property-inform…
johanrd Apr 28, 2026
2b2059a
feat: add template-interactive-supports-focus
johanrd Apr 27, 2026
d200c0b
fix(template-interactive-supports-focus): trim contenteditable before…
johanrd Apr 28, 2026
daad132
refactor(template-interactive-supports-focus): extract isSuppressedFr…
johanrd Apr 28, 2026
99774f7
fix: use classifyAttribute for tabindex (rows t6, t7)
johanrd Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .release-plan.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{
"solution": {
"eslint-plugin-ember": {
"impact": "patch",
"oldVersion": "13.1.2",
"newVersion": "13.1.3",
"impact": "minor",
"oldVersion": "13.1.4",
"newVersion": "13.2.0",
"tagName": "latest",
"constraints": [
{
"impact": "patch",
"reason": "Appears in changelog section :bug: Bug Fix"
"impact": "minor",
"reason": "Appears in changelog section :rocket: Enhancement"
},
{
"impact": "patch",
"reason": "Appears in changelog section :house: Internal"
"reason": "Appears in changelog section :bug: Bug Fix"
}
],
"pkgJSONPath": "./package.json"
}
},
"description": "## Release (2026-04-25)\n\n* eslint-plugin-ember 13.1.3 (patch)\n\n#### :bug: Bug Fix\n* `eslint-plugin-ember`\n * [#2730](https://github.com/ember-cli/eslint-plugin-ember/pull/2730) BUGFIX: template-require-valid-alt-text — reject empty-string aria-label/labelledby/alt on <input type=image>, <object>, <area> ([@johanrd](https://github.com/johanrd))\n * [#2729](https://github.com/ember-cli/eslint-plugin-ember/pull/2729) BUGFIX: template-no-invalid-role — support DPUB/Graphics-ARIA and role-fallback lists ([@johanrd](https://github.com/johanrd))\n * [#2726](https://github.com/ember-cli/eslint-plugin-ember/pull/2726) BUGFIX: template-no-unsupported-role-attributes — honor aria-query attribute constraints ([@johanrd](https://github.com/johanrd))\n * [#2727](https://github.com/ember-cli/eslint-plugin-ember/pull/2727) BUGFIX: template-no-redundant-role — case-insensitive match + <select>→combobox ([@johanrd](https://github.com/johanrd))\n\n#### :house: Internal\n* `eslint-plugin-ember`\n * [#2746](https://github.com/ember-cli/eslint-plugin-ember/pull/2746) refactor: extract isNativeElement util (fix component-vs-HTML-tag misclassification) ([@johanrd](https://github.com/johanrd))\n\n#### Committers: 1\n- [@johanrd](https://github.com/johanrd)\n"
"description": "## Release (2026-04-28)\n\n* eslint-plugin-ember 13.2.0 (minor)\n\n#### :rocket: Enhancement\n* `eslint-plugin-ember`\n * [#2763](https://github.com/ember-cli/eslint-plugin-ember/pull/2763) feat: add template-require-input-type ([@johanrd](https://github.com/johanrd))\n\n#### :bug: Bug Fix\n* `eslint-plugin-ember`\n * [#2766](https://github.com/ember-cli/eslint-plugin-ember/pull/2766) Update parser ([@NullVoxPopuli](https://github.com/NullVoxPopuli))\n\n#### Committers: 2\n- [@NullVoxPopuli](https://github.com/NullVoxPopuli)\n- [@johanrd](https://github.com/johanrd)\n"
}
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# Changelog

## Release (2026-04-28)

* eslint-plugin-ember 13.2.0 (minor)

#### :rocket: Enhancement
* `eslint-plugin-ember`
* [#2763](https://github.com/ember-cli/eslint-plugin-ember/pull/2763) feat: add template-require-input-type ([@johanrd](https://github.com/johanrd))

#### :bug: Bug Fix
* `eslint-plugin-ember`
* [#2766](https://github.com/ember-cli/eslint-plugin-ember/pull/2766) Update parser ([@NullVoxPopuli](https://github.com/NullVoxPopuli))

#### Committers: 2
- [@NullVoxPopuli](https://github.com/NullVoxPopuli)
- [@johanrd](https://github.com/johanrd)

## Release (2026-04-27)

* eslint-plugin-ember 13.1.4 (patch)

#### :bug: Bug Fix
* `eslint-plugin-ember`
* [#2752](https://github.com/ember-cli/eslint-plugin-ember/pull/2752) Update ember-eslint-parser to 0.11.2 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
* [#2728](https://github.com/ember-cli/eslint-plugin-ember/pull/2728) BUGFIX: template-require-mandatory-role-attributes — lowercase role + split whitespace role lists ([@johanrd](https://github.com/johanrd))

#### :house: Internal
* `eslint-plugin-ember`
* [#2748](https://github.com/ember-cli/eslint-plugin-ember/pull/2748) refactor: extract `html-interactive-content` util (HTML §3.2.5.2.7 authority) ([@johanrd](https://github.com/johanrd))

#### Committers: 2
- [@NullVoxPopuli](https://github.com/NullVoxPopuli)
- [@johanrd](https://github.com/johanrd)

## Release (2026-04-25)

* eslint-plugin-ember 13.1.3 (patch)
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le

| Name                                            | Description | 💼 | 🔧 | 💡 |
| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :- | :- | :- |
| [template-interactive-supports-focus](docs/rules/template-interactive-supports-focus.md) | require elements with an interactive ARIA role to be focusable | | | |
| [template-link-href-attributes](docs/rules/template-link-href-attributes.md) | require href attribute on link elements | 📋 | | |
| [template-no-abstract-roles](docs/rules/template-no-abstract-roles.md) | disallow abstract ARIA roles | 📋 | | |
| [template-no-accesskey-attribute](docs/rules/template-no-accesskey-attribute.md) | disallow accesskey attribute | 📋 | 🔧 | |
Expand Down Expand Up @@ -358,6 +359,7 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le
| [template-require-form-method](docs/rules/template-require-form-method.md) | require form method attribute | | 🔧 | |
| [template-require-has-block-helper](docs/rules/template-require-has-block-helper.md) | require (has-block) helper usage instead of hasBlock property | 📋 | 🔧 | |
| [template-require-iframe-src-attribute](docs/rules/template-require-iframe-src-attribute.md) | require iframe elements to have src attribute | | 🔧 | |
| [template-require-input-type](docs/rules/template-require-input-type.md) | require input elements to have a valid type attribute | | 🔧 | |
| [template-require-splattributes](docs/rules/template-require-splattributes.md) | require splattributes usage in component templates | | | |
| [template-require-strict-mode](docs/rules/template-require-strict-mode.md) | require templates to be in strict mode | | | |
| [template-require-valid-named-block-naming-format](docs/rules/template-require-valid-named-block-naming-format.md) | require valid named block naming format | 📋 | 🔧 | |
Expand Down Expand Up @@ -583,6 +585,8 @@ If you have any suggestions, ideas, or problems, feel free to [create an issue](

### Creating a New Rule

If your rule inspects template attribute values (e.g. mustache forms like `attr={{X}}` or `attr="{{X}}"`), read [docs/glimmer-attribute-behavior.md](docs/glimmer-attribute-behavior.md) first — Glimmer's actual rendering behavior is non-obvious for several common forms, and the doc has the empirically-verified table.

- [Create an issue](https://github.com/ember-cli/eslint-plugin-ember/issues/new) with a description of the proposed rule
- Create files for the [new rule](https://eslint.org/docs/developer-guide/working-with-rules):
- `lib/rules/new-rule.js` (implementation, see [no-proxies](lib/rules/no-proxies.js) for an example)
Expand Down
Loading
Loading