[svg-aam] Implementation role mapping for SVG elements (#52)

dd8 has just created a new issue for https://github.com/w3c/svg-aam:

== Implementation role mapping for SVG elements ==
This issue tracks the role mappings for each element listed in svg-aam with the roles shown in DevTools in each browser. 'As spec' indicates where implementations match svg-aam.

Summary of findings:

- Chrome maps graphics elements like `rect` to role=graphics-symbol (does match spec)
- Safari and Firefox map graphics elements like `rect` to role=image (doesn't match spec)
- the `text` element is mapped to role=generic in all browsers (svg-aam says role=group)
- the mappings for `tspan` and `textPath` are messy and an open issue in the spec


| Element                   | svg-aam (spec)         |Chrome          |FF              |Safari          |Notes           |
| --------------------------|------------------------|----------------|----------------|----------------|----------------|
| a with href               | role=link              | As spec        | As spec        | As spec        |                |
| a no href                 | role=group or tspan role| Ignored       | role=link      | role=link      |                |
| animate                   | Ignored                | As spec        | As spec        | As spec        |                |
| animateMotion             | Ignored                | As spec        | As spec        | As spec        |                |
| animateTransform          | Ignored                | As spec        | As spec        | As spec        |                |
| circle (excluded)         | Ignored                | As spec        | As spec        | As spec        |                |
| circle (included)         | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| clipPath                  | Ignored                | As spec        | As spec        | As spec        |                |
| defs                      | Ignored                | As spec        | As spec        | As spec        |                |
| desc                      | Ignored                | As spec        | As spec        | As spec        |                |
| ellipse (excluded)        | Ignored                | As spec        | As spec        | As spec        |                |
| ellipse (included)        | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| fe* filters               | Ignored                | As spec        | As spec        | As spec        |                |
| filter                    | Ignored                | As spec        | As spec        | As spec        |                |
| foreignObject (excluded)  | Ignored                | role=none      | As spec        | As spec        |                |
| foreignObject (included)  | role=group             | role=none      | role=generic   | role=generic   |                |
| g (excluded)              | Ignored                | As spec        | As spec        | As spec        |                |
| g (included)              | role=group             | As spec        | role=image     | As spec        |                |
| image (excluded)          | Ignored                | As spec        | As spec        | role=image     |                |
| image (included)          | Ignored                | As spec        | As spec        | As spec        |                |
| line (excluded)           | Ignored                | As spec        | As spec        | As spec        |                |
| line (included)           | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| linearGradient            | Ignored                | As spec        | As spec        | As spec        |                |
| marker                    | Ignored                | As spec        | As spec        | As spec        |                |
| mask                      | Ignored                | As spec        | As spec        | As spec        |                |
| metadata                  | Ignored                | As spec        | As spec        | As spec        |                |
| mpath                     | Ignored                | As spec        | As spec        | As spec        |                |
| path (excluded)           | Ignored                | As spec        | As spec        | As spec        |                |
| path (included)           | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| pattern                   | Ignored                | As spec        | As spec        | As spec        |                |
| polygon (excluded)        | Ignored                | As spec        | As spec        | As spec        |                |
| polygon (included)        | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| polyline (excluded)       | Ignored                | As spec        | As spec        | As spec        |                |
| polyline (included)       | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| radialGradient            | Ignored                | As spec        | As spec        | As spec        |                |
| rect (excluded)           | Ignored                | As spec        | As spec        | As spec        |                |
| rect (included)           | role=graphics-symbol   | As spec        | role=image     | role=image     |                |
| script                    | Ignored                | As spec        | As spec        | As spec        |                |
| set                       | Ignored                | As spec        | As spec        | As spec        |                |
| stop                      | Ignored                | As spec        | As spec        | As spec        |                |
| style                     | Ignored                | As spec        | As spec        | As spec        |                |
| svg                       | role=graphics-document | Heuristics     | As spec        | Heuristics     |                |
| switch                    | Ignored                | As spec        | As spec        | As spec        |                |
| symbol (excluded)         | Ignored                | As spec        | As spec        | As spec        |                |
| symbol (included)         | role=graphics-object   | Ignored        | role=nothing   | Ignored        | Spec ambiguous |
| text                      | role=group             | role=generic   | role=generic   | role=generic   |                |
| textPath                  | Open issue 2           | Ignored*       | Text leaf      | Ignored*       | *Presentional? |
| title                     | Ignored                | As spec        | As spec        | As spec        |                |
| tspan                     | Open issue 2           | Ignored*       | Text leaf      | Ignored*       | *Presentional? |
| use (excluded)            | Ignored                | As spec        | As spec        | role=image     |                |
| use (included)            | role=graphics-object   | As spec        | role=nothing   | Ignored        |                |
| view                      | Ignored                | As spec        | As spec        | As spec        |                |


Please view or discuss this issue at https://github.com/w3c/svg-aam/issues/52 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Friday, 27 March 2026 17:16:20 UTC