1. .sr-only
在bootstrap3文档中写道:
向使用辅助技术的用户传达用意
通过为表格中的一行或一个单元格添加颜色而赋予不同的意义只是提供了一种视觉上的表现,并不能为使用辅助技术 -- 例如屏幕阅读器 -- 浏览网页的用户提供更多信息。因此,请确保通过颜色而赋予的不同意义可以通过内容本身来表达(即在相应行或单元格中的可见的文本内容);或者通过包含额外的方式 -- 例如应用了 .sr-only
类而隐藏的文本 -- 来表达出来。
这里提到.sr-only这个class,但是在一些使用到这个class的地方却没有显示内容。查了一下,sr-only表示screen reader only。搜嘎,文档中也提到这个是为了提供给屏幕阅读器的信息,屏幕阅读器需要找到能够辨识的文本然后读出来嘛。这个class估计也不会用到
2. aria-hidden
bootstrap文档中有一个效果是这样的:
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputSuccess2">Input with success</label>
<input type="text" class="form-control" id="inputSuccess2" aria-describedby="inputSuccess2Status">
<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>
<span id="inputSuccess2Status" class="sr-only">(success)</span>
</div>
这里有个aria-hidden="true",并不明白作用何在。查了一下,百度结果是这样的:
图标的可访问性
现代的辅助技术能够识别并朗读由 CSS 生成的内容和特定的 Unicode 字符。为了避免 屏幕识读设备抓取非故意的和可能产生混淆的输出内容(尤其是当图标纯粹作为装饰用途时),我们为这些图标设置了 aria-hidden="true" 属性。
如果你使用图标是为了表达某些含义(不仅仅是为了装饰用),请确保你所要表达的意思能够通过被辅助设备识别,例如,包含额外的内容并通过 .sr-only 类让其在视觉上表现出隐藏的效果。
如果你所创建的组件不包含任何文本内容(例如, <button> 内只包含了一个图标),你应当提供其他的内容来表示这个控件的意图,这样就能让使用辅助设备的用户知道其作用了。这种情况下,你可以为控件添加 aria-label 属相。
对于aria的解释:
ARIA 为Web app提供满足用户不同需求的解决方案。建设起用户和软件之间的桥梁。
新的HTML5标准中增加 aria-* 的标签属性,全称Accessible Rich Internet Application。
而这个span显示的是后面的对号,这样就很好理解了,对号是个图标,没必要被类似屏幕阅读器的设备访问,hidden就是对其隐藏咯。