-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SVG-AAM: Corrections to platform mappings for ATK #133
Comments
Joanie, I changed the role to Section for . I have not changed tspan yet because it is simply used for styling. I looked at span in HTML and it is not mapped for ATK/ATSPI. It is used for styling. Should basically say it is not mapped? http://www.w3.org/TR/html-aam-1.0/ |
sorry, changed the role text for atk to ATK_ROLE_SECTION |
The core-aam has a general statement about this, where it uses SPAN as an example. The general principle is that an accessible object is created for a DOM element because the element has semantics in the form of an AAPI event, property, state, and/or relationship that needs to be exposed. See the section "The Accessibility Tree and the DOM Tree (http://w3c.github.io/aria/core-aam/core-aam.html#intro_treetypes). The SPAN element is mentioned in the last sentence of that paragraph. |
@richschwer: In addition to what @klown stated, see my comment in https://www.w3.org/Bugs/Public/show_bug.cgi?id=27391#c1:
|
just because you have a click handler on something does not mean it has a meaningful semantic. A role of static text really seems more like a "throwing jello at the wall" solution. A tspan has to sit inside a section which is text. So, whether the tspan is there or not, it is still text. I don't see value in making it static text. The author would need to add aria semantics if it is meaningful. |
If it has a click handler, there has to be an accessible object associated with it because without that, an AT cannot present the clickability to the user. Furthermore, and arguably more importantly, objects which have an onclick handler should implement the AtkAction interface so that an AT can use that interface to synthesize the click on behalf of the user. Thus the element (e.g. span) needs to have an accessible object in order for AtkAction to be implemented for it. I agree that if the tspan is strictly for formatting, it should not be mapped. In other words, tspan is "almost always not mapped" (just like span). But if an author adds something to a tspan to make it interactive (e.g. a tabindex) we need an accessible object for it (e.g. to emit the accessible state-changed:focused events so a screen reader can present it when tabbed to). What if the author fails to add a role. We need to map it to some role. I would suggest ATK_ROLE_STATIC (ATK's generic, don't-speak-a-role role). |
BTW and to be clear, ATK_ROLE_TEXT is not appropriate as described in https://developer.gnome.org/atk/stable/AtkObject.html#AtkRole:
|
@joanmarie wrote:
Another factor is that if a user clicks on a SPAN with a click handler, an accessible click event will be emitted by AT-SPI. That click event object has an "event source" property, which references the accessible object that is the source/target of the click. Hence, there has to be an accessible object in the accessibility tree that is the source of the event. |
As long as we're chatting about this.... Would it make sense for |
SVG a11y TF discussed and want tspan treated like span (normally not in accessibility tree, group if something adds it to tree). Rich updated the SVG AAM. |
To clarify: both In that case, I think @joanmarie's recommendations for platform-specific mappings should be used. I'd love to have feedback about similar mappings for other APIs, too. Long term, I'd like to see proper ARIA roles for describing basic text-level semantics, but for now we can at least make sure that correct roles are used when they exist in the accessibility API. For interactive elements, one would hope that the author would assign a widget role (such as button), but if not I agree that these "neutral" text roles would still seem to be the best guess. We will need to review the SVG-AAM rules for including/excluding objects to be sure they are consistent with creating an object in these cases. |
Cleaning up old issues, but I don't think this one is entirely clean, so I can't close it just yet. The SVG-AAM has been updated to match @joanmarie's first point in this issue (if However, PS, repeating my comment from last year:
|
Yes. These things do not strike me as being sections. Do they strike you as being sections? |
Closing this as a duplicate of w3c/svg-aam/issues/2. |
* chore: replace TravisCI with spec-prod * Remove invalid license * fix utility script * use addPlatformMaintainers * Update .github/workflows/auto-publish.yml Co-authored-by: Philippe Le Hegaret <[email protected]> * Update .github/workflows/auto-publish.yml Co-authored-by: Philippe Le Hegaret <[email protected]> Co-authored-by: Philippe Le Hegaret <[email protected]>
<p>
maps to ATK_ROLE_PARAGRAPH and<div>
maps to ATK_ROLE_SECTION.)<div>
element in HTML) then ATK_ROLE_SECTION should be used. If instead the group is serving as a container of interactive widgets, then ATK_ROLE_PANEL should be used. HOWEVER, in both cases the element (and associated accessible object) is assumed to be a block element; not an inline element. Therefore, I think tspan should be mapped like<abbr>
(and other inline elements which need accessible objects in order to expose an associated property), namely as ATK_ROLE_STATIC.The text was updated successfully, but these errors were encountered: