AngularJS网站中描述的咏叹调

AngularJS网站中描述的咏叹调,angularjs,wai-aria,Angularjs,Wai Aria,我正在开发一个AngularJS应用程序,它需要与aria兼容。我们需要将aria descripbeby属性添加到指向相关错误消息元素的id属性的输入字段中 我们的表单当前设置如下(这是一种伪代码,有一个表单具有名称属性od“form”): 想法?我的解决方案现在已经由我们的易访问性团队进行了测试,我上面发布的解决方案确实有效。因此,重申一下,解决办法如下: <input aria-describedby="validation-messages-something" type="tex

我正在开发一个AngularJS应用程序,它需要与aria兼容。我们需要将
aria descripbeby
属性添加到指向相关错误消息元素的
id
属性的输入字段中

我们的表单当前设置如下(这是一种伪代码,有一个表单具有名称属性od“form”):


想法?

我的解决方案现在已经由我们的易访问性团队进行了测试,我上面发布的解决方案确实有效。因此,重申一下,解决办法如下:

<input aria-describedby="validation-messages-something" type="text" name="something" ng-model="mySomething" required>
<label for="something">A field for something</label>
<div id="validation-messages-something">
    <p ng-if="form.something.$dirty">
        Please enter a valid something
    </p>
    <p ng-if="form.something.$pristine">
        Please enter the something
    </p>
</div>

某事物的领域

请输入有效的密码

请输入以下内容


我会尽快重温这篇文章,使其不那么以角度为中心。

我正在寻找一种方法,通过
aria descripbed by
实现动态反馈,通过您的实现,您将面临与我一直试图解决的相同问题。如果您没有指出存在多个可能的错误消息,则错误消息只会被评估一次,就像它是静态的一样(用户必须移动焦点才能获得更新的反馈)

解决方案是设置多个由描述的
aria值,用空格分隔。即使此时可能没有显示反馈消息,屏幕阅读器也会确认,一旦呈现反馈消息,就应该自动读取反馈消息(并且每次都会更改,只要列出了每个状态)

来源

使用的屏幕阅读器:NVDA

因此,最好的方法是重用示例
(注意Angular不是我选择的框架)

某事物的字段

请输入有效的密码

请输入以下内容

<input aria-describedby="validation-messages-something" type="text" name="something" ng-model="mySomething" required>
<label for="something">A field for something</label>
<div id="validation-messages-something">
    <p ng-if="form.something.$dirty">
        Please enter a valid something
    </p>
    <p ng-if="form.something.$pristine">
        Please enter the something
    </p>
</div>
<input aria-describedby="validation-messages-something" type="text" name="something" ng-model="mySomething" required>
<label for="something">A field for something</label>
<div id="validation-messages-something">
    <p ng-if="form.something.$dirty">
        Please enter a valid something
    </p>
    <p ng-if="form.something.$pristine">
        Please enter the something
    </p>
</div>
    <label for="some-input">A field for something</label>
    <input id="some-input" aria-describedby="validation-message-dirty validation-message-pristine" type="text" name="something" ng-model="mySomething" required>
    <p id="validation-message-dirty" ng-if="form.something.$dirty">
    Please enter a valid something
</p>
    <p id="validation-message-pristine" ng-if="form.something.$pristine">
    Please enter the something
</p>