office-accessibility message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Fw: ODF Subtable report
- From: Richard Schwerdtfeger <schwer@us.ibm.com>
- To: office-accessibility@lists.oasis-open.org
- Date: Thu, 31 Aug 2006 10:00:40 -0600
ODF Subtable report from Hiro, Chieko, and Pete.
Rich Schwerdtfeger
Distinguished Engineer, SWG Accessibility Architect/Strategist
Chair, IBM Accessibility Architecture Review Board
blog: http://www.ibm.com/developerworks/blogs/page/schwer
----- Forwarded by Richard Schwerdtfeger/Austin/IBM on 08/31/2006 10:41 AM -----
Pete Brunet/Austin/IBM
08/31/2006 07:05 AM
|
|
Hiro, I have added the section you requested.
Rich, Please send this to the list.
Pete Brunet
IBM Accessibility Architecture and Development
11501 Burnet Road, MS 9022E004, Austin, TX 78758
Voice: (512) 838-4594, TL 678-4594, Fax: (512) 838-9666
Ionosphere: WS4G
Hironobu Takagi/Japan/IBM@IBMJP
Hironobu Takagi/Japan/IBM@IBMJP
08/30/2006 08:52 AM
|
|
Pete,
I drafted the report about the subtable issue.
Could you review it and add description about the address issue to the Detailed Description section?
Thank you.
Best Regards,
Hiro
--------
Topic: Accessibility issues of "subtable" attribute in tables
Corresponding Section in Spec:
8.2.6 Subtables (p190) in ODF 1.0 edition 2
8.2.6 Subtables (p189) in ODF 1.1 draft cd2
Overview:
"is-subtable" is an attribute to visually merge nested tables into one table.
This function generates a gap between visual appearance and XML structure, and it impacts on accessibility from two aspects.
- It makes non-visual table navigation difficult.
- It makes table addresses confusing.
Recommendation:
- Classify the "is-subtable" attribute as a deprecated attribute.
- Describe the issue and non-recommendation (future deprecation) in the accessibility guidelines for ODF1.1
Timeline for changing ODF spec:
ODF 1.2
Detailed Description:
Before explaining subtable issue, let me explain the issue by using HTML examples.
Table 1 in sample.htm shows an example of accessible table without nested table (in HTML).
If the current cursor positions at the "NBA Nation" cell in the Table 1, a user can easily jump to the appropriate time slot cell (8:30pm) by using row header jump/read key.
Table 1: Example of a table without any nested table
---------------------
<h1>Table 1. Example of table with "span"</h1>
<table border="1">
<tr>
<td></td>
<th>CBS</th>
<th>ABC</th>
</tr>
<tr>
<th>8:00pm</th>
<td rowspan="2">Gameshow Marathon</td>
<td>America's Funniest...</td>
</tr>
<tr>
<th>8:30pm</th>
<td>NBA Nation</td>
</tr>
</table>
---------------------
However, in the case of Table 2 (in sample.htm), it is not possible to jump from the "NBA Nation" cell to the "8:30pm" cell by using table header jump command.
There is no semantical relationship among between these two cells.
Table 2: Example of a table with nested tables
---------------------
<h1>Table 2. Example of table with "nested table"</h1>
<table border="1">
<tr>
<td></td>
<th>CBS</th>
<th>ABC</th>
</tr>
<tr>
<td rowspan="2">
<table border="1">
<tr>
<th>8:00pm</th>
</tr>
<tr>
<th>8:30pm</th>
</tr>
</table>
</td>
<td rowspan="2">Gameshow Marathon</td>
<td rowspan="2">
<table border="1">
<tr>
<td>America's Funniest...</td>
</tr>
<tr>
<td>NBA Nation</td>
</tr>
</table>
</td>
</tr>
</table>
---------------------
ODF also has both the span method and the nested-table method as described in the Section 8.2.6 (p191) in ODF1.0 spec.
The issue is current ODF editors automatically generate nested tables when a user merge/split a table cell in word processor documents.
I will attach both examples in sample.odt.
They look just the same. I can say there is a gap between the tag structure and the visual structure.
The "sample.odt" was manually created, since current editors do not have function to create tables without subtable (accessible).
Please do not modify and overwrite this file by using editors. Editors will automatically convert Example 1(without sub-table) into Example 2 (with sub-table).
Example 1: Example of a table without sub-table (accessible)
-------------------------
<table:table table:name="Example1" table:print="false">
<table:table-column table:number-columns-repeated="3"/>
<table:table-row >
<table:table-cell />
<table:table-cell office:value-type="string">
<text:p>CBS</text:p>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>ABC</text:p>
</table:table-cell>
</table:table-row>
<table:table-row >
<table:table-cell office:value-type="string">
<text:p>8:00pm</text:p>
</table:table-cell>
<table:table-cell office:value-type="string" table:number-columns-spanned="1" table:number-rows-spanned="2">
<text:p>Gameshow Marathon</text:p>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>America's Funniest... </text:p>
</table:table-cell>
</table:table-row>
<table:table-row >
<table:table-cell office:value-type="string">
<text:p>8:30pm</text:p>
</table:table-cell>
<table:covered-table-cell />
<table:table-cell office:value-type="string">
<text:p>NBA Nation</text:p>
</table:table-cell>
</table:table-row>
</table:table>
-------------------------
Example 2: Example of a table with sub-table (inaccessible)
-------------------------
<table:table table:name="Example2" >
<table:table-column table:number-columns-repeated="3"/>
<table:table-row>
<table:table-cell office:value-type="string">
<text:p/>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>CBS</text:p>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>ABC</text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell>
<table:table table:is-sub-table="true">
<table:table-column />
<table:table-row>
<table:table-cell office:value-type="string">
<text:p>8:00pm</text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell office:value-type="string">
<text:p>8:30pm</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>Gameshow Marathon</text:p>
</table:table-cell>
<table:table-cell>
<table:table table:is-sub-table="true">
<table:table-column />
<table:table-row>
<table:table-cell office:value-type="string">
<text:p>America's Funniest... </text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell office:value-type="string">
<text:p>NBA Nation </text:p>
</table:table-cell>
</table:table-row>
</table:table>
</table:table-cell>
</table:table-row>
</table:table>
Besides the navigation issue just described, there is the issue of with cell addressing. This is caused by the use of sub-tables as the means to implement split or merge. The ODF spec requires special cell addressing when sub-tables are used. This is to provide semantics so the user will recognize they are in a sub-table. However, in the case of using sub-tables to implement split or merge, there is no sub-table that the author is aware of so unintended semantics are conveyed to the user.
Here is a simple example of the problem that results when using sub-tables to implement split/merge. Note that there is a B2 under a C1
A1 | B1 | C1 |
A2 | B2.1.1 | B2.2.1 |
B2.1.2 |
This what it would look like if spanning was used. Notice that C2 is below C1.
Here is a more complicated example. This table was a 2x4; a merge and two splits was done under B1 and C1. Note that this results in C2 below D1.
Other more complicated and very confusing examples can be created.
---------------------
Hironobu Takagi, PhD.
User Experience and Accessibility Technology
Tokyo Research Laboratory
+81-46-215-4557
E-mail: takagih@jp.ibm.com
(See attached file: sample.htm)(See attached file: sample.odt)

Title: nested table example
Table 1. Example of a table with "span"
|
CBS |
ABC |
8:00pm |
Gameshow Marathon |
America's Funniest... |
8:30pm |
NBA Nation |
Table 2. Example of a table with "nested table"
|
CBS |
ABC |
|
Gameshow Marathon |
America's Funniest... |
NBA Nation |
|
sample.odt
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]