%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
Table examples
Assistive technology reading tables
Versions that were used in these tests:
- HPR 3.02 (Alt+t for table reading mode; then all four arrow keys). Remember
check Read row and column headings
in Settings | Miscellaneous
- Window-Eyes 4.5 (CTRL+Num+ for table reading mode, then INSERT+arrows) Use
CTRL+SH IFT+H
repeatedly to get row and column headings announced.
- JAWS 4.51 (CTRL+Arrows to move around tables)) Note, JAWS says
"row 3" and "column 2" at the end of a cell announcement. The sample tables have
heading content "ex row" and "col" to distinguish from the automatic announcement.
- JAWS 7.1
- JAWS 8
Note: not all versions were used for every test.
Example 1 - Table using rowspan, colspan, rowgroup and colgroup
| Continent |
Country |
Adult person |
| |
|
Women |
Men |
| North America |
USA |
12 |
13 |
| Canada |
20 |
34 |
| Mexico |
34 |
34 |
| Asia |
india |
23 |
32 |
| Malaysia |
34 |
43 |
- JAWS 7.1 and JAWS 8 are able to read column headers in both rows for the cells below. Which is terrific. Makes coding easier.
But JAWS does not voice both row headers in col# 1 and 2. For "America" it reads only the country names (although both columns have scope=row)
For Asia it reads continent name only because scope=row has been set only for cells in column#1 as a test.
- With WinEyes 6, one can make it read just the continent name and column headers in first row. Not the col/row headers in second row or column. This is default behavior whereby it reads cell contents of first row and first column as headers. In fact WinEyes does this for the “Contact Information” table with phone-fax# (example #9 below) I sent in
earlier too. It does not read the scope =row set on cells in col#2.
Example 2
Table with no headers markup
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 |
data 2 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table with no structrual markup
- HPR 3.02: Treats row 1 and column 1 as headings, including corner which is a taken to be a
heading for both first -row and first column.
- HPR 3.04: Reads no headings at all.
- Window-Eyes 4.5: Just as HPR uses content of row 1 and col 1 as headings information with corner serving
as both row and column heading.
- JAWS 7.10 & JAWS 8.0: Just as HPR uses content of row 1 and col 1 as headings information with corner serving
as both row and column heading.
- JAWS 4.51: Use row 1 and column 1 as assumed headings, but corner is taken as a column heading, not a row
heading.
Example 3
Table with scope (row on corner) only
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 |
data 2 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table with only scope (corner has scope="col")
- HPR 3.02 and 3.04: Treats this exactly as marked up - corner, which has scope="row" is not read as a heading for row
1.
- Window-Eyes4.5 JAWS 4.51 and JAWS 7.1: treat this table with scope markup exactly as the one without scope markup.
In other words the scope not recognized by Window-Eyes or JAWS.
- JAWS 8.0: recognizes the SCOPE element on the "corner" and it correctly reads it as a header for ROW 1, but it fails to ignore it as a header for "ex row 2". It should have ignored the corner when reading "ex row 2" because it was given SCOPE="row" not "col".
Example 4
Table with TH's only on row 1
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 |
data 2 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table with TH in first row
- HPR 3.02 and 3.04: Same as Example 2 - as it should be
- JAWS 4.51 and JAWS 7.10 and Window-Eyes 4.5: Same as 1 and 2..
Example 5
Table with TH's only on first column
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 |
data 2 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table with th's in first column
- HPR 3.02 and 3.04: As marked, only headings announced are in column 1.
- Window-Eyes 4.5. Same as HPR. CHECK
- JAWS 4.51 and 7.10: Reads as in Example 1. No change from markup
Example 6
Table with TH's in row two
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 |
data 2 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table TH's in row 2
- HPR 3.02 and 3.04: Treats row 2 as headings for rows 3 and 4, but not for row 1.
- Window-Eyes 4.5 and JAWS 7.10: Like HPR 3.02 treats row 2 as headings but not for row 1 - also reads
column 1 as row headings. So it seems W-E 4.5: lets TH markup override first row,
but if there are no marked up row headings, they use column 1.
- JAWS 7.1: lets TH markup override first row,
but if there are no marked up row headings, they use column 1.
- JAWS 4.51: Reads as in Example 1. No change from markup.
Example 7
Table with TD's in row two and scope="col"
| corner |
col 2 |
col 3 |
col 4 |
| ex row 2 (w/SCOPE) |
data 2 2 (w/SCOPE) |
data 2 3 (w/SCOPE) |
data 2 4 (w/SCOPE) |
| ex row 3 |
data 3 2 |
data 3 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
data 4 4 |
Reading of table TH's in row 2 and scope="col"
- HPR 3.02 and 3.04: Treats row 2 as column headings for rows 3 and 4, but not row 1. No row headings spoken as it should
be.
- Window-Eyes 4.5, Just as in example 5. No change.
- JAWS 8.0 recognizes the SCOPE element and treats it properly as the heading.
Example 8
The diagonal used as headings with id's and headers.
| heading 1 |
col 2 |
col 3 |
col 4 |
| ex row 2 |
heading 2 |
data 2 3 |
data 2 4 |
| ex row 3 |
data 3 2 |
heading 3 |
data 3 4 |
| ex row 4 |
data 4 2 |
data 4 3 |
heading 4 |
Reading of table with Diagonal as headers with id/headers.
- HPR 3.02: Exactly as marked up
- HPR 3.04: No headings read (a big surprise) - this is a regression from previous version..
- Window-Eyes: reads as marked up except that diagonal elements spoken with row 1 column 1 headings.
- JAWS 4.51 and 7.10: with row and coumn number greater than 1, JAWS reads the diagonal items as column headings, but
continues to read col 1 as row headings. No headings annouced in row 1 or column 1.
Example 9 - simple table with scope=col and scope=row
Include an example with column#1 containing serial numbers for rows in the table and the second column containing the key value for the row. The cells in the second column may then use scope=row. The cells in the first row too are marked up with
and use scope=col.
Contact Information
| Serial# |
Name |
Phone# |
Fax# |
City |
| 1. |
Joel Garner |
412-212-5421 |
412-212-5400 |
Pittsburgh |
| 2. |
Clive Lloyd |
410-306-1420 |
410-306-5400 |
Baltimore |
| 3. |
Gordon Greenidge |
281-564-6720 |
281-511-6600 |
Houston |
Prepared by Jim Thatcher www.JimThatcher.com, Sailesh Panchang www.deque.com Phone: 703-225-0380 (ext 105),
Edited and supplemented by David MacDonald, 613-235-4902 of www.eramp.com
|