web-dev-qa-db-ja.com

Android Lint contentDescription警告

Imageviewに対して「[Accessibility] Missing contentDescription attribute on image」という警告が表示されます。 Android lintを使用中

どういう意味ですか?

126

ImageViewの属性Android:contentDescriptionを設定して、この警告を解決しました

Android:contentDescription="@string/desc"

ADT 16のAndroid Lintサポートはこの警告をスローして、画像ウィジェットがcontentDescriptionを提供するようにします。

これは、ビューのコンテンツを簡単に説明するテキストを定義します。このプロパティは主にアクセシビリティのために使用されます。一部のビューにはテキスト表現がないため、この属性を使用してそのような表現を提供できます。

ImageViewsやImageButtonsなどの非テキストウィジェットは、contentDescription属性を使用して、スクリーンリーダーやその他のユーザー補助ツールがユーザーインターフェイスを適切に記述できるように、ウィジェットのテキスト記述を指定する必要があります。

167

Lintの警告を無効にすると、後で簡単に問題が発生します。すべてのImageViewにcontentDescriptionを指定することをお勧めします。説明が不要な場合は、次を使用します。

Android:contentDescription="@null"
50
Dane White

別のオプションは、警告を個別に抑制することです。

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" />
37

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を使用します。

23
Christ

これは単なる警告であるため、抑制することができます。 XMLのグラフィカルレイアウトに移動して、次の操作を行います。

  1. 右上隅の赤いボタンをクリックします

    enter image description here

  2. [問題の種類を無効にする]を選択します(例)

    enter image description here

12
Sergio Carneiro

Gradleファイル(モジュールアプリ)に移動し、以下のコードブロックを追加します

Android {
    ... 
    lintOptions {
        disable 'ContentDescription'
    }
    ...
}

これ以上の警告はありません!ハッピーコーディング

1
GianhTran

Androidアクセシビリティに必要なContentDescription。特にスクリーンリーダー機能用。 Androidアクセシビリティをサポートしていない場合は、setup Lint で無視できます。

したがって、lint.xmlを作成するだけです。

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <issue id="ContentDescription" severity="ignore" />

</lint>

そして、それをappフォルダーに入れます。

enter image description here

1
Yvgen

純粋に装飾的なグラフィック要素の場合、それぞれのAndroid:contentDescription XML属性を「@null」に設定します。

アプリがAndroid 4.1(APIレベル16)以上を実行するデバイスのみをサポートする場合、これらの要素のAndroid:importantForAccessibility XML属性を「no」に設定できます。

1
AnhSang

非テキストウィジェットには、スクリーンリーダーがユーザーインターフェイスを説明できるように、イメージをテキストで説明するための何らかの方法でコンテンツの説明が必要です。プロパティxmlns:tools="http://schemas.Android.com/tools"
tools:ignore="contentDescription"
を無視するか、プロパティAndroid:contentDescription="your description"を定義できます

1
Fokou Franklin

美学のためだけにアイコンを追加するにはImageViewが必要なので、xmlファイルにある各ImageViewにtools:ignore="ContentDescription"を追加しました。

エラーメッセージが表示されなくなりました

0
MikNik