web-dev-qa-db-ja.com

ngMaterialでngAriaを無効にするにはどうすればよいですか?

ngAria(アクセシビリティモジュール)が、不要なバウワーインポートをmy Angular Materialプロジェクト-に追加しています。現在、警告がスローされています。

アクセシビリティに必要な属性「aria-label」がノードにありません

NgMaterialに必要と思われるため、ngAriaのみを追加しました。私のアプリはスクリーンリーダーのアクセシビリティを必要としません。

とにかく、どうすればngAriaをngMaterialから削除できますか?または、少なくともすべての警告を無効にします。

編集: ngAriaの警告を無効にする唯一の簡単な方法は、ブラウザーの警告をオフにするconsole.warn = function() {};だけです(これは、関係のない警告を非表示にする可能性があるため、お勧めしません)アリア)

24
benshope

1.1.0以降、メッセージをグローバルに無効にすることが可能です。

app.config(function($mdAriaProvider) {
   // Globally disables all ARIA warnings.
   $mdAriaProvider.disableWarnings();
});

(ただし、ariaラベルがアクセシビリティにとって重要であるという他の回答での議論に注意してください!)

20
ZachB

ngAriaは、私の知る限り、無効にすることはできません。無効にすべきではありません。これは、角度マテリアルのコアパーツです。
enter image description here
警告を無効にするには、aria-label="..."特定の次の項目へ

  • 入力
  • mdボタン
  • md-ダイアログ
  • md-icon
  • md-checkbox
  • md-radio-button
  • md-slider
  • md-switch

私はそれらすべてをカバーしたと思いますが、他にも注意が必要な場合があります!


8
Salal Aslam

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 's Angular Quiet Console

8
Jonas.z

別のタグを追加する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-label = "WriteHereAnyLabelYouLike"

7
rc.adhikari

本当に無効にしたい場合は、単に上書きするか、angularと呼ぶことで、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(操作なし)に置き換えます。

2