.sr-only
是专门用于屏幕阅读器的类名。您可以使用任何类名,但是.sr-only
很常用。如果您不关心遵循合规性进行开发,则可以将其删除。如果将其删除,则不会以任何方式影响UI,因为此类的CSS对台式机和移动设备浏览器不可见。
这里似乎缺少一些有关使用.sr-only
来解释其目的以及供屏幕阅读器使用的信息。首先,最重要的是始终牢记受损用户。减损是508合规性的目的:https : //www.section508.gov/,并且引导程序考虑到这一点非常好。但是,.sr-only
对于508合规性,并不需要考虑全部使用。您可以使用颜色,字体大小,通过导航的可访问性,描述符,使用aria等等。
但是至于.sr-only
-CSS实际上是做什么的?用于的CSS有几种略有不同的变体.sr-only
。下面是我使用的少数几个之一:
.sr-only {
position: absolute;
margin: -1px 0 0 -1px;
padding: 0;
display: block;
width: 1px;
height: 1px;
font-size: 1px;
line-height: 1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
outline: 0;
}
上面的CSS在此类包装的台式机和移动浏览器中隐藏了内容,但是可通过JAWS之类的屏幕阅读器查看:http : //www.freedomscientific.com/Products/Blindness/JAWS。标记示例如下:
<a href="#" target="_blank">
Click to Open Site
<span class="sr-only">This is an external link</span>
</a>
此外,如果DOM元素的宽度和高度为0,则DOM将看不到该元素。这就是上述CSS使用的原因width: 1px; height: 1px;
。通过使用display: none
CSS并将其设置为height: 0
和width: 0
,DOM不会看到该元素,因此会出现问题。上面的CSS使用width: 1px; height: 1px;
并不是使内容对于台式机和移动浏览器不可见的全部操作(没有overflow: hidden
,您的内容仍将显示在屏幕上)并且对屏幕阅读器可见。隐藏从台式和移动浏览器的内容是通过添加来自偏移完成width: 1px
并height: 1px
通过使用前面提到的:
position: absolute;
margin: -1px 0 0 -1px;
overflow: hidden;
最后,要想很好地了解屏幕阅读器会看到什么并将其中继给有缺陷的用户,请关闭浏览器的页面样式。对于Firefox,您可以执行以下操作:
View > Page Style > No Style
希望我在此提供的信息除了其他答复外,还对某人有用。