2012-05-08 13 views
7

Ich weiß, dass ich folgende tun können, wenn ich ein Bild in einen Klick-able Link aktivieren möchte:Ist es in Ordnung, ein leeres Anker-Tag zu haben?

<a href="http://twitter.com/username"><img src="icons/twitter.png" /></a> 

Aber ich würde es vorziehen, ein CSS-Hintergrundbild zu verwenden, so dass ich einen Hover-Zustand haben kann:

Das funktioniert gut, außer ich bin mir nicht sicher, ob es völlig gültig ist, einen Anker-Link zu haben, der nichts enthält. Chrome macht es gut, genauso wie FF, aber ich bin mir nicht sicher, ob andere gleich sind.

Ich weiß, ich nur einen Text in den Link setzen könnte, und verstecken es mit text-indent: -9999px, aber ich habe es nie gemocht, diesen Ansatz, für variousreasons. Ist mein Code über Cross-Browser-kompatibel?

Antwort

12

Es ist gültig, aber es ist am besten, wenn Sie es gebracht hat etwas in und verwendet so etwas wie

font-size: 0; 

es zu verstecken. Wenn jemand kein CSS hat (Screenreader zum Beispiel), könnte er immer noch ungefähr sagen, worum es bei dem Link geht.

Here's a great article on the subject

+3

Oder 'font-size: 0;', vielleicht, aber jede relative Größe basierend auf 'em' Einheiten würde wahrscheinlich davon stark betroffen sein. –

+0

@DavidThomas: Deshalb sagte ich "etwas wie" Es gibt mehrere Lösungen :) –

+2

Oder eine der verschiedenen Bild-Ersatz-Techniken: http://css-tricks.com/css-image-replacement/ –

2

Es ist absolut gültig, aber wenn Sie möchten, können Sie einen leeren Raum innen setzen: &nbsp;

+0

danke, hatte nicht daran gedacht :) – stephenmurdoch

7

Es ist überhaupt nicht in Ordnung, da es grundlegende Zugänglichkeit Prinzipien bricht. Es gibt keine Möglichkeit, alternativen Text für ein Hintergrundbild auf die gleiche Art und Weise anzugeben, wie Sie es unter Verwendung eines alt-Attributs in einem img-Tag für ein Inhaltsbild angeben können und sollten. Siehe WCAG 2.0 Guideline 1.1.

Wenn Sie ein Bild mouseover ändern möchten, gibt es dafür CSS- und JavaScript-Techniken.

+0

Guter Punkt über die Zugänglichkeit, danke für den Link – stephenmurdoch

1

Verwenden Sie & nbsp; wie der Text, und du bist gut.

+1

Siehe Kommentare zu meiner Antwort oben auf, warum das eine schlechte Übung ist. –

1

Bei Markup.tips haben wir vor kurzem einige Tests zur Barrierefreiheit in iOS 8 durchgeführt und festgestellt, dass VoiceOver nicht zu leeren Links navigiert. Es muss mindestens ein geschützter Raum sein. Ob dies als ein iOS-Bug betrachtet werden soll oder nicht, sind wir nicht sicher.

Verwandte Themen