As @myf has pointed out: textLength="580" will tear your text apart that might prevent correct text rendering (direction, applying ligatures etc.) in some browsers.
Your code also contains empty <link>
and <style>
elements that might also cause issues.
unicode-bidi: bidi-override
You might also force a rtl direction via
text{
direction: rtl;
unicode-bidi: bidi-override;
}
Css-tricks: unicode-bidi
Here's is a stripped down example that's rendered fine in chromium, Firefox and ios safari.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-width="68" data-height="24" role="img" aria-label="سلام دنیا" viewBox="0 0 68 24">
<title>سلام دنیا</title>
<defs>
<linearGradient id="s" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="rgb(245, 119, 31)" stop-opacity="0.75" />
<stop offset="50%" stop-color="rgb(245, 119, 31)" stop-opacity="1" />
</linearGradient>
<filter id="textShadow">
<feDropShadow dx="0" dy="1" stdDeviation="0" flood-color="#010101" flood-opacity="0.25" />
</filter>
</defs>
<a target="_blank" xlink:href="#">
<rect x="0" width="100%" height="100%" fill="url(#s)" rx="3" />
<text x="50%" y="50%" dy="12%" text-rendering="geometricPrecision" text-anchor="middle" style="font-family:Verdana, Geneva, DejaVu Sans, sans-serif; font-size:11px; direction: rtl; unicode-bidi: bidi-override;" filter="url(#textShadow)" fill="rgb(0, 0, 0)">سلام دنیا</text>
</a>
</svg>
Debugging example: multiple bidi-override modes
<p>Auto text direction</p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-width="68" data-height="24" role="img" aria-label="سلام دنیا" viewBox="0 0 68 24">
<title>سلام دنیا</title>
<defs>
<linearGradient id="s" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="rgb(245, 119, 31)" stop-opacity="0.75" />
<stop offset="50%" stop-color="rgb(245, 119, 31)" stop-opacity="1" />
</linearGradient>
<filter id="textShadow">
<feDropShadow dx="0" dy="1" stdDeviation="0" flood-color="#010101" flood-opacity="0.25" />
</filter>
</defs>
<a target="_blank" xlink:href="#">
<rect x="0" width="100%" height="100%" fill="url(#s)" rx="3" />
<text x="50%" y="50%" dy="12%" text-rendering="geometricPrecision" text-anchor="middle" style="font-family:Verdana, Geneva, DejaVu Sans, sans-serif; font-size:11px; direction: rtl;" filter="url(#textShadow)" fill="rgb(0, 0, 0)">سلام دنیا</text>
</a>
</svg>
<p>Forced rtl text direction – unicode-bidi: bidi-override</p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-width="68" data-height="24" role="img" aria-label="سلام دنیا" viewBox="0 0 68 24">
<title>سلام دنیا</title>
<defs>
<linearGradient id="s" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="rgb(245, 119, 31)" stop-opacity="0.75" />
<stop offset="50%" stop-color="rgb(245, 119, 31)" stop-opacity="1" />
</linearGradient>
<filter id="textShadow">
<feDropShadow dx="0" dy="1" stdDeviation="0" flood-color="#010101" flood-opacity="0.25" />
</filter>
</defs>
<a target="_blank" xlink:href="#">
<rect x="0" width="100%" height="100%" fill="url(#s)" rx="3" />
<text x="50%" y="50%" dy="12%" text-rendering="geometricPrecision" text-anchor="middle" style="font-family:Verdana, Geneva, DejaVu Sans, sans-serif; font-size:11px; direction: rtl; unicode-bidi: bidi-override;" filter="url(#textShadow)" fill="rgb(0, 0, 0)">سلام دنیا</text>
</a>
</svg>
<p>Forced ltr text direction – unicode-bidi: bidi-override</p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-width="68" data-height="24" role="img" aria-label="سلام دنیا" viewBox="0 0 68 24">
<title>سلام دنیا</title>
<defs>
<linearGradient id="s" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="rgb(245, 119, 31)" stop-opacity="0.75" />
<stop offset="50%" stop-color="rgb(245, 119, 31)" stop-opacity="1" />
</linearGradient>
<filter id="textShadow">
<feDropShadow dx="0" dy="1" stdDeviation="0" flood-color="#010101" flood-opacity="0.25" />
</filter>
</defs>
<a target="_blank" xlink:href="#">
<rect x="0" width="100%" height="100%" fill="url(#s)" rx="3" />
<text x="50%" y="50%" dy="12%" text-rendering="geometricPrecision" text-anchor="middle" style="font-family:Verdana, Geneva, DejaVu Sans, sans-serif; font-size:11px; direction: ltr; unicode-bidi: bidi-override;" filter="url(#textShadow)" fill="rgb(0, 0, 0)">سلام دنیا</text>
</a>
</svg>