A browser often creates a tbody element in the DOM when rows are written directly under table in the source. That is normal HTML parsing behavior. Before writing the code, picture the information as a small grid. Each label should help a reader understand the value next to it.
What You Need to Know
CSS selectors and JavaScript code must work with the DOM that the browser actually builds. Write tbody explicitly when a predictable structure helps beginners.
Read a table like a story about data. The caption says what you are looking at; row and column headers explain what the numbers or words mean.
Example: See It in Action
Try this markup in a fresh practice file. The next section explains the parts worth paying attention to.
This is a short HTML fragment. To try it as a webpage, put it inside the body element of a complete HTML document.
<table>
<tr>
<th scope="col">Item</th>
<th scope="col">Cost</th>
</tr>
<tr>
<td>Notebook</td>
<td>$3</td>
</tr>
</table>
<!-- Inspect the DOM to see the inserted tbody. -->
Let’s Understand the Example
- Table represents information whose row and column relationships matter.
- Th is a header cell. Its text explains what nearby data cells mean.
- Scope explains which table row, column or group a th cell labels.
Look at a data cell and ask: “What row and column does this value belong to?” The header elements help answer that question, including for people who navigate the table with a screen reader.
What Should You See?
You should see a grid for the data table, with headers such as “Item”, “Cost”. The browser displays cells, but meaningful table markup also helps readers connect each cell to its labels.
Read the first data row aloud together with its column labels. If you cannot explain a value without pointing to its position on screen, strengthen the headers.
Try It Yourself
- Inspect the table in Developer Tools and find the automatically inserted tbody.
- Save your changes, open or refresh the page, and compare the result with the original example.
- Tell a friend what your change did. If you are not sure, undo it, refresh the page, and compare.
Common Beginner Mistakes
- Thinking unexpected tbody means the browser is broken or the file is infected.
- Do not replace actual header cells with bold ordinary cells. Header markup is part of the meaning, not just the appearance.
Key Takeaways
- A browser often creates a tbody element in the DOM when rows are written directly under table in the source.
- Table represents information whose row and column relationships matter.
- CSS selectors and JavaScript code must work with the DOM that the browser actually builds. Write tbody explicitly when a predictable structure helps beginners.