W3C home > Mailing lists > Public > public-wcag2-techs@w3.org > January 2012

[public-wcag2-techs] <none>

From: WCAG 2.0 Techniques Submission Form <nobody@w3.org>
Date: Fri, 27 Jan 2012 03:24:18 +0000
Message-Id: <E1RqcQE-0008Cy-N2@crusher.w3.org>
To: public-wcag2-techs@w3.org
Submitter's Name: Pierre Dubois
Submitter's Email: duboisp2@gmail.com

Technique ID: UNKNOWN
Short Name: Identifying data group (tbody) in a data table
Technique Category: HTML and XHTML Techniques
Success Criterion Reference: UNKNOWN

Applicability:
HTML and XHTML

This techniques relates to:
* Success Criterion 1.3.1 (Info and Relationships)

Description:
The objective of this techniques is to identifying each data group (tbody) in  a data table. This techniques may be applied, in a data table context, when more than one data row grouping (tbody) are present. 

When only one data row grouping (tbody) exist, the table caption may identify the data group.

The identification of a data group is represented by a cell header (th) with the attribute scope set to &quot;rowgroup&quot;. The data group identification may be made inside it&#039;s group to be identified.

The same identification patern may be use for each data group.

With technique G57: Ordering  content in a meaningful sequence, the cell header (th) to identify the data group may be the first cell header element.


Example 1 Head: Data group identified in a full row
Example 1 Description:

&lt;table&gt;
	&lt;caption&gt;Example 1 - Data group identified in a full row&lt;/caption&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;th&gt;Column 1&lt;/th&gt;
			&lt;th&gt;Column 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;&gt;Row Group 1&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1a&lt;/th&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1b&lt;/th&gt;
			&lt;td&gt;1 1b&lt;/td&gt;
			&lt;td&gt;2 1b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;&gt;Row Group 2&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2a&lt;/th&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2b&lt;/th&gt;
			&lt;td&gt;1 2b&lt;/td&gt;
			&lt;td&gt;2 2b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

&lt;/table&gt;

Example 2 Head: Data group identified in a full column
Example 2 Description:

&lt;table&gt;
	&lt;caption&gt;Example 2 - Data group identified in a full column&lt;/caption&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;
			&lt;th&gt;Column 1&lt;/th&gt;
			&lt;th&gt;Column 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;&gt;Row Group 1&lt;/th&gt;
			&lt;th&gt;Row 1a&lt;/th&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1b&lt;/th&gt;
			&lt;td&gt;1 1b&lt;/td&gt;
			&lt;td&gt;2 1b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;&gt;Row Group 2&lt;/th&gt;
			&lt;th&gt;Row 2a&lt;/th&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2b&lt;/th&gt;
			&lt;td&gt;1 2b&lt;/td&gt;
			&lt;td&gt;2 2b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

&lt;/table&gt;

Resource 1 Title: dev HTML5 - Header and data cell semantics
Resource 1 URI: http://dev.w3.org/html5/spec/Overview.html#header-and-data-cell-semantics

Related Techniques:
G57
H39
H51
F46

Test Procedure:
1. If more than one tbody element are present in the table
2. Check if each group are identified with a cell heading (th) with a scope attribute set to rowgroup
3. Check if each group follow the same identification patern

With the technique G57: Odering the content in a meaningful sequence...
4. Check if each data group (tbody) are identified at the first cell heading element (th).


Expected Result:
Check #2 and #3 are true.

With the technique G57: Odering the content in a meaningful sequence...
Check #4 is true.


Test File 1:

&lt;table&gt;
	&lt;caption&gt;Faillure 1 - Each group are not identified&lt;/caption&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;th&gt;Column 1&lt;/th&gt;
			&lt;th&gt;Column 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1a&lt;/th&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1b&lt;/th&gt;
			&lt;td&gt;1 1b&lt;/td&gt;
			&lt;td&gt;2 1b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2a&lt;/th&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2b&lt;/th&gt;
			&lt;td&gt;1 2b&lt;/td&gt;
			&lt;td&gt;2 2b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

&lt;/table&gt;

Test File 1 Pass/Fail: fail

Test File 2:
&lt;table&gt;
	&lt;caption&gt;Faillure 2 - Each group are not following the same identification patern&lt;/caption&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;
			&lt;th&gt;Column 1&lt;/th&gt;
			&lt;th&gt;Column 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;4&quot; scope=&quot;rowgroup&quot;&gt;Row Group 1&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;2&quot;&gt;Row 1a&lt;/th&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;2&quot;&gt;Row 1b&lt;/th&gt;
			&lt;td&gt;1 1b&lt;/td&gt;
			&lt;td&gt;2 1b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;&gt;Row Group 2&lt;/th&gt;
			&lt;th&gt;Row 2a&lt;/th&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2b&lt;/th&gt;
			&lt;td&gt;1 2b&lt;/td&gt;
			&lt;td&gt;2 2b&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

&lt;/table&gt;


With the technique G57
&lt;table&gt;
	&lt;caption&gt;Faillure 3 - Each group are not identified in a meaningiful sequence&lt;/caption&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;th&gt;Column 1&lt;/th&gt;
			&lt;th&gt;Column 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1a&lt;/th&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
			&lt;td&gt;1 1a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 1b&lt;/th&gt;
			&lt;td&gt;1 1b&lt;/td&gt;
			&lt;td&gt;2 1b&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;&gt;Row Group 1&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2a&lt;/th&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
			&lt;td&gt;1 2a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th&gt;Row 2b&lt;/th&gt;
			&lt;td&gt;1 2b&lt;/td&gt;
			&lt;td&gt;2 2b&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;&gt;Row Group 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;

&lt;/table&gt;

Test File 2 Pass/Fail: fail

Additional Notes:
This technique is related to a recently submited technique, HTML and XHTML Techniques - Using table row grouping to associate data cells with header cells in data tables) (http://lists.w3.org/Archives/Public/public-wcag2-techs/2012Jan/0001.html)

I know I only added reference to the HTML5 specification under development, but I feel this technique can be applied to any XHTML and HTML document. 


No guidelines reference was submitted!
No UA issues were submitted!
No resource 2 title submitted!
No resource 2 URI submitted!


------------------------------------------------

<technique id="UNKNOWN">
<short-name>Identifying data group (tbody) in a data table</short-name>
<applies-to>
<guideline idref="" />
<success-criterion idref="UNKNOWN" />
</applies-to>

<applicability>
HTML and XHTML

This techniques relates to:
* Success Criterion 1.3.1 (Info and Relationships)
</applicability>
<ua_issues>

</ua_issues>
<description>
The objective of this techniques is to identifying each data group (tbody) in  a data table. This techniques may be applied, in a data table context, when more than one data row grouping (tbody) are present. 

When only one data row grouping (tbody) exist, the table caption may identify the data group.

The identification of a data group is represented by a cell header (th) with the attribute scope set to &quot;rowgroup&quot;. The data group identification may be made inside it&#039;s group to be identified.

The same identification patern may be use for each data group.

With technique G57: Ordering  content in a meaningful sequence, the cell header (th) to identify the data group may be the first cell header element.

</description>

<examples>
<ex_head_1>
Data group identified in a full row
</ex_head_1>
<ex_desc_1>

<table>
	<caption>Example 1 - Data group identified in a full row</caption>
	<thead>
		<tr>
			<td></td>
			<th>Column 1</th>
			<th>Column 2</th>
		</tr>
	</thead>
	
	<tbody>
		<tr>
			<th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;>Row Group 1</th>
		</tr>
		<tr>
			<th>Row 1a</th>
			<td>1 1a</td>
			<td>1 1a</td>
		</tr>
		<tr>
			<th>Row 1b</th>
			<td>1 1b</td>
			<td>2 1b</td>
		</tr>
	</tbody>

	<tbody>
		<tr>
			<th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;>Row Group 2</th>
		</tr>
		<tr>
			<th>Row 2a</th>
			<td>1 2a</td>
			<td>1 2a</td>
		</tr>
		<tr>
			<th>Row 2b</th>
			<td>1 2b</td>
			<td>2 2b</td>
		</tr>
	</tbody>

</table>
</ex_desc_1>
<ex_head_2>
Data group identified in a full column
</ex_head_2>
<ex_desc_2>

<table>
	<caption>Example 2 - Data group identified in a full column</caption>
	<thead>
		<tr>
			<td colspan=&quot;2&quot;></td>
			<th>Column 1</th>
			<th>Column 2</th>
		</tr>
	</thead>
	
	<tbody>
		<tr>
			<th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;>Row Group 1</th>
			<th>Row 1a</th>
			<td>1 1a</td>
			<td>1 1a</td>
		</tr>
		<tr>
			<th>Row 1b</th>
			<td>1 1b</td>
			<td>2 1b</td>
		</tr>
	</tbody>

	<tbody>
		<tr>
			<th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;>Row Group 2</th>
			<th>Row 2a</th>
			<td>1 2a</td>
			<td>1 2a</td>
		</tr>
		<tr>
			<th>Row 2b</th>
			<td>1 2b</td>
			<td>2 2b</td>
		</tr>
	</tbody>

</table>
</ex_desc_2>
</examples>

<resources>
<resources_title1>
dev HTML5 - Header and data cell semantics
</resources_title1>
<resource_uri1>
http://dev.w3.org/html5/spec/Overview.html#header-and-data-cell-semantics
</resource_uri1>
<resources_title2>

</resources_title2>
<resource_uri2>

</resource_uri2>
</resources>

<related_techniques>
<related_technique>
G57
</related_technique>
<related_technique>
H39
</related_technique>
<related_technique>
H51
</related_technique>
<related_technique>
F46
</related_technique>
</related_techniques>

<tests>
<procedure>
1. If more than one tbody element are present in the table
2. Check if each group are identified with a cell heading (th) with a scope attribute set to rowgroup
3. Check if each group follow the same identification patern

With the technique G57: Odering the content in a meaningful sequence...
4. Check if each data group (tbody) are identified at the first cell heading element (th).

</procedure>
<expected_result>
Check #2 and #3 are true.

With the technique G57: Odering the content in a meaningful sequence...
Check #4 is true.

</expected_result>
<test_file_1>

<table>
	<caption>Faillure 1 - Each group are not identified</caption>
	<thead>
		<tr>
			<td></td>
			<th>Column 1</th>
			<th>Column 2</th>
		</tr>
	</thead>
	
	<tbody>
		<tr>
			<th>Row 1a</th>
			<td>1 1a</td>
			<td>1 1a</td>
		</tr>
		<tr>
			<th>Row 1b</th>
			<td>1 1b</td>
			<td>2 1b</td>
		</tr>
	</tbody>

	<tbody>
		<tr>
			<th>Row 2a</th>
			<td>1 2a</td>
			<td>1 2a</td>
		</tr>
		<tr>
			<th>Row 2b</th>
			<td>1 2b</td>
			<td>2 2b</td>
		</tr>
	</tbody>

</table>
</test_file_1>
<pass_fail_1>
fail
</pass_fail_1>
<test_file_2>
<table>
	<caption>Faillure 2 - Each group are not following the same identification patern</caption>
	<thead>
		<tr>
			<td colspan=&quot;2&quot;></td>
			<th>Column 1</th>
			<th>Column 2</th>
		</tr>
	</thead>
	
	<tbody>
		<tr>
			<th colspan=&quot;4&quot; scope=&quot;rowgroup&quot;>Row Group 1</th>
		</tr>
		<tr>
			<th colspan=&quot;2&quot;>Row 1a</th>
			<td>1 1a</td>
			<td>1 1a</td>
		</tr>
		<tr>
			<th colspan=&quot;2&quot;>Row 1b</th>
			<td>1 1b</td>
			<td>2 1b</td>
		</tr>
	</tbody>

	<tbody>
		<tr>
			<th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;>Row Group 2</th>
			<th>Row 2a</th>
			<td>1 2a</td>
			<td>1 2a</td>
		</tr>
		<tr>
			<th>Row 2b</th>
			<td>1 2b</td>
			<td>2 2b</td>
		</tr>
	</tbody>

</table>


With the technique G57
<table>
	<caption>Faillure 3 - Each group are not identified in a meaningiful sequence</caption>
	<thead>
		<tr>
			<td></td>
			<th>Column 1</th>
			<th>Column 2</th>
		</tr>
	</thead>
	
	<tbody>
		<tr>
			<th>Row 1a</th>
			<td>1 1a</td>
			<td>1 1a</td>
		</tr>
		<tr>
			<th>Row 1b</th>
			<td>1 1b</td>
			<td>2 1b</td>
		</tr>
		<tr>
			<th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;>Row Group 1</th>
		</tr>
	</tbody>

	<tbody>
		<tr>
			<th>Row 2a</th>
			<td>1 2a</td>
			<td>1 2a</td>
		</tr>
		<tr>
			<th>Row 2b</th>
			<td>1 2b</td>
			<td>2 2b</td>
		</tr>
		<tr>
			<th colspan=&quot;3&quot; scope=&quot;rowgroup&quot;>Row Group 2</th>
		</tr>
	</tbody>

</table>
</test_file_2>
<pass_fail_2>
fail
</pass_fail_2>
</tests>

</technique>

Additional Notes:

This technique is related to a recently submited technique, HTML and XHTML Techniques - Using table row grouping to associate data cells with header cells in data tables) (http://lists.w3.org/Archives/Public/public-wcag2-techs/2012Jan/0001.html)

I know I only added reference to the HTML5 specification under development, but I feel this technique can be applied to any XHTML and HTML document. 
Received on Friday, 27 January 2012 03:24:20 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:45:20 UTC