Re: Please clarify ARIA definition of "grid" role

On Aug 31, 2010, at 7:40 AM, Maciej Stachowiak wrote:

> On Aug 31, 2010, at 4:45 AM, Richard Schwerdtfeger wrote:
>> 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.

This still isn't right. The BaseConcept of grid is "HTML table", and the Required Owned Elements for grid are:
 • row
 • rowgroup → row

Last November at the F2F, we added the rowgroup role specifically so that ARIA grids could have role symmetry with the HTML table child elements thead, tbody, and tfoot. 

 rowgroup http://www.w3.org/WAI/PF/aria/complete#rowgroup
 BaseConcept: HTML thead, tfoot, and tbody 
 Note: This role does not differentiate between types of row groups (e.g. thead vs. tbody), but an issue has been raised for WAI-ARIA 2.0.

One of the reasons we needed role symmetry was due to the complexities of presentation inheritance with host language implicit semantics.

From the spec: http://www.w3.org/WAI/PF/aria/complete#presentation

> When an explicit or inherited role of presentation is applied to an element with the implicit semantic of a WAI-ARIA role that has required owned elements, in addition to the element with the explicit role of presentation, the user agent MUST apply an inherited role of presentation to any owned elements that do not have an explicit role defined. For any element with an explicit or inherited role of presentation and which is not focusable, user agents MUST ignore role-specific WAI-ARIA states and properties for that element. For example, in HTML, a table element with a role of presentation will have the implicit native semantics of its tr element removed because the grid role to which the table corresponds has a required owned element of row. In turn, the implicit native semantics of the th and td elements will also be removed, because the row has required owned elements of role gridcell/columnheader/rowheader, which correspond to th and td elements. The same principle applies to list elements with required owned listitem elements: ul and ol elements with a role of presentation will have the implicit semantics of their li children removed as well. Explicit roles on an owned element override the inherited role of presentation, and cause the owned element to behave as any other element with an explicit role.
> 
> Note: Only the implicit native semantics of elements that correspond to WAI-ARIA required owned elements are removed. All other content remains intact, including nested tables or lists, unless those elements also have a explicit role of presentation applied.
> 
> For example, according to an accessibility API, the following markup elements would appear to have identical role semantics (no roles) and identical content.
> 
> <!-- 1. [role="presentation"] negates the implicit 'list' and 'listitem' role semantics but does not affect the contents. -->
> <ul role="presentation">
>  <li> Sample Content </li>
>  <li> More Sample Content </li>
> </ul>


Among other issues, if an HTML table does not have an implicit role of grid, all the work we put into presentation inheritance falls apart.

- James

Received on Tuesday, 31 August 2010 21:31:16 UTC