我正在使用.net 4.0和股票验证器在VS2010中创建一个html5网站。为了使验证器可访问,我在关联的文本框中添加了 aria-labelledby ,并在aria-labelledby值中设置验证器id。验证器的id模式设置为static。验证标签由display隐藏:无css样式,触发后将被删除。
似乎工作正常,因为 NVDA 会看到错误消息并将其与正确的文本框相关联。但是当我去验证它时,我收到以下错误:
aria-labelledby属性必须指向同一文档中的元素
所以,问题是...... aria-labelledby 可以引用一个不可见的控件吗?
答案 0 :(得分:0)
快速回答是肯定的...经过一些测试后,我发现NVDA会读取隐藏的span标记,它是验证者错误文本。
我遇到的问题是制作必需的验证器时,NVDA会收到错误消息。不幸的是,在IsValid函数被触发后显示错误...在回发后使事件触发。 NVDA会看到包含错误消息的页面,但不知道它们是新的。
要修复它我正在模糊事件上触发验证器,如下所示。
我向正在验证的控件添加了一个模糊事件,并调用了附加到该控件的验证器
onblur="validateControl(RequiredFieldValidatorID)"
调用的函数使用ValidatorValidate函数。
function validateControl(n) {
ValidatorValidate(n);
}
这使得必需的验证器在模糊时触发。仍然需要重新关注有错误的控件,但我想我需要抓住选项卡并重定向...正在进行中。