HTML表格标题必须使用<caption>标签实现语义化和可访问性,该标签需置于<table>内首位置;可通过CSS的caption-side等属性调整样式;禁用<th>或<div>模拟标题;多语言场景下应为<caption>添加符合BCP 47标准的lang属性。

如果您需要为HTML表格添加标题,必须使用专门的标题标签来实现语义化和可访问性。以下是编写HTML表格标题标签的具体方法:
一、使用<caption>标签作为表格标题
<caption>是HTML中唯一专用于表格标题的语义化标签,它必须直接嵌套在<table>标签内部,且应置于<table>开始标签之后、任何行(<tr>)之前。该标签内容会被浏览器默认居中显示于表格上方,并被屏幕阅读器识别为表格的标题。
1、在<table>标签内部,紧接<table>开始标签后输入<caption>标签。
2、在<caption>与</caption>之间写入表格的描述性文字,例如“2024年销售数据汇总”。
立即学习“前端免费学习笔记(深入)”;
3、确保<caption>标签不嵌套在<thead>、<tbody>或<tr>等其他表格子元素内。
二、通过CSS控制<caption>样式
虽然<caption>默认居中并位于表格上方,但可通过CSS调整其位置、对齐方式和外观,以满足不同布局需求。浏览器对caption的垂直对齐支持<caption>的caption-side属性,允许将其移至表格底部或其他方位。
1、为<caption>设置class属性,例如<caption class="table-title">。
2、在style标签或外部CSS文件中定义:.table-title { caption-side: bottom; text-align: left; font-weight: bold; }。
3、注意:caption-side仅支持top和bottom两个值,部分旧版IE可能不支持bottom值。
三、避免使用<th>或<div>模拟标题
将标题放在<thead>中的<th colspan="n">或用独立<div>包裹文字虽能实现视觉效果,但会破坏表格的语义结构,导致辅助技术无法正确识别表格标题,影响无障碍访问合规性。
1、不要在<thead>第一行中仅放置一个跨列的<th>作为“标题”,例如<th colspan="5">用户信息表</th>。
2、不要在<table>外添加<div><h3>表格名称</h3></div>来替代<caption>。
3、所有符合WCAG 2.1和HTML5语义规范的表格标题必须使用<caption>标签。
四、处理多语言与国际化标题
当表格面向多语言用户时,<caption>标签可配合lang属性声明语言类型,帮助语音合成器选择正确的发音规则,并提升搜索引擎对内容的理解。
1、在<caption>开始标签中添加lang属性,例如<caption lang="ja">売上データ</caption>。
2、若表格主体语言与标题语言不同,需单独为<caption>指定lang值,不可依赖父元素继承。
3、lang属性值须遵循BCP 47标准,如zh-CN、en-US、es-ES等,不可使用自定义缩写。











