我使用font-awesome并像这样显示他们的字体:
<i class="icon-lock"></i>
这将显示一个漂亮的小锁符号。为了让用户知道这到底意味着什么,我尝试添加诸如标题和 alt 之类的属性,但无济于事。
是否有任何属性可以用于<i>
执行与图像的 alt 和链接的标题相同的任务的标签?
我使用font-awesome并像这样显示他们的字体:
<i class="icon-lock"></i>
这将显示一个漂亮的小锁符号。为了让用户知道这到底意味着什么,我尝试添加诸如标题和 alt 之类的属性,但无济于事。
是否有任何属性可以用于<i>
执行与图像的 alt 和链接的标题相同的任务的标签?
您可以title
在元素上使用属性i
,就像任何元素一样,例如
<i class="icon-lock" title="This symbolizes your being locked inside"></i>
它是否有帮助是一个更困难的问题。浏览器通常会在鼠标悬停时将title
属性值显示为“工具提示”,但为什么用户会将鼠标悬停在图标上?而且这样的工具提示可用性很差;所谓的 CSS 工具提示通常效果更好。
屏幕阅读器可能会赋予用户对属性的可选访问权限title
,但我不确定他们如何处理内容为空的元素。
随着WAI-ARIA的进步,在使用字体图标时,您可能应该使用以下组合来提高可访问性:
仅当隐藏此内容的行为旨在通过删除冗余或无关内容来改善辅助技术用户的体验时,作者才可以谨慎使用aria-hidden来隐藏辅助技术中可见呈现的内容。使用 aria-hidden 向屏幕阅读器隐藏可见内容的作者必须确保将相同或等效的含义和功能暴露给辅助技术。
我不知道您的确切用例,所以我冒昧地使用提供电话号码的更简单的情况。按优先顺序递减,我会使用:
<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`)
请注意aria-label和title属性应该描述元素的内容。不是下一个兄弟元素。所以我觉得以下解决方案不符合规范(即使大多数可访问性工具实际上具有与电话号码实际上在span
元素内一样的可观察行为):
<span class="icon-phone"
title="Our phone number"></span>+33 7 1234576
你应该使用<span>
或类似的东西。title=""
如果您正在寻找,您可以使用该属性在悬停时提供一些文本。至于为屏幕阅读器提供可访问性或 SEO 值,您可以添加以下 CSS:
.icon-lock{
text-indent:-99999px;
}
然后像这样写你的标记:
<span class="icon-lock">What I want the screen reader to say</span>
<i>
标签用于标记文本。您正在将此标记的语义含义更改为与使用斜体无关的内容(甚至斜体标记也是一个坏主意)。你应该使用 aSPAN
代替。
斜体元素不支持alt
属性,IMG
元素支持。如果您想要一个ALT
属性,请使用图像。
我认为像图像一样的字体的角色应该保留给 role="img"。这可以与 aria-label="alt-text" 一起使用。它的工作原理是 ARIA 可访问名称算法。请参阅:使用 Img 角色的 Aria 技术。