Skip to content

Linter Rule: Omit values for boolean attributes

Rule: html-boolean-attributes-no-value

Description

Omit attribute values for boolean HTML attributes. For boolean attributes, their presence alone represents true, and their absence represents false. There is no need to assign a value or use quotes.

Rationale

Using the canonical form for boolean attributes improves readability, keeps HTML concise, and avoids unnecessary characters. This also matches HTML specifications and the output of many HTML formatters.

For example, instead of writing disabled="disabled" or disabled="true", simply write disabled.

Examples

✅ Good

html
<input type="checkbox" checked>

<button disabled>Submit</button>

<select multiple>

🚫 Bad

html
<input type="checkbox" checked="checked">
Boolean attribute `checked` should not have a value. Use `checked` instead of `checked="checked"`. (html-boolean-attributes-no-value)
<button disabled="true">Submit</button>
Boolean attribute `disabled` should not have a value. Use `disabled` instead of `disabled="disabled"`. (html-boolean-attributes-no-value)
<select multiple="multiple">
Boolean attribute `multiple` should not have a value. Use `multiple` instead of `multiple="multiple"`. (html-boolean-attributes-no-value)

References

Released under the MIT License.