Subject: [jats-list] @scope and @headers From: "Tony Graham tgraham@xxxxxxxxxxxxx" <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 9 Apr 2019 12:13:06 -0000 |
@scope [1] and @headers [2] are designed to make tables more accessible by making explicit the relationship between a Table Header Cell and the cell(s) to which it applies. For example, spanning table cells and cells in the first column(s) that relate to the rest of the cells in the current row aren't such a problem when you can look at the formatted table but are rather more of a problem when you have to have each table cell read aloud to you.
@scope specifies the cells for which the current cell acts as a head cell. For LTR tables, this is the cells down and/or to the right of the current cell.
@headers works in the opposite direction. It identifies the cell(s) acting as a header cell for the current cell.
@scope and @headers map straight to same-named attributes in HTML output, and they also map to 'Scope' and 'Headers' attributes in Tagged PDF. PDF/UA (ISO 14289-1) favours 'Headers' over 'Scope' but does require 'Scope' when 'Headers' and IDs is not clear enough:
If the tablebs structure is not determinable via Headers and IDs, then structure elements of type TH shall have a Scope attribute.
- @scope and @headers are not mentioned in the 'Accessibility' chapter [3].
- I haven't seen @scope or @headers used in any examples in the Tag Library.
Specifies the cells for which the <td> element provides header information.
which doesn't mention that @scope also applies to <th>. @scope could be use with a <th> when, for example, the <th> is in the first column of a body row or the <th> spans multiple columns of the table header [4] (although, arguably, that relationship could be inferred, as it is in HTML5 and in PDF 2.0).
- In the definitions of @scope values, 'rest' and 'remaining' are not defined. (HTML specs don't manage that either.) It might not be clear, for example, that for 'rowgroup', "all the remaining cells in the row group" does not include a cell in a following row but in a preceding column [5].
It shall reflect whether the header cell applies to the rest of the cells in the row that contains it, the column that contains it, or both the row and the column that contain it.
- The definition of @headers does not say anything about the relationship between the current table cell and the referred-to table cells:
Putting the ID of every header cell in @headers on every table cell would satisfy that definition, but it wouldn't be very useful.
How was that determined? Browsers can cope with it, YMMV whether any particular browser+screen-reader combination will use @scope (it appears that NVDA 19.1 [6] with Firefox 66.0.2 ignores @scope), but everything that generates PDF/UA has to support 'Scope'.
- The Tag Library entry for @headers could note that @headers must not point to itself.
- The definition of the @headers value is somewhere between wrong and misleading:
Points to (contains) a list of one or more IDs of rows and columns that supply header information.
It should be the IDs of <th> or <td> elements, not of <row> or <column> elements.
- The @scope and @headers definitions both include 'XHMTL' rather than 'XHTML'.
Tony Graham. -- Senior Architect XML Division Antenna House, Inc. ---- Skerries, Ireland tgraham@xxxxxxxxxxxxx
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[jats-list] [ANN] Reminder: Balisag, Tommie Usdin btusdin | Thread | Re: [jats-list] @scope and @headers, Bruce Rosenblum bruc |
[jats-list] [ANN] Reminder: Balisag, Tommie Usdin btusdin | Date | Re: [jats-list] @scope and @headers, Bruce Rosenblum bruc |
Month |