Minimal test case: https://codepen.io/pkra/pen/abVpaBr On VoiceOver (iOS 15.3), using read-all (two-finger swipe up) or by item (swipe right/left), VO voices "image" (i.e., wrong role and missing accessible name). It seems like Safari is not exposing the SVG's role and name correctly. For comparison, the test case includes wrapping the SVG in a span and using the span as a tree root; this gives the same result in read-all ("image") but by item VO voices "circular tree, image, tree start" (which is a different kind of weird but looks more like a VO issue). On MacOS Safari 15.3 the SVG is treated as a tree and its name is read correctly by VO. (Similarly on other OSs / ATs)
<rdar://problem/88619214>
FWIW, I'm quite certain this used to work - but I don't have any devices with older iOS / Safari versions around.