当我在复选框上时,我的屏幕阅读器 JAWS 17 正在读取复选框,即使我检查它也没有。
我调试了这个问题,发现当我检查时, aria-checked =“false”没有切换到 aria-checked =“true”。< / p>
我使用的是Google Chrome 58.0.3029.110(64位)
HTML
<modified-input
enter-space-press="checked(row)"
disabled="!row.enabled"
ng-click="check(row)">
</modified-input>
指令
function modifiedInput($window, $rootScope, _) {
return {
restrict: 'E',
scope: {
value:'=?',
disabled:'=?',
},
template: (
'<input ' +
'type="checkbox" ' +
'ng-disabled="disabled" ' +
'aria-checked= "false" ' +
'ng-value="value"/>'
),
};
}
modifiedInput.$inject = ["$window", "$rootScope", '_'];
module.exports = modifiedInput;
答案 0 :(得分:1)
在项目中使用ngAria。它应该自动处理常见的aria属性。
阅读official documentation here.
根据文档,如果在项目中包含ngAria并使用ng-model,则会自动处理aria属性。
我建议将模板更改为:
template: (
'<input ' +
'type="checkbox" ' +
'ng-disabled="disabled" ' +
'ng-value="value" ' +
'ng-model="checked"/>'
)