检查复选框时,Aria检查的值不会从true切换为false

时间:2017-06-06 19:22:05

标签: angularjs html5 checkbox angularjs-directive wai-aria

当我在复选框上时,我的屏幕阅读器 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;

1 个答案:

答案 0 :(得分:1)

在项目中使用ngAria。它应该自动处理常见的aria属性。

阅读official documentation here.

请参阅working plunker here.

根据文档,如果在项目中包含ngAria并使用ng-model,则会自动处理aria属性。

我建议将模板更改为:

    template: (
        '<input ' +
        'type="checkbox" ' +
        'ng-disabled="disabled" ' +
        'ng-value="value" ' +
        'ng-model="checked"/>'
    )