Re: make aria-owns to rearrange children

I like the querySelector idea - it would give a great deal of flexibility.

On 2/17/2015 9:36 AM, Alexander Surkov wrote:
> I think I like the idea to use querySelector for aria-owns value (for 
> all idrefs attributes?).
>
> On Tue, Feb 17, 2015 at 12:20 PM, Dominic Mazzoni <dmazzoni@google.com 
> <mailto:dmazzoni@google.com>> wrote:
>
>     On Tue, Feb 17, 2015 at 9:09 AM, James Nurthen
>     <james.nurthen@oracle.com <mailto:james.nurthen@oracle.com>> wrote:
>
>         One issue with aria-owns is that as soon as you start to use
>         it you end up with a massive number of idrefs.
>
>
>     We discussed this problem a while back in the context of web
>     components, and there were at least two possible solutions I
>     thought could work:
>
>     * Expose reflected attributes on an Element, allowing for example:
>     parent.ariaOwns = [child3, child2, child1]; or
>     parent.ariaActiveDescendant = child2;
>     * Alllow a querySelector string in place of an idref, for example
>     <tr aria-owns="query(.leftcells .rightcells)"> or <div
>     aria-activedescendant="query([tabIndex='0'])">.
>
>     Are you still interested in pursuing either of those, or even
>     both? I might like to try implementing one of those behind a flag
>     if the group can come to a tentative consensus.
>
>     FWIW, I like Alexander's idea of allowing aria-owns for sibling
>     relationships. I think we should do it either way, and then solve
>     the IDREF problem in general.
>
>     - Dominic
>
>         Something I would like to be able to do is reference a parent
>         node (with role=presentation) in aria-owns with the effect
>         that its children would be owned.
>         One place we hit this a lot is in grids with multiple
>         scrollable regions. So, currently, in the following 2 rows
>         table with 2 scrollable regions, we have the following structure.
>
>         <tr role="row" aria-owns="r1c1 r1c2 r1c3 r1c4 r1c5 r1c6">
>           <td role="gridcell" id="r1c1">
>           <td role="gridcell" id="r1c2">
>         </tr>
>         <tr role="row" aria-owns="r2c1 r2c2 r2c3 r2c4 r2c5 r2c6">
>           <td role="gridcell" id="r2c1">
>           <td role="gridcell" id="r2c2">
>         </tr>
>         <tr role="presentation">
>           <td role="gridcell" id="r1c3">
>           <td role="gridcell" id="r1c4">
>           <td role="gridcell" id="r1c5">
>           <td role="gridcell" id="r1c6">
>         </tr>
>         <tr role="presentation">
>           <td role="gridcell" id="r2c3">
>           <td role="gridcell" id="r2c4">
>           <td role="gridcell" id="r2c5">
>           <td role="gridcell" id="r2c6">
>         </tr>
>
>         What I would like to be able to (which I would like to have
>         the same result in the API mapping) is the following
>
>         <tr role="row" aria-owns="r1c1 r1c2 r1">
>           <td role="gridcell" id="r1c1">
>           <td role="gridcell" id="r1c2">
>         </tr>
>         <tr role="row" aria-owns="r2c1 r2c2 r2">
>           <td role="gridcell" id="r2c1">
>           <td role="gridcell" id="r2c2">
>         </tr>
>         <tr role="presentation" id="r1">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>         <tr role="presentation" id="r2">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>
>         Or, taking it one step further, allow aria-owns to reference
>         itself, which would place the natural children of the element
>         into the ownership at that point in the order so I could do:
>
>         <tr role="row" aria-owns="t1r1 t2r1" id="t1r1">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>         <tr role="row" aria-owns="t1r2 t2r2" id="t1r2">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>         <tr role="presentation" id="t2r1">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>         <tr role="presentation" id="t2r2">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>           <td role="gridcell">
>         </tr>
>
>         If people like this idea I would be happy to come up with some
>         spec text to allow it.
>
>         Regards,
>         James
>
>
>         On 2/15/2015 8:07 AM, Alexander Surkov wrote:
>>         Hi.
>>
>>         aria-owns is used to define parent-child relationship [1].
>>         The spec says nothing how aria-owns affects on
>>         between-siblings relations, i.e. where aria-owns children
>>         have to be in the hierarchy. So there's no way for the author
>>         to control the ordering of explicit and aria-owns children.
>>         The idea [2] was to let aria-owns to refer its own children
>>         to change the ordering. For example,
>>
>>         <div role="grid"
>>         <div role="row" aria-owns="c1 c2 c3 c4">
>>           <div role="gridcell" id="c1">cell1</div>
>>           <div role="gridcell" id="c2">cell1</div>
>>         </div>
>>         </div>
>>
>>         <!-- somewhere in the DOM -->
>>         <div role="gridcell" id="c3">cell1</div>
>>         <div role="gridcell" id="c4">cell1</div>
>>
>>         In this case role="row" would contain 4 cells in the order
>>         specified by aria-owns.
>>
>>         If the idea looks reasonable then the spec could be changed
>>         this way
>>
>>         Insert after existing wording:
>>         "The value <http://www.w3.org/WAI/PF/aria/terms#def_value> of
>>         the |aria-owns| attribute
>>         <http://www.w3.org/WAI/PF/aria/terms#def_attribute> is a
>>         space-separated list of IDREFS that reference one or more
>>         elements in the document by ID."
>>
>>         something like:
>>         "The order the referred elements listed in the value should
>>         be preserved when their parent-child relationship is set. All
>>         explicit unreferred children should be considered followed
>>         aria-owns elements."
>>
>>         Thanks.
>>         Alexander.
>>
>>         [1] http://www.w3.org/WAI/PF/aria/states_and_properties#aria-owns
>>         [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1133213
>
>
>

Received on Tuesday, 17 February 2015 17:44:29 UTC