[jats-list] @scope and @headers

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.

All of which brings me to:

 - @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.

- @scope is defined as:

      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].

ISO 32000-1 (PDF 1.7) possibly puts it best:

      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.

but ISO 32000-1 doesn't have column groups.

 - The definition of @headers does not say anything about the
   relationship between the current table cell and the referred-to
   table cells:

List of @ids for table data and header 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.

- The page for @scope includes this remark:

Caution: This attribute has not been widely supported.

   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'.


Regards,



Tony Graham. -- Senior Architect XML Division Antenna House, Inc. ---- Skerries, Ireland tgraham@xxxxxxxxxxxxx

[1] https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/scope.html
[2] https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/headers.html
[3] https://jats.nlm.nih.gov/publishing/tag-library/1.2/chapter/accessibility.html
[4] https://www.w3.org/TR/html401/struct/tables.html#h-11.4.1
[5] https://www.w3.org/TR/html5/tabular-data.html#example-203d1261
[6] https://www.nvaccess.org/


Current Thread