Hello yodamiit,
Your question is clear. What would be convenient for you is a function in TBCSVGViewer component to detect which SVG element is at a certain position. This component relies on TBGRASVG class of BGRABitmap, which does not have this feature yet.
One way to implement such feature would be to implement something similar as the recursive Draw functions, except that instead of rendering the elements, it would check if a point is in the current shape. This is not trivial to implement, in particular when it comes to checking for each individual SVG shape. One way to avoid having to rewrite the InternalDraw methods would be to mock the TBGRACanvas2D objet to replace the drawing functions by the checking functions and pass this mock object as a parameter of the InternalDraw methods of the SVG shapes.
Regards