これの件です。
公式の説明には、次のように書いてます。
スクリーン リーダーなどのユーザー補助機能サービスを利用している場合は、コンテンツ ラベルを通してユーザー インターフェースの各要素の意味を把握することになります。
ImageView、ImageButton、CheckBox など、情報を画像で伝える View を使用している場合は、android:contentDescription 属性を使用して、その View のコンテンツ ラベルを設定します。
意味のある情報を伝えない装飾的な画像には、コンテンツ ラベルは必要ありません。この場合は、"@null" の android:contentDescription 属性または "no" の android:importantForAccessibility 属性を設定します。
👉 コンテンツ ラベル - Android のユーザー補助機能 ヘルプ
要するに、
「飾りの意味のみの音声化する必要のないものはテキスト不要」
ということのようです。
以下、GitHub から、著名な開発組織のリポジトリから引用してきました。
android:contentDescription="@null"
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="48dp"
android:layout_height="48dp"
android:contentDescription="@null"
app:srcCompat="@drawable/io_logo_color" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:contentDescription="@null"
android:src="@drawable/avatar_photo" />
android:importantForAccessibility="no"
<ImageView
android:id="@+id/trending_repository_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:layout_marginEnd="16dp"
android:importantForAccessibility="no"
tools:src="@drawable/avatar"
/>
<ImageView
android:id="@+id/speaker_item_headshot"
android:layout_width="@dimen/speaker_headshot_size"
android:layout_height="@dimen/speaker_headshot_size"
android:layout_marginStart="@dimen/margin_normal"
android:importantForAccessibility="no"
android:transitionName="@string/speaker_headshot_transition"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:speakerImage="@{speaker}" />
tools:ignore="ContentDescription"
上位タグに
xmlns:tools="http://schemas.android.com/tools"
が必要になります。
<ImageView
android:id="@+id/direction_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_action_maps_navigation"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/inputModeIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/stream_ui_ic_arrow_curve_left"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription"
/>
まとめ
3つの記述スタイルがあるようですが、
android:importantForAccessibility="no"
が一番手軽で、意味分かりやすい記述ではないかなと。
👉 【IDEA】typo チェックを無視する設定 元に戻したい リセットしたい【AndroidStudio】