如何为符合WCAG 2.0标准的按钮进行标记?

3
在努力实现WCAG 2.0合规性方面,我发现关于正确处理按钮的信息很多,特别是需要考虑哪些内容才能使按钮可访问和合规。
标记
2个回答

8
这种问题总是取决于上下文。让我试着不带上下文来回答。
  1. 只要在上下文中有人会理解他们将会了解更多的内容,<button>学习更多</button>就可以胜任。通常在按钮前面会有一些描述性文字。然而,如果它只是把某人带到另一个页面而不是触发模态框,我会使用链接。

  2. <button aria-label="关闭">&#215;</button>用于关闭按钮(我正在使用字符实体×,它比x更对称)。同样,如果按钮位于模态框的顶部(例如),可能相邻于其标题,则这可能足够了。

  3. <button aria-label="图像1">[图标]</button>适用于走马灯。请注意,如果字体未下载,则字体图标可能会丢失。在IE11和旧版Edge的Windows高对比度模式(WHCM)中,背景图像将消失。 aria-label将无法帮助WHCM用户。最好使用图片(甚至是SVG)及其alt属性,因此您不需要aria-label

这里不需要name属性。它在这里没有用处。

不要使用role =“button”属性。该角色自动成为<button>元素的一部分。如果您分配了另一个角色,则会遇到大问题。

绝对不要使用title属性。它做的事情比带来好处更多。


关于#1,如果它真的是一个“了解更多”类型的按钮并且将显示更多信息,那么我同意它应该是一个链接,除非更多信息包含在模态对话框中,在这种情况下,按钮是适当的。然而,即使在按钮之前有上下文文本也不总是足够的。我喜欢倾向于WCAG 2.4.9,尽管那是AAA要求。如果我要在页面上列出按钮列表(例如,从JAWS,ctrl+ins+b),按钮列表将显示“了解更多”,我将没有任何上下文。最好在按钮上有一个aria-label,带有更多上下文。 - slugolicious
关于“name”,这是 WCAG 4.1.2(名称、角色、值)和“name”属性之间的不幸混淆。 它们彼此无关,很遗憾 WCAG 在此成功标准的名称中使用了“name”。 就 WCAG 而言,对象的名称可以被视为对象的标签。 即屏幕阅读器将如何称呼该对象。 在按钮情况下,对象的“name”是<button> 标签或 aria-label 之间的文本。 name 属性在此处不起作用。 - slugolicious
针对@slugolicious的第一个观点,请记住aria-label只有盲人屏幕阅读器才能受益。由于更多详细信息通常对认知问题有好处,请查看如何使其对鼠标和键盘用户都可用:http://adrianroselli.com/2016/12/accessible-emoji-tweaked.html - aardrian
这非常有帮助!感谢您的澄清和建议。 - josephjbliss
是的,aria-label 对辅助技术用户(不仅仅是屏幕阅读器用户,对于盲文设备也非常方便)有帮助,所有的 aria 属性都是如此。这正是 aria 的全部意义,对认知问题来说更加棘手。对于某些认知问题,有时更多的冗余信息会更糟,提示工具可能会分散注意力。我的观点是,如果您有上下文信息,就像您提到的那样,希望对认知者来说足够了。将 aria-label 添加到“了解更多”按钮或链接中,对 AT 有巨大的好处。 - slugolicious
@slugolicious,你能告诉我什么是盲文设备吗?我不知道它们的支持水平,也认识很少能给我建议的人。至少,如果有供应商在下个月的CSUN展会上,我可以进行一些游击测试。 - aardrian

1
按钮应该有描述其意图的文本。(例如,“了解更多”启动带有更多产品信息的模态框)。
即使我们不谈论链接,您也可以阅读 WCAG 2.4.9链接目的(仅链接)的建议。在上下文中,“了解更多”这个文本可以被理解,但对于需要屏幕放大器的低视觉用户来说,从按钮文本本身很难理解操作。
例如,“了解有关“公共汽车上的轮子”的更多信息”可能更合适。
按钮的文本不描述其操作。(例如,“X”或标题手风琴内容部分的文本)
我在另一篇文章中回答了该主题: 什么是aria-label,我应该如何使用它?

您需要同时使用aria-label属性(对于屏幕阅读器非常有用)和title属性(对于使用标准浏览器的普通用户可能需要更多支持):

<button
    aria-label="Back to the page"
    title="Close" onclick="myDialog.close()">X</button>

没有描述其预期操作或其他内容的文本按钮。 (例如,切换旋转木马上下文的图标/图像)。
相同的推理可以适用于此点。但对于盲人而言,将旋转木马向左或向右移动是一种不同的体验,有时是无用的。如果他们可以忽略他们看到的是一个旋转木马,而不会失去任何内容,使用键盘或辅助技术进行导航,则您正在做所期望的事情。
另外,您必须永远不要忘记,无障碍性不仅针对盲人用户,还针对儿童,老年人,认知或敏感残疾人。例如,当需要时,aria-label将永远不足以帮助这些人。他们没有屏幕阅读器,也不阅读HTML源代码。
在使用“语音识别软件”的用户(是的,他们不多,但让我们改善他们的生活)的情况下,没有任何可见文本也可能导致困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接