代码之家  ›  专栏  ›  技术社区  ›  Semicolon

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

  •  3
  • Semicolon  · 技术社区  · 8 年前

    我有一个组件,它表示一个x/y轴平面和一个用户可以在该平面内移动的nub。在这里,可访问性的一些方面似乎很直接:核心应该是可聚焦的;键盘上/下/左/右应该将nub移动一段时间,以在适当的方向上增加x/y值。即使使用二次文本输入,无论用户是否使用辅助技术,这些行为对于小部件本身都可能有帮助。

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   QuentinC    8 年前

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

    http://www.w3.org/TR/wai-aria-1.1/

    描述中没有提到可以使用简单数值以外的其他值,值之间的比较应该是唯一的和完整的(对于二维点来说不是),它还读取以下内容:

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

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

    如果你在一个离散的平面上,我会建议使用grid/row/gridcell。但由于您选择的是连续平面(或几乎)中的坐标, 你的案例是特殊的/非传统的,hance没有一个预定义的ARIA配方可以应用。

    因此,辅助技术不会告诉用户你的控件不是什么,也不会给他错误的指示如何使用它,从而混淆用户。没有任何迹象可能比错误的迹象更好。

    理想情况下,您还应该通过提供精确的键盘使用说明来弥补预定义角色的缺失。为此,请在aria describedby(每次聚焦控件时可能会读取)中保持rahter简短,如果需要/如果控件非常复杂,请在其他地方用纯文本对其进行更长时间的解释。