Being unhappy with accessible SVGs: text elements (opens in new tab)

peterkrautzberger.org·11w·Open original (opens in new tab)

24 Jan 2026

This started out last fall and is mostly a quick observation on screenreader behaviors and turned into some meandering thoughts about "linearizable" SVGs.

The other day (month/season/year), I found myself thinking about a text role in ARIA. Not exactly original but at least I was thinking about it in the context of SVG. So technically I was thinking about a role for the (woefully unmaintained) Graphics ARIA Module where I have a hunch a role for text (say, role=graphics-text) could be useful. The simplest reason is probably handwriting in its various forms, whether it’s signatures, calligraphy, graffiti, or other heavily stylized writing. Generally speaking, this kind of content is not (and often cannot be) represented as SVG text elements; instead it usually appears as SVG paths, rendering a reproduction of text (handwritten or otherwise). But many other forms of stylized text tend to be realized as paths in SVG as well.

It’s still text though.

It’s used as text, it looks like text, its text alternative will match. So, duck test passed?

One obvious objection is: it’s only text if you use the SVG text element. I think that’s a weak argument. SVG’s text element is so limited in terms of design that even text that could be using the text element is often turned into paths. There’s a reason why every vector graphics editor has a function to replace text with paths. While the SVG spec is finally seeing some activity again, its current charter is focused on maintenance and interop, not new features, so this is not going to improve anytime soon. Besides, ARIA is about expanding developer options to allow solutions that host languages cannot otherwise provide.

A slightly stronger argument might be that text is somehow special. It provides certain fundamental affordances that nothing else can match. I don’t disagree but, again, ARIA is for when the correct™ way is not available. And ARIA roles are only ever a (weak) signal, a promise from developer to user; it’s the developer’s responsibility to make good on that promise.

The graphics-aria module only has 3 roles to offer: graphics-document, graphics-object, and graphics-symbol. I’d say none of these fit so I find myself thinking graphics-text might be reasonable in SVG.

Testing text

Inevitably this made me wonder whether it’s actually a good idea (for accessibility) to use text elements in SVGs. What actually happens when you use the text element, and what happens more when things turn a little more complex?

Loading more...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help