RE: aria-rowindex and aria-colindex

Hi,
I’ve been thinking a bit more on this, and I think what I’m finding most confusing is how the attributes are named and what the name implies.

I can see how column cell associations can be calculated using native semantic ordering as they occur in the DOM, even in the case of nested table structures.

The name and purpose of aria-rowindex makes sense to me, because it refers to a literal index value of the current row in a set that may not actually be fully rendered, as part of a scrolling grid for example. This matches the array paradigm, where index refers to the current index value in that array of objects.

To me, the name aria-colindex implies that this is the literal counterpart to aria-rowindex, where this too refers to the index value of the current column in an array of column objects. Thus the X in the X-Y calculation.

But from what I gather, the two don’t do the same thing, where aria-rowindex does do what is implied and refers to an index value, but aria-colindex does the opposite and refers to the total in the array, and not the index value at all.

If this is the intended purpose of aria-colindex, I’d recommend changing the name to more accurately reflect this.





From: Bryan Garaventa [mailto:bryan.garaventa@ssbbartgroup.com]
Sent: Friday, January 30, 2015 7:42 AM
To: Matthew King
Cc: Dominic Mazzoni; Joanmarie Diggs; W3C WAI Protocols & Formats; Alexander Surkov
Subject: RE: aria-rowindex and aria-colindex

I know, my point is that it’s a complicated nesting of elements, and the column association may be difficult to calculate by inference without some mechanism for declaring this.

This may already happen via gridcell+aria-describedby for associating column headers, I’m not sure, but would there ever be a use case where no column headers existed to be referenced? I’m not saying it should, just that it might, especially with the introduction of role=table.

From: Matthew King [mailto:mattking@us.ibm.com]
Sent: Friday, January 30, 2015 4:28 AM
To: Bryan Garaventa
Cc: Dominic Mazzoni; Joanmarie Diggs; W3C WAI Protocols & Formats; Alexander Surkov
Subject: RE: aria-rowindex and aria-colindex

Bryan, if it is made into a layout table with role presentation, then there are no columns and rows.

Matt King
IBM Senior Technical Staff Member
I/T Chief Accessibility Strategist
IBM BT/CIO - Global Workforce and Web Process Enablement
Phone: (503) 578-2329, Tie line: 731-7398
mattking@us.ibm.com<mailto:mattking@us.ibm.com>



From:        Bryan Garaventa <bryan.garaventa@ssbbartgroup.com<mailto:bryan.garaventa@ssbbartgroup.com>>
To:        Alexander Surkov <surkov.alexander@gmail.com<mailto:surkov.alexander@gmail.com>>,
Cc:        Joanmarie Diggs <jdiggs@igalia.com<mailto:jdiggs@igalia.com>>, Dominic Mazzoni <dmazzoni@google.com<mailto:dmazzoni@google.com>>, W3C WAI Protocols & Formats <public-pfwg@w3.org<mailto:public-pfwg@w3.org>>
Date:        01/29/2015 04:46 PM
Subject:        RE: aria-rowindex and aria-colindex
________________________________



Using an example I’ve seen recently, what happens when you have a table grid structure constructed entirely of Divs that includes nested tables that are taken out of the accessibility tree using role=presentation, and individual rows may not actually have the same number of gridcells contained within each row?

How would the AT/browser calculate which columns are associated with which cells?

From: Alexander Surkov [mailto:surkov.alexander@gmail.com]
Sent: Thursday, January 29, 2015 1:08 PM
To: Bryan Garaventa
Cc: Joanmarie Diggs; Dominic Mazzoni; W3C WAI Protocols & Formats
Subject: Re: aria-rowindex and aria-colindex

As I understand it that was original idea but it looks people agreed that it should not be used to override native ordering. The use case was to skip number of rows and columns in the grid/table; there's no consensus yet on markup how to achieve it.
Thanks.
Alex.

On Thu, Jan 29, 2015 at 2:31 PM, Bryan Garaventa <bryan.garaventa@ssbbartgroup.com<mailto:bryan.garaventa@ssbbartgroup.com>> wrote:
I think I’m misunderstanding the purpose of aria-colindex.

I thought it was to specify X Y coordinates like row3 cell7, but it looks like from this thread that aria-colindex is meant not to do this at all, but to simply specify the number of total columns in a row, is that correct?

If yes, this doesn’t match the functionality of aria-rowindex, which actually is a Y coordinate.


From: Alexander Surkov [mailto:surkov.alexander@gmail.com<mailto:surkov.alexander@gmail.com>]
Sent: Thursday, January 29, 2015 9:51 AM
To: Joanmarie Diggs
Cc: Dominic Mazzoni; W3C WAI Protocols & Formats
Subject: Re: aria-rowindex and aria-colindex



On Wed, Jan 28, 2015 at 4:55 PM, Joanmarie Diggs <jdiggs@igalia.com<mailto:jdiggs@igalia.com>> wrote:
On 01/28/2015 04:11 PM, Alexander Surkov wrote:
> But why? having aria-colindex on cell makes my example possible. It
> doesn't look any better than on row.

From a conceptual and property naming point of view, I think it does
look better on the cell.

In my mind, a "column index" describes the column number in which a
given cell is located. In other words, a "column index" is one half of a
cell's coordinates.

I think here's a problem since your description means that cell can be moved all around the table through columns. In particular the web author can do
<table>
  <tr>
    <td aria-colindex="2">2nd col</td>
   <td aria-colindex="1">1st col</td>
  </tr>
</table>


Also that means it overrides the native semantics that Dominic was against of. I'd say that the column index is a property of *set* of cells and not a property of an individual cell, thus you cannot override column position on the cell itself and thus the cell is not right place for aria-colindex attribute.


What you're describing seems more like the "first
visible column" which, as I believe you suggest in a different response,
is a property of the table.

Naming issues aside, let's say we put this property on the row or table
rather than on the cell.

right, just attribute on the table to specify amount of skipped rows/columns should be good for spreadsheat use case.

What then happens if we have a case where there
is a gap. Like in a spreadsheet in which certain columns are hidden?
What would the value of your property contain?

I wasn't aware of this use case. If cells are hidden then should be they taken into account when counting? Also I'm curious if doesn't mean that native semantics is overridden by that. Otherwise than that the aria-colindex attribute approach can work here but you have to be very cautious defining this attribute. For example, it would worked out if aria-colindex was allowed on cells of the first row only, aria-rowindex was allowed on rows only.
But if we don't want to support this use case then I think I prefer properties right on the table element, plain and easy.



--joanie

Received on Friday, 30 January 2015 17:36:18 UTC