Ok I appear to have fixed the above issue, there was a couple of CSS conflicts, but now it appears that on load 2 instances of the one icon is loaded side by side.
My implementation of the button is as follows:
HTML
===========================================================
<a href="#" class="ua-button" target="_self" title="Share">
<span aria-hidden="true" data-icon=""></span>
<span class="screen-reader-text">Share</span>
</a>
CSS
===========================================================
@font-face {
font-family: 'icomoon';
src:url('../fonts/icomoon.eot');
src:url('../fonts/icomoon.eot?#iefix') format('embedded-opentype'),
url('../fonts/icomoon.woff') format('woff'),
url('../fonts/icomoon.ttf') format('truetype'),
url('../fonts/icomoon.svg#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
[data-icon]:before {
font-family: 'icomoon';
content: attr(data-icon);
speak: none;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
On render this is what Firebug shows is rendered in the HTML
<a href="#" class="ua-button" target="_self" title="Add to Cart">
<span aria-hidden="true" data-icon="">
<span style="font-family: icomoon;"></span>
</span>
Screenshot of duplicate icon
http://i.imgur.com/KtZXy6y.jpg