Regras HTML
Essas regras cobrem a validade do HTML e a marcação semântica dentro dos templates do Vue. Elas são separadas de regras diretivas específicas do Vue e das regras de acessibilidade, então as verificações de conformidade HTML podem ser ativadas ou explicadas sozinhas.
html/id-duplication
Relatórios duplicam IDs estáticos dentro de um único modelo.
Gravidade padrão: error
Presets: essential, happy-path, nuxt, opinionated
Ruim:
<template>
<label for="email">Email</label>
<input id="email" />
<p id="email">Required</p>
</template>
Bom:
<template>
<label for="email">Email</label>
<input id="email" aria-describedby="email-help" />
<p id="email-help">Required</p>
</template>
html/deprecated-element
Relatórios obsoletos de elementos HTML.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<center>Profile</center>
</template>
Bom:
<template>
<section class="profile">Profile</section>
</template>
html/deprecated-attr
Relatórios de atributos HTML obsoletos.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<table border="1">
<tr>
<td>Total</td>
</tr>
</table>
</template>
Bom:
<template>
<table class="summary">
<tr>
<td>Total</td>
</tr>
</table>
</template>
html/no-consecutive-br
Reporta elementos consecutivos de <br> usados para layout.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<p>First line<br /><br />Second block</p>
</template>
Bom:
<template>
<p>First line</p>
<p>Second block</p>
</template>
html/require-datetime
Requer valores de datetime legíveis por máquina em <time>.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<time>May 13, 2026</time>
</template>
Bom:
<template>
<time datetime="2026-05-13">May 13, 2026</time>
</template>
html/no-duplicate-dt
Relatórios duplicam <dt> termos dentro do mesmo <dl>.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<dl>
<dt>API</dt>
<dd>Public interface</dd>
<dt>API</dt>
<dd>Internal service</dd>
</dl>
</template>
Bom:
<template>
<dl>
<dt>API</dt>
<dd>Public interface</dd>
<dd>Internal service</dd>
</dl>
</template>
html/no-empty-palpable-content
Reporta elementos vazios que se espera que exponham conteúdo visível ou de outra forma perceptível.
Elementos com texto, conteúdo infantil, aria-label, aria-labelledby, v-htmlou v-text
são aceitos.
Gravidade padrão: warning
Presets: happy-path, nuxt, opinionated
Ruim:
<template>
<p></p>
<li></li>
<td></td>
</template>
Bom:
<template>
<p>Overview</p>
<li>{{ item.label }}</li>
<td aria-label="No value"></td>
</template>