Imageviewに対して「[Accessibility] Missing contentDescription attribute on image」という警告が表示されます。 Android lintを使用中
どういう意味ですか?
ImageViewの属性Android:contentDescription
を設定して、この警告を解決しました
Android:contentDescription="@string/desc"
ADT 16のAndroid Lintサポートはこの警告をスローして、画像ウィジェットがcontentDescriptionを提供するようにします。
これは、ビューのコンテンツを簡単に説明するテキストを定義します。このプロパティは主にアクセシビリティのために使用されます。一部のビューにはテキスト表現がないため、この属性を使用してそのような表現を提供できます。
ImageViewsやImageButtonsなどの非テキストウィジェットは、contentDescription属性を使用して、スクリーンリーダーやその他のユーザー補助ツールがユーザーインターフェイスを適切に記述できるように、ウィジェットのテキスト記述を指定する必要があります。
Lintの警告を無効にすると、後で簡単に問題が発生します。すべてのImageViewにcontentDescriptionを指定することをお勧めします。説明が不要な場合は、次を使用します。
Android:contentDescription="@null"
別のオプションは、警告を個別に抑制することです。
xmlns:tools="http://schemas.Android.com/tools" (usually inserted automatically)
tools:ignore="contentDescription"
例:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:ignore="contentDescription" >
<ImageView
Android:layout_width="50dp"
Android:layout_height="match_parent"
Android:adjustViewBounds="true"
Android:padding="5dp"
Android:src="@drawable/icon" />
contentDescriptionを追加することをお勧めします。
Android:contentDescription="@string/contentDescriptionXxxx"
しかし、現実的になりましょう。ほとんどの人は、アクセシビリティのリテラルを維持していません。それでも、少しの労力で、障害のある人を助けるために何かを実装できます。
<string name="contentDescriptionUseless">deco</string>
<string name="contentDescriptionAction">button de action</string>
<string name="contentDescriptionContent">image with data</string>
<string name="contentDescriptionUserContent">image from an other user</string>
。
目の不自由なユーザーが知る必要がある最も重要なことは、「続行するためにクリックする必要があるボタンはどこですか」
クリック可能なものにはcontentDescriptionActionを使用します。
情報付き画像のcontentDescriptionContentを使用します(graph、textAsImage、...)
すべてのユーザー提供コンテンツにcontentDescriptionUserContentを使用します。
その他すべてにcontentDescriptionUselessを使用します。
これは単なる警告であるため、抑制することができます。 XMLのグラフィカルレイアウトに移動して、次の操作を行います。
右上隅の赤いボタンをクリックします
[問題の種類を無効にする]を選択します(例)
Gradle
ファイル(モジュールアプリ)に移動し、以下のコードブロックを追加します
Android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
これ以上の警告はありません!ハッピーコーディング
Androidアクセシビリティに必要なContentDescription
。特にスクリーンリーダー機能用。 Androidアクセシビリティをサポートしていない場合は、setup Lint で無視できます。
したがって、lint.xml
を作成するだけです。
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
そして、それをapp
フォルダーに入れます。
純粋に装飾的なグラフィック要素の場合、それぞれのAndroid:contentDescription XML属性を「@null」に設定します。
アプリがAndroid 4.1(APIレベル16)以上を実行するデバイスのみをサポートする場合、これらの要素のAndroid:importantForAccessibility XML属性を「no」に設定できます。
非テキストウィジェットには、スクリーンリーダーがユーザーインターフェイスを説明できるように、イメージをテキストで説明するための何らかの方法でコンテンツの説明が必要です。プロパティxmlns:tools="http://schemas.Android.com/tools"
を無視するか、プロパティ
tools:ignore="contentDescription"Android:contentDescription="your description"
を定義できます
美学のためだけにアイコンを追加するにはImageViewが必要なので、xmlファイルにある各ImageViewにtools:ignore="ContentDescription"
を追加しました。
エラーメッセージが表示されなくなりました