Как отключить ngAria в ngMaterial?
ngAria (модуль доступности) добавляет ненужный импорт bower в мой проект Angular Material - и теперь он бросает предупреждения:
Атрибут "aria-label", необходимый для доступности, отсутствует в node
Я только добавил ngAria, потому что это оказалось необходимым для ngMaterial. Мое приложение не нуждается в доступности экрана.
В любом случае, как я могу удалить ngAria из ngMaterial? или, по крайней мере, отключить все предупреждения.
EDIT: Кажется, единственный способ отключить предупреждения ngAria - это console.warn = function() {};
, который просто отключит ваши предупреждения браузера (я не рекомендую это делать, поскольку он может скрывать предупреждения, не связанные с арией )
Ответы
Ответ 1
Отключение сообщений по всему миру возможно с 1.1.0:
app.config(function($mdAriaProvider) {
// Globally disables all ARIA warnings.
$mdAriaProvider.disableWarnings();
});
(Но обратите внимание, что обсуждение в других ответах на ярлыки арии важно для доступности!)
Ответ 2
Я думаю, что ответ 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 Тихая консоль
Ответ 3
ngAria, насколько мне известно, не может быть отключена и не должна быть отключена, она является основной частью angular -материала.
![enter image description here]()
Чтобы отключить предупреждения, вы можете добавить aria-label="..."
к следующим следующим элементам:
- вход
- мкр-кнопка
- мкр-диалог
- мкр-значок
- мкр-флажок
- мкр-радио-кнопка
- мкр-слайдер
- мкр-переключатель
Я думаю, что я их охватил, но может быть и другое, так что будьте осторожны!
Ответ 4
Просто добавьте еще один тег aria-label="WriteHereAnyLabelYouLike"
в md-checkbox, и это решит проблему.
<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>
Aria метка = "WriteHereAnyLabelYouLike"
Ответ 5
Если вы действительно хотите отключить его, вы можете просто перезаписать или как angular называет его decorating
исходной службой mdAria, расположенной внутри библиотеки angular -материала.
angular.module('appname').decorator('$mdAria', function mdAriaDecorator($delegate) {
$delegate.expect = angular.noop;
$delegate.expectAsync = angular.noop;
$delegate.expectWithText = angular.noop;
return $delegate;
});
Это работает в angular -material v1.0.6
, но вам, возможно, придется проверить, что все методы были очищены.
В основном все вышеизложенное заменяет общедоступные методы, выставленные службе $mdAria, и заменяет эти методы на noop
(нет операции).