---
# Don't modify this file manually. This file is auto generated from source, and you will lose your changes next time the website is built.
# Head to the `biomejs/biome` repository, and modify the source code in there.

title: HTML Rules
description: List of available lint rules for HTML
---


import { Icon } from "@astrojs/starlight/components";

Below the list of rules supported by Biome, divided by group. Here's a legend of the emojis:
- The icon <span class='inline-icon' title="This rule is recommended"><Icon name="approve-check-circle" label="This rule is recommended" /></span> indicates that the rule is part of the recommended rules.
- The icon <span class='inline-icon' title="This rule has a safe fix"><Icon name="seti:config" label="The rule has a safe fix" /></span> indicates that the rule provides a code action (fix) that is **safe** to apply.
- The icon <span class='inline-icon' title="This rule has an unsafe fix"><Icon name="warning" label="The rule has an unsafe fix" /></span> indicates that the rule provides a code action (fix) that is **unsafe** to apply.
- The icon <span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" /></span> indicates that the rule has been implemented and scheduled for the next release.

## `a11y`

| Rule name | Description | Properties |
| --- | --- | --- |
| [noHeaderScope](/linter/rules/no-header-scope) | The scope prop should be used only on `<th>` elements. | <span class='inline-icon' title="This rule is recommended" ><Icon name="approve-check-circle" size="1.2rem" label="This rule is recommended" /></span><span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span> |

## `nursery`

| Rule name | Description | Properties |
| --- | --- | --- |
| [noAmbiguousAnchorText](/linter/rules/no-ambiguous-anchor-text) | Disallow ambiguous anchor descriptions. |  |
| [noScriptUrl](/linter/rules/no-script-url) | Disallow `javascript:` URLs in HTML. |  |
| [noSyncScripts](/linter/rules/no-sync-scripts) | Prevent the usage of synchronous scripts. |  |
| [noVueVIfWithVFor](/linter/rules/no-vue-v-if-with-v-for) | Disallow using `v-if` and `v-for` directives on the same element. |  |
| [useVueConsistentVBindStyle](/linter/rules/use-vue-consistent-v-bind-style) | Enforce a consistent style for `v-bind` in Vue templates. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueConsistentVOnStyle](/linter/rules/use-vue-consistent-v-on-style) | Enforce a consistent style for `v-on` in Vue templates. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueHyphenatedAttributes](/linter/rules/use-vue-hyphenated-attributes) | Enforce hyphenated (kebab-case) attribute names in Vue templates. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span> |
| [useVueValidTemplateRoot](/linter/rules/use-vue-valid-template-root) | Enforce valid Vue `<template>` root usage. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueValidVBind](/linter/rules/use-vue-valid-v-bind) | Forbids `v-bind` directives with missing arguments or invalid modifiers. |  |
| [useVueValidVCloak](/linter/rules/use-vue-valid-v-cloak) | Enforce valid `v-cloak` Vue directives. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueValidVElse](/linter/rules/use-vue-valid-v-else) | Enforce valid usage of v-else. |  |
| [useVueValidVElseIf](/linter/rules/use-vue-valid-v-else-if) | Enforce valid `v-else-if` directives. |  |
| [useVueValidVHtml](/linter/rules/use-vue-valid-v-html) | Enforce valid `v-html` directives. |  |
| [useVueValidVIf](/linter/rules/use-vue-valid-v-if) | Enforces valid `v-if` usage for Vue templates. |  |
| [useVueValidVOn](/linter/rules/use-vue-valid-v-on) | Enforce valid `v-on` directives with proper arguments, modifiers, and handlers. |  |
| [useVueValidVOnce](/linter/rules/use-vue-valid-v-once) | Enforce valid `v-once` Vue directives. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueValidVPre](/linter/rules/use-vue-valid-v-pre) | Enforce valid `v-pre` Vue directives. | <span class='inline-icon' title="The rule has an unsafe fix" ><Icon name="warning" label="The rule has an unsafe fix" size="1.2rem" /></span><span class='inline-icon' title="This rule is not released yet"><Icon name="moon" label="This rule is not released yet" size="1.2rem" /></span> |
| [useVueValidVText](/linter/rules/use-vue-valid-v-text) | Enforce valid `v-text` Vue directives. |  |
## Recommended rules 
- [noHeaderScope](/linter/rules/no-header-scope) (Severity: [error](/reference/diagnostics#error))

Missing a rule? Help us by [contributing](https://github.com/biomejs/biome/blob/main/CONTRIBUTING.md) to the [analyzer](https://github.com/biomejs/biome/blob/main/crates/biome_analyze/CONTRIBUTING.md) or create a rule suggestion [here](https://github.com/biomejs/biome/discussions/categories/rule-suggestion).