如何使用aria标记具有非直观文本表格的按钮

时间:2017-09-19 18:07:32

标签: html accessibility wai-aria

我有一个看起来像这样的按钮:

<button type="button">
    Remove
</button>

在上下文中,可以看到的用户将能够告诉该按钮是指他们可以删除的特定产品。但是,对于有视力残疾的用户,文字&#34;删除&#34;没有足够的信息来帮助他们删除什么。

我知道aria-label根据MDN web docs,应按如下方式使用:

  

在屏幕上看不到文字标签的情况下使用它

我也知道aria-labelledby应该用于将其他标记与被标记的元素相关联。但是,对于我的按钮,按钮本身包含标签。事实上,标签本身就没有足够的描述性。

此时,您可能会问我为什么不改变按钮文字!事实上,UX团队并不想改变可见的按钮文本,所以我试图找出按钮的可访问性而不改变按钮的可见部分。

无论如何,在这种情况下有什么定义的规范吗?我倾向于使用aria-label,但我并不认为符合ARIA标准。

提前致谢!

2 个答案:

答案 0 :(得分:2)

  

无论如何,在这种情况下有什么定义的规范吗?我倾向于使用咏叹调标签,但我并不认为符合ARIA标准。

是的,你可以。

将使用aria-label属性并替换内部文本。

文本Alternative Computation的规范确定aria-label将在优先级中使用(在步骤2C中),而内容仅在不存在时使用(步骤2F)

答案 1 :(得分:2)

是的,您可以使用咏叹调标签。通常它优先于元素中的可见文本或文本(在大多数情况下,除非设置了自定义设置,否则JFW,NVDA,VO都是如此)。

<button aria-label="Remove article XYZ">Remove</button>

与图像的alt属性一样,请确保aria-label足够,即元素中的可见文本或文本很可能不能说出,它完全被替换为ARIA标签。 对于我们这里的示例,标签中必须包含“删除”一词。

作为替代aria-label的替代方法,您也可以使用CSS类使文本仅由屏幕阅读器说出:

<button>Remove <span class="sr-only">XYZ</span></button>

您将在bootstrap等框架中找到相应的CSS代码。 在这种情况下,可见文本和屏幕阅读器特定文本一个接一个地说出。确保单词没有粘在一起,否则可能会出现发音问题。