librsvg mishandles the following text element:
<text x="20" y="100" font-weight="bold">bold <tspan font-weight="normal">normal</tspan></text>
the tspan is displayed in bold rather than a normal font weight.
However, when given this almost identical text element
<text x="20" y="200" font-weight="bold">bold <tspan font-weight="400">400=normal</tspan></text>
the tspan is displayed at normal weight
For sample file, see https://commons.wikimedia.org/wiki/File:SVGTestBoldNormal.svg :
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 450" font-family="sans-serif" font-size="60">
<title>librsvg misinterprets keyword normal</title>
<desc>librsvg bug: librsvg text that starts bold and shifts to normal weight fails; shifting to 400 weight succeeds.</desc>
<text x="20" y="100" font-weight="bold">bold <tspan font-weight="normal">normal</tspan></text>
<text x="20" y="200" font-weight="bold">bold <tspan font-weight="400">400=normal</tspan></text>
<g font-weight="bold">
<title>normal font weight inside of group specifying bold weight - from Johannes Kalliauer</title>
<text x="20" y="300" font-weight="normal">normal</text>
<text x="20" y="400" font-weight="400">400=normal</text>
</g>
</svg>