
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@angular-eslint/eslint-plugin-template
Advanced tools
Please see https://github.com/angular-eslint/angular-eslint for full usage instructions and guidance.
Key
| Rule | Description | :white_check_mark: | :wrench: | :bulb: | :accessibility: |
|---|---|---|---|---|---|
no-duplicate-attributes | Ensures that there are no duplicate input properties or output event listeners | :bulb: | |||
no-nested-tags | Denies nesting of and tags. |
Key
| Rule | Description | :white_check_mark: | :wrench: | :bulb: | :accessibility: |
|---|---|---|---|---|---|
alt-text | [Accessibility] Enforces alternate text for elements which require the alt, aria-label, aria-labelledby attributes. | :accessibility: | |||
banana-in-box | Ensures that the two-way data binding syntax is correct | :white_check_mark: | :wrench: | ||
button-has-type | Ensures that a button has a valid type specified | ||||
click-events-have-key-events | [Accessibility] Ensures that the click event is accompanied with at least one key event keyup, keydown or keypress. | :accessibility: | |||
conditional-complexity | The conditional complexity should not exceed a rational limit | ||||
cyclomatic-complexity | Checks cyclomatic complexity against a specified limit. It is a quantitative measure of the number of linearly independent paths through a program's source code | ||||
elements-content | [Accessibility] Ensures that the heading, anchor and button elements have content in them | :accessibility: | |||
eqeqeq | Requires === and !== in place of == and != | :white_check_mark: | :wrench: | :bulb: | |
i18n | Ensures following best practices for i18n. Checks for missing i18n attributes on elements and attributes containing texts. Can also check for texts without i18n attribute, elements that do not use custom ID (@@) feature and duplicate custom IDs | :wrench: | :bulb: | ||
interactive-supports-focus | [Accessibility] Ensures that elements with interactive handlers like (click) are focusable. | :accessibility: | |||
label-has-associated-control | [Accessibility] Ensures that a label element/component is associated with a form element | :accessibility: | |||
mouse-events-have-key-events | [Accessibility] Ensures that the mouse events mouseout and mouseover are accompanied by focus and blur events respectively. Coding for the keyboard is important for users with physical disabilities who cannot use a mouse, AT compatibility, and screenreader users. See more at https://www.w3.org/WAI/WCAG21/Understanding/keyboard | :accessibility: | |||
no-any | The use of "$any" nullifies the compile-time benefits of Angular's type system | :bulb: | |||
no-autofocus | [Accessibility] Ensures that the autofocus attribute is not used | :wrench: | :accessibility: | ||
no-call-expression | Disallows calling expressions in templates, except for output handlers | ||||
no-distracting-elements | [Accessibility] Enforces that no distracting elements are used | :wrench: | :accessibility: | ||
no-empty-control-flow | Ensures that control flow blocks are not empty. Empty control flow blocks usually occur due to refactoring that wasn't completed. They can cause confusion when reading code. | ||||
no-inline-styles | Disallows the use of inline styles in HTML templates | ||||
no-interpolation-in-attributes | Ensures that property-binding is used instead of interpolation in attributes. | :wrench: | |||
no-negated-async | Ensures that async pipe results, as well as values used with the async pipe, are not negated | :white_check_mark: | :bulb: | ||
no-positive-tabindex | Ensures that the tabindex attribute is not positive | :bulb: | |||
prefer-at-else | Prefer using @else instead of a second @if with the opposite condition to reduce code and make it easier to read. | :wrench: | |||
prefer-at-empty | Prefer using @empty with @for loops instead of a separate @if or @else block to reduce code and make it easier to read. | :wrench: | |||
prefer-built-in-pipes | Encourages the use of Angular built-in pipes (e.g. lowercase, uppercase, titlecase) instead of certain JavaScript methods in Angular templates. | ||||
prefer-contextual-for-variables | Ensures that contextual variables are used in @for blocks where possible instead of aliasing them. | :wrench: | |||
prefer-control-flow | Ensures that the built-in control flow is used. | ||||
prefer-ngsrc | Ensures ngSrc is used instead of src for img elements | ||||
prefer-template-literal | Ensure that template literals are used instead of concatenating strings or expressions. | :wrench: | |||
role-has-required-aria | [Accessibility] Ensures elements with ARIA roles have all required properties for that role. | :bulb: | :accessibility: | ||
table-scope | [Accessibility] Ensures that the scope attribute is only used on the <th> element | :wrench: | :accessibility: | ||
use-track-by-function | Ensures trackBy function is used | ||||
valid-aria | [Accessibility] Ensures that correct ARIA attributes and respective values are used | :bulb: | :accessibility: |
Key
| Rule | Description | :white_check_mark: | :wrench: | :bulb: | :accessibility: |
|---|---|---|---|---|---|
attributes-order | Ensures that HTML attributes and Angular bindings are sorted based on an expected order | :wrench: | |||
prefer-self-closing-tags | Ensures that self-closing tags are used for elements with a closing tag but no content. | :wrench: | |||
prefer-static-string-properties | Ensures that static string values use property assignment instead of property binding. | :wrench: |
This package provides linting rules for React and JSX. It is similar to @angular-eslint/eslint-plugin-template in that it helps enforce best practices and catch common mistakes in React applications.
This package is an ESLint plugin for Vue.js applications. It includes a set of rules that apply to Vue templates, similar to how @angular-eslint/eslint-plugin-template applies rules to Angular templates.
This plugin focuses on enforcing accessibility rules in JSX elements, similar to how @angular-eslint/eslint-plugin-template enforces accessibility rules in Angular templates.
FAQs
ESLint plugin for Angular Templates
The npm package @angular-eslint/eslint-plugin-template receives a total of 1,884,990 weekly downloads. As such, @angular-eslint/eslint-plugin-template popularity was classified as popular.
We found that @angular-eslint/eslint-plugin-template demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.