- From: James Nurthen <james.nurthen@oracle.com>
- Date: Tue, 17 Feb 2015 09:43:55 -0800
- To: Alexander Surkov <surkov.alexander@gmail.com>, Dominic Mazzoni <dmazzoni@google.com>
- CC: W3C WAI Protocols & Formats <public-pfwg@w3.org>
- Message-ID: <54E37DDB.40705@oracle.com>
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