Reponse to headers
Feedback (5th September 2008)
The replies to my last Public-HTML message don’t quite add up.
scope
Errors in Test Files
It is not a requirement that when
Gez Lemon, Re:colspan
orrowspan
are used thatscope
associations must becolgroup
orrowgroup
.headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
My first analysis linked to the relevant part of HTML4:
row
:- The current cell provides header information for the rest of the row that contains it [...]
It says “the row” rather than “the rows spanned by that cell”. Also, a cell is only contained by one <tr>
.
It’s a similar situation with scope="col"
, as described in that same part of HTML4:
col
:- The current cell provides header information for the rest of the column that contains it.
Again, it says “the column” rather than “the columns spanned by that cell”.
The
Gez Lemon, Re:scope
attributes on the test file are correct.headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
No, they are wrong. Just as my first analysis showed. Hopefully this is clearer to you now.
Standards Compliance of Implementations
The “corrected” markup examples don’t work with screen readers - the incorrect columns are announced the same way as the “bad ” examples.
Gez Lemon, Re:headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
(Referring to the example tables I published previously.)
Test File 2 uses scope
wrongly. Corrected 2 uses scope
properly.
When a device gets scope
wrong, that’s a bug in the device. When a device doesn’t implement scope
, that choice was made by the manufacturer of that device. In either case, the markup in Corrected 2 is still correct.
Comparison Concerns
Your redesigned tables make it far more difficult to compare budgeted, actual, and forecasted data for a particular date - the primary purpose of the table.
Gez Lemon, Re:headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
Those values are adjescent in left-to-right order on the same row, beneath the column headers for that date and aspect. What is “far more difficult” about that compared with the Test Files? They arrange the values top-to-bottom, beneath the column header for date and to the right of the row header for that aspect.
Comparing Between Dates
In the Test File data, values for Budgeted and Forecasted never change with date. As such, there are no useful comparisons can be made between dates. Indeed, I considered collapsing them to a single column each and mentioned this in the analysis.
The values for Actual do change with each date but this comparison isn’t primary, according to Gez’s message. It’s trivial to re-arrange the cells to achieve this whilst keeping the table regular, though. Henri Sivonen suggested (off-list) an alternate arrangement for the Running Costs area to do this.
Users as Designers
The table I put forward for the bug is one example of how the user wants to view the table, which underwent usability studies by our client. Redesigning it so that it’s more difficult to read without any kind of user testing is not an improvement.
Gez Lemon, Re:headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
The work was reviewed by 7 people (not counting myself). The reviewers who expressed a preference were unanimously in favour of the redesigned versions.
As such, I disagree with your claim that the Redesigns are “more difficult to read”.
Re-arrangements & Simplicity
As for rearranging the data table to simplify the problem - the example Gez provided is a user generated table. The user wants to view the table like he wants to view it, as it allows user’s to quickly get an overview in order to make timely decisions.
With the
Laura Carlson, Re:headers
+id
approach. Any table with any relationship between heading cells and data cells can be defined directly by addingid
attributes andheaders
attributes to the cells - not touching the structure of the table.headers
issue resolved - allowing a<td>
to be referenced by a header to be in the HTMl5 spec.
Corrected 1, 2 and 3 do not re-arrange the cells. They merely correct errors and unfair shortcuts made in the corresponding Test File 1, 2, and 3. This allows accurate comparisons to be made between the techniques, such as those in the comparison table I provided last time.
The comparison table, along with View Source, show how much simpler and more intuitive the plain
scope
or headers
+id
.
I’ve since had an off-list conversation with Gez about the origin of the Test File table. It revealed that:
- The original has hundreds of rows, yet the Test Files only have 2 rows.
- The 3 aspects are given for 25 dates, yet the Test Files only have 3 dates.
- The arrangement of columns is different.
- The data was scrambled.
The Test Files, particularly Test File 3, were presented as being genuine during the telecon. Yet this off-list discussion has revealed they were falsified, with massive alterations from the original. I find this shocking.
Genuine Research
In my tables study from 2007, the original source is linked to directly or an exact snapshot is given. Some of the directly linked tables have changed since I collected them. But they were all correct in early 2008, when Ian Hickson analysed them to produce the table header association we currently have in HTML5.
Genuine tables were analysed so that accurate conclusions were made. The openness of the collection lets reviewers check the tables for themselves, unmodified and “in situ”. These tables, pure and real, are what Smart Headers and the HTML5 algorithm were developed from.