table_header_scope_attribute
In a table, the scope attribute indicates the direction and range of data cells covered by <th> elements. This module provides functionality to automatically set the scope attribute for these table header cells.
Features
The Table Header Scope Attribute module provides text format filters that process <table> elements to improve accessibility:
- Set scope attribute for table headers: Automatically sets the correct
scopeattribute on<th>elements based on their position in the table. - Transform empty table header to table data: Converts empty
<th>elements into<td>elements, as empty headers provide no semantic value.
For example, the following table:
<table>
<thead>
<tr>
<th></th>
<th>Column header 1</th>
<th>Column header 2</th>
</tr>
</thead>
<tbody>
<tr>
<th>Row header 1</th>
<td>Value A</td>
<td>Value B</td>
</tr>
<tr>
<th>Row header 2</th>
<td>Value C</td>
<td>Value D</td>
</tr>
</tbody>
</table>
Will be transformed into:
<table>
<thead>
<tr>
<td></td>
<th scope="col">Column header 1</th>
<th scope="col">Column header 2</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Row header 1</th>
<td>Value A</td>
<td>Value B</td>
</tr>
<tr>
<th scope="row">Row header 2</th>
<td>Value C</td>
<td>Value D</td>
</tr>
</tbody>
</table>
Post-Installation
After installing this module, you can enable its functionality:
- Go to Administration » Configuration » Content authoring » Text formats and editors
- Edit a text format, for example, "Basic HTML"
- Enable both filters:
- "Set scope attribute for table headers"
- "Transform empty table header to table data"
- Ensure the filters are ordered correctly:
- Set scope attribute for table headers" must come before "Transform empty table header to table data"
- Both filters should be below the "Limit allowed HTML tags and correct faulty HTML" filter
Assuming the filters are enabled for a text format that can be used on, e.g., a basic page (node). Create or edit a basic page, then add a table. Indicate the <th> elements in the <table> and save the node. When viewing the (source of the) basic page, the scope attributes are correctly set to the <th> tags.