我使用font-awesome,并像这样显示他们的字体:
<i class="icon-lock"></i>
这将显示一个漂亮的小锁符号。为了让用户知道它的确切含义,我尝试添加title和alt等属性,但都没有成功。
有没有任何属性可以用于标签执行与图像alt和链接title相同的任务?
我使用font-awesome,并像这样显示他们的字体:
<i class="icon-lock"></i>
这将显示一个漂亮的小锁符号。为了让用户知道它的确切含义,我尝试添加title和alt等属性,但都没有成功。
有没有任何属性可以用于标签执行与图像alt和链接title相同的任务?
<i class="icon-lock" title="This symbolizes your being locked inside"></i>
它是否有帮助是一个更加困难的问题。浏览器通常在鼠标悬停时显示title
属性的值作为“工具提示”,但用户为什么要悬停在图标上?这样的工具提示易用性较差;所谓的CSS工具提示通常效果更好。
屏幕阅读器可以给用户可选的title
属性访问方式,但我不确定它们对空内容元素采取何种处理方式。
title
属性有效,也许不行,谁知道?”被120人视为足够好而得到了赞同,说明大多数Web开发人员(包括我在内)对屏幕阅读器支持的工作只是敷衍了事。作为一个职业,我们需要比这更严谨地解决这些问题。 - Mark Amerytitle
之外,还要添加一段在视觉上隐藏的文本(例如Bootstrap中的.sr-only
类)。请参见此处的良好示例:https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility - Hrvoje Golcic随着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>
在 HTML 4.01 中并未被弃用。 - Jim<u>
和 <s>
是这样,我总是会认为 <b>
和 <i>
也是这样,特别是因为它们有 <em>
和 <strong>
,但你绝对是正确的。 - Chris Sobolewski我认为像图片一样的字体应该保留role="img"角色。这可以与aria-label="alt-text"一起使用。这是因为ARIA Accessible Name算法的作用。参见:Aria Techniques Using Img Role。
aria-hidden='true'
。 - Vibhor Dube<i>
标签用于标记文本。你把这个标签的语义意义更改成了与使用斜体无关的东西(甚至斜体标签也不是一个好主意)。你应该使用SPAN
代替。
斜体元素不支持alt
属性,IMG
元素支持。如果你想要一个ALT
属性,请使用一个图片。
<i>
,因此你应该说一下如果这样做会出什么问题。以一种原本不打算使用的方式使用某些东西(在这种情况下是<i>
)存在风险,但在这种情况下,这种风险已经被缓解了,因为成千上万的知名网站和数亿用户已经在使用font-awesome。 - cesoid
<span>
上使用.sr-only
。 - rybo111