Affects Version/s: 2.0
Fix Version/s: None
The Grid Reorderer and Image Reorderer components use the ARIA roles "grid" and "gridcell". In the current implementation, "gridcell" elements are direct children of "grid" elements. However the ARIA 1.0 spec states that:
"Authors MUST ensure that elements with role gridcell are owned by elements with role row, which in turn are owned by an element with role rowgroup, grid or treegrid."
Our implementation of Grid Reorderer and Image Reorderer is missing one or more intermediate layers between "grid" and "gridcell".
We had thought to simply add a single row container for the gridcells but this is not a satisfactory solution. The Reorderers reflow the grid layout dynamically. For example 1 row if all items fit and then broken into 2 rows, and then 3 rows as the width of the container is reduced. See: http://build.fluidproject.org/infusion/demos/reorderer/imageReorderer/
Our keyboard navigation adheres to the reflowed layout. If the Reorderer is displaying 2 or more rows, cursoring to the right or left stops at the edge of the grid and does not wrap.
If we simply wrapped all the gridcells in a single row, we would be misrepresenting the structure.
It would seem like an implementation of role=row would require dynamic modification of the document structure as the grid reflows: adding or removing rows, moving cells.