Javascript 脚本能否适应可访问性客户端对自定义控件的状态更改?

Javascript 脚本能否适应可访问性客户端对自定义控件的状态更改?,javascript,accessibility,wai-aria,wcag2.0,Javascript,Accessibility,Wai Aria,Wcag2.0,发件人: 4.1.2名称、角色、值:对于所有用户界面组件(包括但不限于:表单元素、链接和脚本生成的组件),可以通过编程方式确定名称和角色可以通过编程方式设置用户可以设置的状态、属性和值;这些项目的变更通知可向用户代理(包括辅助技术)提供 (我的重点。) 这是否意味着用户代理可以直接添加、删除或更改相关的aria-*状态和值属性,从而本质上改变DOM状态?如果是,脚本(如React应用程序)如何保持一致状态?是否会触发事件以指示发生了更改 这是否意味着用户代理可以直接添加、删除或更改相关的aria

发件人:

4.1.2名称、角色、值:对于所有用户界面组件(包括但不限于:表单元素、链接和脚本生成的组件),可以通过编程方式确定名称和角色可以通过编程方式设置用户可以设置的状态、属性和值;这些项目的变更通知可向用户代理(包括辅助技术)提供

(我的重点。)

这是否意味着用户代理可以直接添加、删除或更改相关的
aria-*
状态和值属性,从而本质上改变DOM状态?如果是,脚本(如React应用程序)如何保持一致状态?是否会触发事件以指示发生了更改

这是否意味着用户代理可以直接添加、删除或更改相关的aria-*状态和值属性,本质上改变DOM状态

不可以。用户代理不会自行执行此操作

在用户与页面交互时(或者在页面做自己的事情时),由开发人员分配这些ARIA值,并对其进行维护和调整

ARIA是一个权宜之计(想想ARIA选项卡,建议的
tabpanel
-ARIA是权宜之计,直到/如果该元素得到实现),它允许开发人员制作独特的接口组件,同时将有用的信息传递给用户代理(这些代理将信息传递给屏幕阅读器)

因此,如果您有一个展开或折叠的控件,则由您首先向该控件添加
aria expanded
属性,然后添加
true
false
状态,然后在控件每次展开或折叠时切换该值(无论是通过直接用户操作还是某些定时或其他过程)

浏览器无法知道您的东西正在做的事情,也无法知道您希望它报告为状态为。。。事情

如果是,脚本(如React应用程序)如何保持一致状态?是否会触发事件以指示发生了更改

React、Angular等已经有了传达状态的方法。作为开发人员,您可以在适当的地方将这些属性放入适当的ARIA属性中并对其进行管理