我正在研究UI的可访问性,并想向元素添加特定的文本,然后屏幕阅读器软件将其读取。例如,对于每个<li>
项目,我想添加一条消息“使用箭头键切换元素”。有没有添加这种消息的方法?不幸的是,替代aria-label
并不是一种选择。
答案 0 :(得分:2)
您最好的选择是在CSS中使用visually hidden class,这是一种“ hack”,表示文本不是视觉呈现,而是由屏幕阅读器宣布。例如
<li>My text my text <span class="visually-hidden">Switch through the elements using arrow keys</span></li>
不幸的是,您必须在每个<li>
的末尾重复相同的文本元素,但这不能自动重复(使用CSS ::after
和content:
在不同屏幕之间的支持非常不均衡阅读器供应商)。
但是,尽管我不了解更广泛的背景信息,但请三思而后行,是否需要在此添加此信息。
<li>
中是否有自定义的交互式元素?在那种情况下,是否可以不使用其他ARIA角色代表他们,而不是将其宣布为名单?答案 1 :(得分:1)
WebAIM具有guide on this,建议使用绝对定位。同样,还有另外useful guide值得TheA11yproject阅读
我鼓励您全面阅读它,但是为了方便起见,这里是第二个示例的CSS(感谢Victor的建议):
.screen-reader-only
{
position: absolute !important;
height: 1px; width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
然后,您将为仅作为屏幕阅读器的文本添加类。例如
<div class="screen-reader-only"><a href="#main">Skip to main content</a></div>
自然地,您可以将类称为hidden
或visually-hidden
或其他对您而言最有意义的类。
注意事项
在导航时,我会确保谨慎使用该技术,并考虑到用户体验。
例如,应该将li
元素应用于li
元素内的跨度,足够容易地实现您的 <li><span class="screen-reader-only">.... </span>...</li>
示例。
dd/mm/yyyy
但是我强烈质疑这是否真的必要。大概屏幕阅读器软件的用户已经熟悉如何使用它,并且拥有自己的导航方式。
有时对于屏幕阅读器用户来说是一个问题,即页面语义的混乱程度和冗长程度(与使用视觉效果相比,快速,全面地浏览并不容易)。添加此类额外通知可能只会导致此问题。
答案 2 :(得分:0)
title="Switch through the elements using arrow keys"
可能是