Skip to content

HTML Rules

Below the list of rules supported by Biome, divided by group. Here’s a legend of the emojis:

  • The icon indicates that the rule is part of the recommended rules.
  • The icon indicates that the rule provides a code action (fix) that is safe to apply.
  • The icon indicates that the rule provides a code action (fix) that is unsafe to apply.
  • The icon indicates that the rule has been implemented and scheduled for the next release.
Rule nameDescriptionProperties
noAccessKeyEnforce that the accesskey attribute is not used on any HTML element.
noAutofocusEnforce that the autofocus attribute is not used on elements.
noDistractingElementsEnforces that no distracting elements are used.
noHeaderScopeThe scope prop should be used only on <th> elements.
noPositiveTabindexPrevent the usage of positive integers on tabindex attribute.
noRedundantAltEnforce img alt prop does not contain the word “image”, “picture”, or “photo”.
noSvgWithoutTitleEnforces the usage of the title element for the svg element.
useAltTextEnforce that all elements that require alternative text have meaningful information to relay back to the end user.
useAriaPropsForRoleEnforce that elements with ARIA roles must have all required ARIA attributes for that role.
useButtonTypeEnforces the usage and validity of the attribute type for the element button
useHtmlLangEnforce that html element has lang attribute.
useIframeTitleEnforces the usage of the attribute title for the element iframe.
useValidAriaRoleElements with ARIA roles must use a valid, non-abstract ARIA role.
useValidLangEnsure that the attribute passed to the lang attribute is a correct ISO language and/or country.
Rule nameDescriptionProperties
noAmbiguousAnchorTextDisallow ambiguous anchor descriptions.
noScriptUrlDisallow javascript: URLs in HTML.
noSyncScriptsPrevent the usage of synchronous scripts.
noVueVIfWithVForDisallow using v-if and v-for directives on the same element.
useVueConsistentVBindStyleEnforce a consistent style for v-bind in Vue templates.
useVueConsistentVOnStyleEnforce a consistent style for v-on in Vue templates.
useVueHyphenatedAttributesEnforce hyphenated (kebab-case) attribute names in Vue templates.
useVueVForKeyEnforce that elements using v-for also specify a unique key.
useVueValidTemplateRootEnforce valid Vue <template> root usage.
useVueValidVBindForbids v-bind directives with missing arguments or invalid modifiers.
useVueValidVCloakEnforce valid v-cloak Vue directives.
useVueValidVElseEnforce valid usage of v-else.
useVueValidVElseIfEnforce valid v-else-if directives.
useVueValidVHtmlEnforce valid v-html directives.
useVueValidVIfEnforces valid v-if usage for Vue templates.
useVueValidVOnEnforce valid v-on directives with proper arguments, modifiers, and handlers.
useVueValidVOnceEnforce valid v-once Vue directives.
useVueValidVPreEnforce valid v-pre Vue directives.
useVueValidVTextEnforce valid v-text Vue directives.
useVueVaporEnforce opting in to Vue Vapor mode in <script setup> blocks.

Missing a rule? Help us by contributing to the analyzer or create a rule suggestion here.