Voici une solution qui ajoute un dégradé d'arrière-plan, en utilisant une URI de données pour créer une image semi-transparente qui se superpose à n'importe quelle couleur de fond. J'ai vérifié que l'image s'ajuste correctement au rayon de la bordure dans IE9. C'est plus léger que les propositions basées sur le SVG mais, comme inconvénient, ce n'est pas indépendant de la résolution. Autre avantage : elle fonctionne avec votre HTML/CSS actuel et ne nécessite pas d'être enveloppée par des éléments supplémentaires.
J'ai pris un PNG gradient 20x20 aléatoire via une recherche sur le web, et je l'ai converti en données URI en utilisant un outil en ligne. L'URI de données résultant est plus petit que le code CSS de tout ce bazar SVG, et encore moins que le SVG lui-même ! (Vous pourriez appliquer cette méthode de manière conditionnelle à IE9 uniquement en utilisant des styles conditionnels, des classes css spécifiques au navigateur, etc.) Bien sûr, la génération d'un PNG fonctionne très bien pour les dégradés de la taille d'un bouton, mais pas pour les dégradés de la taille d'une page !
HTML :
<span class="button">This is a button</span>
CSS :
span.button {
padding: 5px 10px;
border-radius: 10px;
background-color: orange;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAvUlEQVQ4y63VMQrDMAyF4d/BGJ+rhA4dOnTo0Kn3P4ExxnSoXVQhpx0kEMmSjyfiKAF4AhVoqrvqjXdtoqPoBMQAPAZwhMpaYkAKwH1gFtgG0v9IlyZ4E2BVabtKeZhuglegKKyqsWXFVboJXgZQfqSUCZOFATkAZwEVY/ymQAtKQJ4Jd4VZqARnuqyxmXAfiAQtFJEuG9dPwtMC0zD6YXH/ldAddB/Z/aW4Hxv3g+3+6bkvB/f15b5gXX8BL0z+tEEtuNA8AAAAAElFTkSuQmCC);
background-size: 100% 100%;
border: 2px solid white;
color: white;
}