组件经常有这样的属性,tabindex,role是个啥嘛?
tabIndex属性:
元素的tab键控制次序,会将tabIndex在1-32767之间的控件加入到tab键序列中,点击tab键,会根据值的大小依次选中元素。
tabindex为0时,将排列在tabindex控件之后选中(先把大于0的选完在选0的)。若有多个为0的值,则根据在代码中元素的排序依次选中。
若大于0的tabIndex值有重复的,选中顺序跟为0的规则同。
tabindex为负数时不会选中。
role属性:
role可以描述一个非标准tag的实际作用。如div用作button,设置div的role=‘button’,辅助设备就会辨认出这是个button;
role本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明。通常这种情况出现在一些自定义的组件上(例如一个tree组件,html里目前还没有tree这个标签),这样可增强组件的可访问性、可用性和可交互性。
aria-*属性:
ARIA是W3C的一个规范。其全称是’Accessible Rich Internet Applications’,是WAI-ARIA的一部分(它是W3C的Web无障碍推进组织(Web Accessibility Initiative / WAI)在2014年3月20日发布的可访问富互联网应用实现指南)。
WAI-ARIA是一个为残疾人士等提供无障碍访问动态、可交互Web内容的技术规范。
标签内使用aria-*属性,描述了元素的属性和状态。aria-*一般跟role配合使用,role描述了元素的实际意义;如:下面例子div的角色是个button,状态为选中状态;
<div role='button' aria-checked="true"></div>