我最近遇到过这个教程,它使用CSS背景图片来显示网页的徽标,而不是使用HTML标记。 div中包含徽标的占位符文本,为了使文本消失,作者使用 text-indent:-9999px 而不是 display:hidden ,因为他说使用后者是不好的做法。
那么,为什么它被认为是不好的做法?
答案 0 :(得分:4)
因为有时屏幕阅读器和搜索引擎会忽略display:none
或visibility:hidden
的元素,但不会忽略那些位于屏幕外的搜索引擎优化和/或语音的元素。然而,无论哪种方法都是“不良做法”,都不是真正的行业协议,更多的是偏好,取决于作者对这些工具的真正了解以及他们对网站的目标是什么。
另请注意,建议至少为5年,并且事情会随着时间的推移而发生变化,因此“最佳实践”现在并不是最佳实践。
所以,找出你想要实现的目标,然后考虑你的选择,这就是我的“最佳实践”。
答案 1 :(得分:2)
主要是因为屏幕阅读器不会阅读隐藏的内容,但很多人会阅读屏幕外但仍然可见的内容。
答案 2 :(得分:2)
首先,没有任何名为display: hidden;
的内容,无论是display: none;
还是visibility: hidden;
还是overflow: hidden;
,并提出您的问题,我不喜欢使用它,而是我使用img
标记,其中alt
属性将描述我的图片,是的,屏幕阅读器请阅读ALT
TEXT,如果您的alt
上没有img
{1}}标记,它会忽略它..
例如,如果我使用img
作为我的徽标,那么我将使用类似
<img src="#" alt="Company Name Logo" title="Company Name" />
答案 3 :(得分:2)
使用背景图像作为徽标意味着您可以将徽标文本放在同一元素中。
这样做的一个原因是,当无法看到徽标时,可访问性读者(对于视障者)将阅读徽标文本。但是,您不希望文本覆盖徽标,因此您可以使用文本缩进来隐藏它。
显示内容:未读取任何元素。
我不是百分百肯定这个,但我还记得读过一些搜索引擎忽略隐藏元素中的内容。但是,他们可能会对缩进内容进行索引,但这需要验证。