<caption>: The CAPTION Element
Last updated: 2026-10-13
<caption>The CAPTION Element
The table's title, must be the first child of table and is shown above it by default.
| Category | Tables |
|---|---|
| Content Model | Flow content |
| Allowed Parents | Any element that accepts flow content |
| Content Tag | Yes — requires closing </caption> tag |
| Status | Standard |
📝 Syntax
<table>
<caption>Table caption</caption>
...
</table>
▶ Example
Edit the code below and see the live result in the playground:
🌐 Browser Support
| Browser | |||||
|---|---|---|---|---|---|
| <caption> | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| Supported in all major browsers | |||||
Tip: caption is centered above the table by default; use CSS caption-side to move it below.
❓ FAQ
QMust caption be the first child of table?
AYes, the spec requires
<caption> as the first child of <table>. Screen readers rely on it as the table's name; the CSS caption-side property only changes the visual position (top/bottom), never the source-order requirement.QHow does caption differ from a heading paragraph outside the table?
A
<caption> is semantically bound to the table: screen readers treat it as the table's accessible name — a native association. An external heading has no such binding, and on long pages it becomes unclear which table it belongs to. Pairing every table with a caption is the accessibility best practice.QCan caption hold a long description?
Acaption fits a short table name (e.g. 2026 quarterly sales). Long descriptions (data sources, methodology notes) belong below the table in a
<p>, or linked with aria-describedby — an overlong caption hurts reading efficiency.🏷️ Related Tags
💡 Related Cases
More case studies coming soon — check back later.