A small piece of HTML can change what a visitor sees or how the browser understands a page. In this lesson, you will explore boolean attribute serialization rules using a short example that you can inspect and change.
The Idea in Plain English
A boolean HTML attribute is true when it is present and false when absent. A text value of "false" does not switch it off.
You can test this using a small local HTML file. Change one part at a time and check the result in the browser before adding more code.
A Working Example
Read the sample once before copying it. Notice the element names and attribute values, then compare them with the explanation below.
<label>
<input type="checkbox" checked>
Receive news
</label>
<label>
<input type="checkbox">
Receive reminders
</label>
What Each Part Does
- The label tells visitors and assistive tools what a control is for.
- The input creates a field; its type changes the editing controls and the name identifies submitted data.
- type chooses the relevant kind of script, input, media or embedded object.
A checkbox with checked="false" is still checked, because the attribute is present.
Keep the example small while learning. Once it behaves as expected, try it inside a larger page and make sure the URLs, files and surrounding HTML are correct.
Try It Yourself
Try this next: compare authored source against the DOM tree in DevTools focused on HTML Boolean Attribute Serialization Rules, including a working example and an incorrect example to correct. Then inspect the page and explain what changed.
Common Beginner Mistakes
- Trying disabled="false" instead of removing the disabled attribute.
- Changing several parts of the example at once, making it difficult to see which part caused a different result.
- Choosing a tag only because its default appearance looks right, without checking whether it describes the content correctly.
Key Takeaways
- A boolean HTML attribute is true when it is present and false when absent. A text value of "false" does not switch it off.
- A checkbox with checked="false" is still checked, because the attribute is present.
- Test the markup in a browser, and check accessibility and real-world behavior where relevant.