Подтвердить что ты не робот

Как отключить ngAria в ngMaterial?

ngAria (модуль доступности) добавляет ненужный импорт bower в мой проект Angular Material - и теперь он бросает предупреждения:

Атрибут "aria-label", необходимый для доступности, отсутствует в node

Я только добавил ngAria, потому что это оказалось необходимым для ngMaterial. Мое приложение не нуждается в доступности экрана.

В любом случае, как я могу удалить ngAria из ngMaterial? или, по крайней мере, отключить все предупреждения.

EDIT: Кажется, единственный способ отключить предупреждения ngAria - это console.warn = function() {};, который просто отключит ваши предупреждения браузера (я не рекомендую это делать, поскольку он может скрывать предупреждения, не связанные с арией )

4b9b3361

Ответ 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 (нет операции).