ngAria(一个辅助功能模块)正在为我的Angular Material项目添加一个不必要的bower导入 - 现在它正在抛出警告:
属性"节点
上缺少可访问性所需的aria-label"
我只添加了ngAria,因为它似乎是ngMaterial所必需的。我的应用程序不需要屏幕阅读器可访问性。
无论如何,如何从ngMaterial中删除ngAria?或者至少禁用所有警告。
编辑:禁用ngAria警告的唯一简单方法是console.warn = function() {};
,它会关闭浏览器的警告(我不建议这样做)这,因为它可能隐藏与咏叹调无关的警告)
答案 0 :(得分:18)
从1.1.0起可以全局禁用消息:
app.config(function($mdAriaProvider) {
// Globally disables all ARIA warnings.
$mdAriaProvider.disableWarnings();
});
(但请注意其他答案中关于咏叹调标签对可访问性非常重要的讨论!)
答案 1 :(得分:8)
我认为Salal Aslam的答案更好,但是如果您想暂时禁用Aria警告,您可以对原始问题中建议的console.warn
覆盖进行调整。也许是这样的事情:
console.realWarn = console.warn;
console.warn = function (message) {
if (message.indexOf("ARIA") == -1) {
console.realWarn.apply(console, arguments);
}
};
编辑:对于复杂情况,可能需要更复杂的解决方案。查看Shaun Scovil的Angular Quiet Console
答案 2 :(得分:7)
ngAria不能禁用,不应禁用它是角度材料的核心部分。
要停用警告,您可以将aria-label="..."
添加到特定的以下项目
我想,我已经涵盖了所有这些,但可能还有其他的注意!
答案 3 :(得分:6)
只需在md-checkbox上添加另一个标记aria-label="WriteHereAnyLabelYouLike"
,它就可以解决问题。
<md-checkbox type="checkbox" ng-model="account.accountant" class="md-primary" layout-align="end" ng-true-value="1" ng-false-value="0" aria-label="ShowHideAccountant" ></md-checkbox>
咏叹调标签=&#34; WriteHereAnyLabelYouLike&#34;
答案 4 :(得分:2)
如果你真的想要禁用它,你可以简单地覆盖或角度调用它decorating
位于角度材质库内的原始mdAria服务。
angular.module('appname').decorator('$mdAria', function mdAriaDecorator($delegate) {
$delegate.expect = angular.noop;
$delegate.expectAsync = angular.noop;
$delegate.expectWithText = angular.noop;
return $delegate;
});
这适用于角度材质v1.0.6
,但您可能需要检查是否已清除所有方法。
基本上上面所做的就是替换暴露给$ mdAria服务的公共方法,它将用noop
替换这些方法(无操作)。