我有一个只有一张表格,其中的行被分组了,每个组上方都应该有一个标题。在语义和可访问性方面,这种情况下正确的标记是什么?
我知道<th>
元素的scope
属性,我认为rowgroup
和colgroup
可能与此相关,但我不知道如何正确地应用它,或者<td>
或<tbody>
元素是否也需要应用一些属性。
这是一个没有任何可访问性属性的示例表格:
table { border-collapse: collapse; text-align: center }
thead { background: #ccc }
th, td { padding: 0.25em 0.5em; border: 1px solid #ddd }
tbody th { background: #eee }
<table>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="3">Group 1</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="3">Gruppe 2</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="3">Gruppe 3</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
scope
属性的允许值:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#scope - Svisharia-label
或<caption>
来提供名称。 - Andyaria-labelledby
将可见标题作为表格名称进行重用。<h2 id="myheading">… <table aria-labelledby="myheading" …
- Andy