Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#4 include mechanisms for table accessibility

pending-accepted
nobody
Publishers (9)
5
2013-01-22
2011-04-25
No

The HTML table model allows a better preparation of table structure for (especially screen reader) accessibility when transforming to HTML (and, by analogy, probably to PDF and other digitally accessed output formats too, though I haven't studied this yet).

The CALS table model does not come anywhere near the abilities of the HTML model in associating data cells with table headers.
Especially in complex table setups, a combined use of the HTML-model id and headers attributes is excellent for demystifying the structure of table data - where CALS does not provide any infrastructure that could be used to generate such structuring via XSLT.

Thus, including the HTML table model would cater to accessibility requirements in all publishing contexts transforming docBook content to be accessed online as HTML - and probably also other formats.

References:
Techniques for WCAG2.0: http://www.w3.org/TR/WCAG20-TECHS/H43.html
W3C research on complex tables: http://www.w3.org/html/wg/wiki/ComplexTables
WebAim Guide for accessible data tables: http://webaim.org/techniques/tables/data

Discussion

  • Scott Hudson
    Scott Hudson
    2012-02-15

    The Publishers SC met on 15 Feb 2012 and felt that we need more information and examples in order to consider this request. It is our understanding that CALS provides all of the necessary markup needed to handle table accessibility for output. It is a known limitation that CALS does not do cell shading, but that is not accessibility related and could be supported using xml processing instructions as part of your transform. We'd like to have some concrete examples as to why CALS will not work for you and how HTML would be used.

     
  • I have now put together a more explicit explanation of the issue and hope it serves to
    - clarify what is needed to achieve a semantic correlation of table headers for screen readers in HTML, as well as to
    - show where the CALS model does not provide the necessary structures for truly accessible HTML table output:

    http://n-faktor.net/featured/docBook_tables.html

     
  • As further reference regarding the issue of accessibility especially in the Publishing context, I would like to point to the EDItEUR Initiative, which released best practice guidelines for publishers in 2011:

    http://www.editeur.org/109/Enabling-Technologies-Framework/

    HTH!

     
    • summary: include HTML table model by default --> include mechanisms for table accessibility
     
  • A modification of the CALS table model to include the mechanisms necessary for making tables transformed to HTML accessible has proved to be viable, and since it will be implemented in docBook 5.1 can be taken over into the docBook subset from there.

     
  • Scott Hudson
    Scott Hudson
    2013-01-22

    In order to enhance accessibility for screen readers, the following changes
    are proposed to the DocBook table model for DocBook v5.1 (and associated
    schemas):

    1. Allow @headers attribute on <entry>. Identifies one or more entry
    elements that apply to its entry. The headers attribute contains an
    unordered set of unique space-separated tokens, each of which is an ID
    reference.

    For example:
    <thead><row>
    <entry scope="col" id="col9a">12/12/2005</entry>
    <entry scope="col" id="col9b">12/19/2005</entry>
    <entry scope="col" id="col9c">12/26/2005</entry>
    </row></thead>
    <row>
    <entry id="col8-1b">Actual</entry>
    <entry headers="col9 col9a row1 col8-1b">11,123.45</entry>
    <entry headers="col9 col9b row1 col8-1b">11,012.34</entry>
    <entry headers="col9 col9c row1 col8-1b">10,987.64</entry>
    </row>

    2. Allow @scope attribute on <entry>. The scope attribute can contain one of
    "row" or "col" or "rowgroup" or "colgroup", where:
    * The row keyword, which maps to the row state. The row state means the
    header cell applies to some of the subsequent cells in the same row(s).
    * The col keyword, which maps to the column state. The column state means
    the header cell applies to some of the subsequent cells in the same
    column(s).
    * The rowgroup keyword, which maps to the row group state. The row group
    state means the header cell applies to all the remaining cells in the row
    group. An entry element's scope attribute must not be in the row group state
    if the element is not anchored in a row group.
    * The colgroup keyword, which maps to the column group state. The column
    group state means the header cell applies to all the remaining cells in the
    column group. An entry element's scope attribute must not be in the column
    group state if the element is not anchored in a column group.
    * The auto state. The auto state makes the header cell apply to a set of
    cells selected based on context.

    The scope attribute's missing value default is the auto state.
    <! ENTITY % tbl.entry.scope "scope (row|col|rowgroup|colgroup) #IMPLIED">

    3. Add @rowheader to the colspec element, with possible values 'yes' or
    'no'. There is no default value, but absence of the attribute implies 'no'.

    4. Since there is no @summary in CALS, the table's summary should be allowed
    in a caption. Ensure that <caption> is allowed within <table>.

    This proposal is informed by the following resources (courtesy of Nathalie
    Sequiera):
    http://www.w3.org/html/wg/wiki/IssueTableHeaders
    W3C HTML5 editor's draft (26 June 2012)
    - scope: http://dev.w3.org/html5/spec/the-th-element.html#the-th-element
    - headers:
    http://dev.w3.org/html5/spec/attributes-common-to-td-and-th-elements.html
    Techniques for WCAG2.0: http://www.w3.org/TR/WCAG20-TECHS/H43.html
    W3C research on complex tables: http://www.w3.org/html/wg/wiki/ComplexTables
    WebAim Guide for accessible data tables:
    http://webaim.org/techniques/tables/data

     
  • Scott Hudson
    Scott Hudson
    2013-01-22

    • status: open --> pending-accepted