Есть ссылка, которая должна быть иконочкой. Есть несколько вариантов писать:
1. В первом случае, генерируется картинка, которая не несет смысловой нагрузки. Если кто-то будет печатать страницу, или не доступен CSS, картинка — не самое лучшее. И, если у пользователя отключены картинки, он не увидит ничего (даже если alt прописать, из картинки 16x16 он ничего не поймет).
<a href="URL"><img src="/path/to/icon.png"></a>
2. Второй вариант: пустой тег. Через CSS устанавливаются размеры картинки, и через background сама картинка. По семантике, ИМХО, еще хуже, чем предыдущий вариант. Если отключены картинки — ничего не увидит, если отключен CSS — ничего не увидит.
<a href="URL"></a>
3. Похожий на второй, но используется fallback: текст, который скрывается CSS'ом. Решает проблему недоступности CSS, но если у пользователя не отображаются изображения, так же ничего не увидит.
<a href="URL">Icon text</a>
Как же лучше делать?