I'm starting a new thread for this. Here are just a few initial questions about:Overall this looks very comprehensive and well-designed. I didn't realize that you were working on an API simultaneously for exposing the accessibility tree, and also for allowing authors to extend it. Neat idea.
Here are my first questions, in no particular order.Why do you have an AccessibleSource object to be filled in, rather than allowing authors to extend AccessibleElement directly? Is the main issue that AccessibleSource can provide attributes like name, description, value but it can't override the tree-walking interfaces?
What do you want to do about aria-owns? I've heard that you're considering having the browser implement aria-owns internally by rearranging the accessibility tree exposed to AT rather than forcing each AT to keep track of that relation. If so, when walking the AccessibleElement tree would you get the rearranged tree?
Along those lines, why do appendChildren and insertBefore return a new element? Why not allow the author to reparent an existing element somewhere else? That would essentially be an alternative way of implementing aria-owns.
Have you thought about extending this to support multiple frames? If this is really supposed to represent the same interface that AT sees, then it'd be great if it could represent the full composed accessibility tree that spans multiple frames.
What do you want to do to represent the huge number of roles? The more common ones have an ARIA role and it'd make sense to use the same name where it exists, but there are lots of HTML elements that map to a unique native role. Would every one of those have to be part of this spec? Part of the challenge I see there is that the set of roles on each native platform is so different - I'm afraid that the list of roles necessary would be the superset of roles needed by all platforms, which will only grow.
Finally, what's the use case for allowing the author to extend the taxonomy? While menuitemcheckbox makes sense, most permutations of existing roles don't make much sense.
--
You received this message because you are subscribed to the Google Groups "Browser Accessibility Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to browser-accessibil...@googlegroups.com.
To post to this group, send email to browser-acce...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/browser-accessibility-dev/CAFz-FYyh2Pi-XgYuKkzjMLgbo4awKb2uY4eDPxjiPtBvP9AL5w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Why do you have an AccessibleSource object to be filled in, rather than allowing authors to extend AccessibleElement directly? Is the main issue that AccessibleSource can provide attributes like name, description, value but it can't override the tree-walking interfaces?I think yes. If we didn't want to create a11y trees in JS then we could cut off 'readonly' part from attributes of AccessibleElement interface.
But even keeping in mind JS trees I'm not confident about AccessibleSource and I think it's felt a bit like hypostatization issue but there are reason behind the approach. AccessibleSource is semantically different than AccessibleElement since AccessibleSource is *description* of AccessibleElement, and thus it doesn't have to look exactly same as AccessibleElement. For example, if AccessibleElement has 'states' attribute which is an ValueSet object then AccessibleSource may have 'state' attribute which is an array of states for web author convince. Another example is AccessibleSource may skip 'name' property if 'labelledby' relation was provided, AccessibleElement has to return both name and labelledby relation. Another reason is technical one, afaik WebIDL doesn't allow to combine interface and callback interface into one entity, so if it's something implemented in c++ then it cannot be implemented in js. Not sure if that was necessary part to answer your question :)
What do you want to do about aria-owns? I've heard that you're considering having the browser implement aria-owns internally by rearranging the accessibility tree exposed to AT rather than forcing each AT to keep track of that relation. If so, when walking the AccessibleElement tree would you get the rearranged tree?Right, I tend to think if aria-owns altered the accessible tree then it would be easier to implement aria-owns, both on browser and AT side since you don't have to care about stuff like group position, relations, eventing etc when aria-owns used. AccessibleElement is supposed to reflect accessible tree hierarchy, so walking AccessibleElement hierarchy should make you walk the rearranged tree I think.
Along those lines, why do appendChildren and insertBefore return a new element? Why not allow the author to reparent an existing element somewhere else? That would essentially be an alternative way of implementing aria-owns.These methods take accessible source and return new accessible element for them. Do you think to make them accepting AccessibleElements or DOM nodes additionally what would lead to reparenting? It sounds flexible. Alternatively, we could have aria-owns approach by specifying nodes in relations part.
Have you thought about extending this to support multiple frames? If this is really supposed to represent the same interface that AT sees, then it'd be great if it could represent the full composed accessibility tree that spans multiple frames.Originally I supposed we should have seamless tree per tab until you said about process per frame initiatives. Maybe we should split trees not running process boundaries but I didn't think of it much. Do you have ideas on it?