Ich benutze font-awesome und zeige ihre Schriften so an:
<i class="icon-lock"></i>
Dies zeigt ein schönes kleines Schlosssymbol an. Damit der Benutzer genau weiß, was das bedeutet, habe ich versucht, Attribute wie title und alt hinzuzufügen, aber ohne Erfolg.
Gibt es ein Attribut, das ich für das <i>
Tag verwenden kann, das dieselbe Aufgabe wie alt für Bilder und den Titel für Links ausführt?
html
tags
font-awesome
weltschmerz
quelle
quelle
.sr-only
auf einem separaten<span>
.Antworten:
Sie können das
title
Attribut für eini
Element verwenden, wie für jedes Element, z<i class="icon-lock" title="This symbolizes your being locked inside"></i>
Ob es hilft, ist eine schwierigere Frage. Browser zeigen den
title
Attributwert normalerweise als "Tooltip" beim Mouseover an, aber warum sollte der Benutzer mit der Maus über das Symbol fahren? Und solche Tooltips sind von geringer Benutzerfreundlichkeit. Sogenannte CSS-Tooltips funktionieren oft besser.Screenreader gewähren dem Benutzer möglicherweise optionalen Zugriff auf
title
Attribute, aber ich bin mir nicht sicher, was sie mit Elementen mit leerem Inhalt tun.quelle
title
wird in der Regel gelesen, auch ohne Inhalt, solange das Element selbst auswählbar ist<i>
Tags im Allgemeinen nicht auswählbar sind, es sei denn, Sie fügen ihnen einen tabIndex hinzu.title
Attribut, funktioniert oder vielleicht nicht, wer weiß?" "" wurde als gut genug eingestuft, um von 120 Personen positiv bewertet zu werden. Dies zeigt den oberflächlichen Aufwand, den Screenreader-Support von den meisten Webentwicklern erhält (ich eingeschlossen, ich gebe zu). Als Beruf müssen wir herausfinden, wie wir diese Probleme strenger angehen können.title
einem visuell ausgeblendeten Text (z. B..sr-only
Klasse in Bootstrap) hinzuzufügen . Sehen Sie hier gute Beispiele: fontawesome.com/how-to-use/on-the-web/other-topics/…Mit dem Fortschritt von WAI-ARIA sollten Sie bei der Verwendung von Schriftsymbolen wahrscheinlich eine Kombination der folgenden Elemente verwenden, um die Barrierefreiheit zu verbessern:
Ich kenne Ihren genauen Anwendungsfall nicht, daher erlaube ich mir, den einfacheren Fall der Angabe einer Telefonnummer zu verwenden. In absteigender Reihenfolge der Präferenzen würde ich verwenden:
<span aria-label="Our phone number"> <span class="icon-phone" aria-hidden="true"></span> +33 7 1234576 </span> (or any variation implying: - an `i` element with a `role` presentation attribute instead of the inner `span` element - a `title` attribute instead of an `aria-label` attribute)
<span class="icon-phone" aria-label="Our phone number">+33 7 1234576</span> (or any variation using `title` instead of `aria-label`)
<i class="icon-phone" role="presentation" aria-label="Our phone number">+33 7 1234576</i> (or any variation using `title` instead of `aria-label`)
Bitte beachten Sie, dass die Attribute aria-label und title den Inhalt des Elements beschreiben sollten . Nicht das nächste Geschwisterelement. Also ich wie die folgende Lösung fühlen , ist nicht mit den Spezifikationen gemäß (auch wenn die meisten Eingabehilfen tatsächlich das gleiche beobachtbare Verhalten , als ob die Telefonnummer tatsächlich innerhalb der waren hätte
span
Element):<span class="icon-phone" title="Our phone number"></span>+33 7 1234576
quelle
Sie sollten
<span>
stattdessen etwas in diese Richtung verwenden. Sie können dastitle=""
Attribut verwenden, um beim Schweben Text zu geben, wenn Sie danach suchen. In Bezug auf die Zugänglichkeit für Screenreader oder den SEO-Wert können Sie das folgende CSS hinzufügen:.icon-lock{ text-indent:-99999px; }
Und dann schreibe dein Markup so:
<span class="icon-lock">What I want the screen reader to say</span>
quelle
<i>
war in HTML 4.01 nicht veraltet.<u>
und<s>
waren, denke ich immer<b>
und war<i>
es auch, zumal sie<em>
und haben<strong>
, aber Sie haben absolut Recht.<i>
Tags dienen zum Markieren von Text. Sie ändern die semantische Bedeutung dieses Tags in etwas, das mit Kursivschrift nichts zu tun hat (und selbst das Kursivschrift-Tag ist eine schlechte Idee). Sie sollten stattdessen einSPAN
verwenden.Kursive Elemente unterstützen keine
alt
Attribute,IMG
Elemente jedoch. Wenn Sie einALT
Attribut möchten , verwenden Sie ein Bild.quelle
<i>
. Sie sollten also wahrscheinlich sagen, was schief gehen wird, wenn Sie dies auf diese Weise tun. Die Verwendung von etwas (in diesem Fall<i>
) auf eine Weise, die ursprünglich nicht beabsichtigt war, birgt Risiken. In diesem Fall wurde dieses Risiko jedoch durch die Tatsache gemindert, dass Tausende seriöser Websites mit Hunderten von Millionen Benutzern bereits font-awesome verwenden.Ich denke, die Rolle für Schriftarten, die sich wie Bilder verhalten, sollte role = "img" vorbehalten sein. Dies kann dann mit aria-label = "alt-text" verwendet werden. Es funktioniert aufgrund des ARIA Accessible Name-Algorithmus. Siehe: Arientechniken mit Img-Rolle .
quelle