Re: Please clarify ARIA definition of "grid" role

Maciej,

ARIA grids are interactive in they may be editable and the user is also
allowed navigate by among gridcells:

"Grids allow the user to move focus between cells using two dimensional
navigation. For example, grid might be used as the invisible data model
(hidden with CSS but still operable by assistive technologies) for a
presentational chart."

What you are suggesting as interactive is that a link or some other
interactive element is stuffed in a cell in a table. The <table> has no
control over the navigation among those elements by default. The
interaction with those embedded within the table occurs at the document
level and is in no way governed by the table, unless the author introduces
script on the table to change how it behaves. In this situation you no
longer have a table as it has been re-purposed and does not follow the
functionality of an HTMl 5 table.

What our task is, is to define <table> in terms of ARIA host language
semantics.

If we are going to defined the table element in terms of ARIA semantics
whereby our define of grid one one of an interactive table, then we have
only two choices:

- take our first proposal which states that Table has no default ARIA
semantics, which is true.
- If we are going to define Table in terms of ARIA semantics then we would
need to define table in terms of a static non-interactive, non-navigable
ARIA grid. The HTML specification does not state that a table is not
non-interactive nor does it state that it can't be me made navigable. The
only thing it states that a <table> can't be used for is layout (which I
disagree with and is inconsistent with worldwide web usage of table). Yet,
a table allows an author to apply script to it to change its functionality.

Our experience has been that authors create ARIA grids using <divs> and
<spans> as well as stronger semantic elements like tables.

This would all have been easier if we had defined an ARIA table role but
given the extensive set of properties we have in HTML that we would need to
reproduce we felt it easier to simply tell the user to use an HTML table.
This strategy has proven to be very successful.

Rich Schwerdtfeger
CTO Accessibility Software Group



From:	Maciej Stachowiak <mjs@apple.com>
To:	Richard Schwerdtfeger/Austin/IBM@IBMUS
Cc:	James Craig <jcraig@apple.com>, public-pfwg-comments@w3.org,
            public-pfwg-comments-request@w3.org, Steve Faulkner
            <sfaulkner@paciellogroup.com>
Date:	08/30/2010 02:52 PM
Subject:	Re: Please clarify ARIA definition of "grid" role




On Aug 30, 2010, at 12:32 PM, Richard Schwerdtfeger wrote:



      The ARIA spec is clear as with the change you suggested it more
      clearly states that a grid encompasses interactive, tabular data.

      We do not have a table role in aria. So, if we want to have HTML use
      grid as the default host language semantics used by ARIA the only
      appropriate role would be to use grid. Yet, grid is not used for
      static tables.
      So, if we simply state somewhere in the HTML 5 spec that a table is a
      form of static grid.

      And table refers to a grid in its definition:

      The table element represents data with more than one dimension, in
      the form of a table.

      The HTML 5 definition of table:

      http://dev.w3.org/html5/spec/tabular-data.html#concept-table


      A table consists of cells aligned on a two-dimensional grid of slots
      with coordinates (x, y). The grid is finite, and is either empty or
      has one or more slots. If the grid has one or more slots, then the x
      coordinates are always in the range 0 ˜ x < xwidth, and the y
      coordinates are always in the range 0 ˜ y < yheight. If one or both
      of xwidth and yheight are zero, then the table is empty (has no
      slots). Tables correspond to table elements.

      So, if we change the table description in HTML 5:

      The table element represents data with more than one dimension, in
      the form of a table.

      to

      The table element represents data with more than one dimension, in
      the form of a non-interactive table.

      And then put grid as the native host language semantics for table I
      think the HTML spec would be in synch.



1) I don't understand the goal of this proposal. I thought the problem with
using "grid" for table was that "grid" has to be interactive, but <table>
by default is not. If I understand your proposal, you suggest that the
table definition should emphasize that a table is non-interactive, but the
ARIA section should still give it a default role of "grid". I don't see how
this solves the problem.

2) tables may not be interactive by default, but they can be made
interactive through script or other means (for example simply by giving
each non-header cell a tabindex, or by making the contents of some cells be
contentEditable). It would be incorrect for the definition of table to
define tables as non-interactive.

Regards,
Maciej







      Rich Schwerdtfeger
      CTO Accessibility Software Group

      <graycol.gif>Maciej Stachowiak ---08/30/2010 01:35:18 PM---On Aug 30,
      2010, at 11:26 AM, Richard Schwerdtfeger wrote: > James,

      From: Maciej Stachowiak <mjs@apple.com>
      To: Richard Schwerdtfeger/Austin/IBM@IBMUS
      Cc: James Craig <jcraig@apple.com>, public-pfwg-comments@w3.org,
      public-pfwg-comments-request@w3.org, Steve Faulkner <
      sfaulkner@paciellogroup.com>
      Date: 08/30/2010 01:35 PM
      Subject: Re: Please clarify ARIA definition of "grid" role






      On Aug 30, 2010, at 11:26 AM, Richard Schwerdtfeger wrote:
                  James,

                  The reason we created grid was to turn a table into one
                  that is interactive, however, some component libraries
                  like Dojo do not use table to create the actual grid.
                  They use divs and spans to lay out the structure.
                  I think if we were to do what you suggest HTML should
                  modify its definition of table to be a non-interactive
                  grid.

                  As for a grid having to be in inside an element with
                  role="application" that is inaccurate. Windows assistive
                  technologies now recognize elements with an aria role of
                  grid and pass keyboard navigation off to the widget as
                  they know they are interactive. No role="application" on
                  the body tag is required.

                  Maciej,

                  Would HTML be willing state that a table is an
                  non-interactive grid in its definition or simply state
                  that <table> is non-interactive?
      I'm not sure what that would entail. Would a table have role=grid in
      that case? Would additional notes in the ARIA mapping table or
      elsewhere be required?

      I personally have no strong feelings on whether the grid role needs
      to be interactive. I would be happy either way. However:

      a) The ARIA spec should be exceeding clear one way or the other on
      this issue,
      b) It would be good to have a clear decision soon, since this will
      impact HTML5 and it would be better not to thrash.

      I can ask the editor to hold off on fielding the bug that asks for
      the grid role to be removed from table, but in general we're trying
      to get these HTML5 bugs resolved as quickly as possible.

      Regards,
      Maciej




                  Rich Schwerdtfeger
                  CTO Accessibility Software Group

                  <graycol.gif>James Craig ---08/29/2010 02:17:35
                  PM---Added the following note to ISSUE-421. I'd support
                  allowing the HTML role mapping of table to grid b

                  From: James Craig <jcraig@apple.com>
                  To: Richard Schwerdtfeger/Austin/IBM@IBMUS
                  Cc: Maciej Stachowiak <mjs@apple.com>,
                  public-pfwg-comments@w3.org,
                  public-pfwg-comments-request@w3.org, Steve Faulkner <
                  sfaulkner@paciellogroup.com>
                  Date: 08/29/2010 02:17 PM
                  Subject: Re: Please clarify ARIA definition of "grid"
                  role
                  Sent by: public-pfwg-comments-request@w3.org




                  Added the following note to ISSUE-421.

                  I'd support allowing the HTML role mapping of table to
                  grid because the distinction you're making applies to
                  behavior, not role. A table is just a readonly grid that
                  is not focus-managed by the author. If we limit grids to
                  interactive controls and explicitly disallow the role on
                  tables, we won't have role symmetry with HTML, and we'd
                  need to define a few more roles. We specifically added
                  rowgroup to account for thead, tbody, and tfoot, so we've
                  already implied that this is a suitable role for HTML
                  tables.

                  I believe the reason you're making the distinction is due
                  to the Windows screen readers behavior of key events
                  inside elements with role application. What if we added
                  the prose to indicate that grids inside
                  [role="application"] where interactive,
                  author-managed-focus controls, and grids inside
                  [role="document"] were readonly, UA-managed-focus tables?


                  On Aug 28, 2010, at 9:13 PM, Richard Schwerdtfeger wrote:
                                          Maciej,

                                          That's fair. I have opened issue
                                          421 to address this change with
                                          your suggested text.
                                          http://www.w3.org/WAI/PF/Group/track/issues/421



                                          Thank you,
                                          Rich


                                          Rich Schwerdtfeger
                                          CTO Accessibility Software Group

                                          <graycol.gif>Maciej Stachowiak
                                          ---08/28/2010 08:45:00 PM---On
                                          Aug 26, 2010, at 7:51 PM, Richard
                                          Schwerdtfeger wrote: > Tables do
                                          NOT allow users to move focus

                                          From: Maciej Stachowiak <
                                          mjs@apple.com>
                                          To: Richard
                                          Schwerdtfeger/Austin/IBM@IBMUS
                                          Cc: public-pfwg-comments@w3.org,
                                          public-pfwg-comments-request@w3.org
                                          , Steve Faulkner <
                                          sfaulkner@paciellogroup.com>
                                          Date: 08/28/2010 08:45 PM
                                          Subject: Re: Please clarify ARIA
                                          definition of "grid" role





                                          On Aug 26, 2010, at 7:51 PM,
                                          Richard Schwerdtfeger wrote:

                                          > Tables do NOT allow users to
                                          move focus between cells using
                                          two dimensional navigation.
                                          >
                                          My reading of that sentence was
                                          that it was a statement of fact
                                          about what would happen if you
                                          apply the grid role (that the
                                          assistive technology would
                                          provide two-dimentional
                                          navigation), not a limitation on
                                          when it may be applied. Since
                                          multiple people misunderstood
                                          this definition on first reading,
                                          I think a clarification would
                                          still be helpful, even if you
                                          think it is not strictly
                                          necessary. For example:

                                          "A grid is an interactive control
                                          which contains cells of tabular
                                          data arranged in rows and
                                          columns, like a table."

                                          I think that simple change to
                                          ARIA would have prevented all
                                          confusion.

                                          Regards,
                                          Maciej

                                          >
                                          >
                                          > Rich Schwerdtfeger
                                          > CTO Accessibility Software
                                          Group
                                          >
                                          > <graycol.gif>Maciej Stachowiak
                                          ---08/26/2010 05:03:10 AM---ARIA
                                          has the following definition of
                                          the "grid" role: ------------
                                          >
                                          > From: Maciej Stachowiak <
                                          mjs@apple.com>
                                          > To: public-pfwg-comments@w3.org
                                          > Cc: Steve Faulkner <
                                          sfaulkner@paciellogroup.com>
                                          > Date: 08/26/2010 05:03 AM
                                          > Subject: Please clarify ARIA
                                          definition of "grid" role
                                          > Sent by:
                                          public-pfwg-comments-request@w3.org

                                          >
                                          >
                                          >
                                          >
                                          > ARIA has the following
                                          definition of the "grid" role:
                                          >
                                          > ------------
                                          > <
                                          http://www.w3.org/TR/wai-aria/roles#grid

                                          >
                                          > A grid contains cells of
                                          tabular data arranged in rows and
                                          columns, like a table.
                                          >
                                          > Grids do not necessarily imply
                                          presentation. The grid construct
                                          describes relationships between
                                          data such that it may be used for
                                          different presentations. Grids
                                          allow the user to move focus
                                          between cells using two
                                          dimensional navigation. For
                                          example, grid might be used as
                                          the invisible data model (hidden
                                          with CSS but still operable by
                                          assistive technologies) for a
                                          presentational chart.
                                          > ------------
                                          >
                                          > This seems like an exact match
                                          for the HTML <table> element,
                                          which contains cells of tabular
                                          data arranged in rows and
                                          columns, like a table. According
                                          to Steve Faulkner, however, this
                                          role is only supposed to be used
                                          for *interactive* presentations
                                          of tabular data arranged in rows
                                          and columns. Please update the
                                          ARIA draft to make this clear.
                                          Or, if the grid role is in fact
                                          supposed to be applicable even to
                                          non-interactive presentations of
                                          tabular data, please reply with
                                          this information ASAP, since it
                                          is relevant to the ARIA role
                                          mapping in the HTML5 spec.
                                          >
                                          > Regards,
                                          > Maciej
                                          >
                                          >
                                          >

Received on Tuesday, 31 August 2010 11:46:33 UTC