2d x/y 轴平面输入的适当 aria 角色和行为是什么?



我有一个组件,它呈现了一个 x/y 轴平面和一个用户可以在平面内移动的 nub。这里可访问性的某些方面似乎非常简单:小块应该是可聚焦的;键盘向上/向下/向左/向右应将小块移动一段时间,以在适当的方向上增加 x/y 值。即使使用辅助文本输入,无论用户是否使用辅助技术,小部件本身的这些行为也可能有所帮助。

但是当我开始研究如何标记它时,我不确定适当的角色应该是什么,或者传达可用功能的最佳方式是什么。

与角色最接近的匹配似乎是"滑块": https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role

但是,MDN 上描述的滑块角色似乎可能特定于单轴滑块。

滑块实际上只是 1D 的,因此它不是合适的角色。

要解决此问题,请阅读 ARIA 1.1 中滑块的说明。 http://www.w3.org/TR/wai-aria-1.1/

描述中没有提到您可以使用简单数值以外的其他内容,值之间的比较应该是唯一的和总计的(对于 2D 点则不是(,并且它还如下所示:

具有

角色滑块的元素具有水平的隐式 aria 方向值

它是水平的;它肯定是垂直的;但绝对不能同时两者。

顺便说一下,默认情况下,例如 Jaws 或多或少地为滑块宣布这一点:"左右滑块。使用左右箭头键调整值",这对您的情况来说是错误的。

如果你在一个离散平面上,我会建议网格/行/网格单元。但是由于您是在连续平面(或几乎(中选择坐标, 您的情况是特殊/非常规的,因此不存在您可以应用的预定义 ARIA 配方。

在这种情况下,没有真正足够的角色,最好的发挥可能是根本不为您的组件指示任何角色。 因此,辅助技术不会让用户感到困惑,告诉他你的控件实际上是什么,也不会给他错误的如何使用它的指示。完全没有迹象可能比错误的迹象要好。

当然,您仍然必须使用aria-label/aria-labelledby来为您的组件提供标签,使其可聚焦和键盘可用。 理想情况下,您还应该通过提供精确的键盘使用说明来补偿预定义角色的缺失。为此,请在 aria-descriptdby 中保持简短(每次控件聚焦时都可以读取(,如果需要/如果控件非常复杂,请在其他地方用纯文本解释它更长时间。

如果真的太复杂了,你也可以放弃,只要你提供一个可接受的替代输入意味着给出平等的可能性。对于颜色选择器,输入 RGB 值或 #XXXXXX 代码肯定是可以接受的,并且有足够的替代输入方式。

最新更新