Re: Please clarify ARIA definition of "grid" role

On Aug 31, 2010, at 4:45 AM, Richard Schwerdtfeger wrote:

> 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.
> 
No, I'm suggesting that the following is conforming markup:

<table>
<tr><td tabindex=0>One</td><td tabindex=0>Two</td><tr>
</table>

This allows keyboard focus navigation among cells. It's the table cells themselves that are focusable, they don't contain links. Thus, it would be wrong to imply that a table *can't* be interactive. It is only accurate to say that a table does not provide any default interaction behavior (in most UAs).

> 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. 
> 
I think the first option is superior. If <table> does not satisfy the "grid" role by default, then it should just have no role. I don't think it's helpful to say it is kind of a grid but not really.
> 
> 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. 
> 

Sounds fine to me.

Although this leaves a gap for non-interactive tables made with SVG, or MathML tables made with the <mtable> element. So maybe a table role would be a good addition for a future version of ARIA. It's not really essential to change it right now. For now it sounds like the right thing is for HTML5 to say no role, and we already have a bug to that effect, which I have linked to this discussion.

Regards,
Maciej

Received on Tuesday, 31 August 2010 14:41:32 UTC