8

以下のような EditText があります

<EditText
    android:id="@+id/extUsername"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:contentDescription="Username field"
    android:hint="Username" />

TalkBack で「ユーザー名フィールド」と読み上げたいのですが、「ユーザー名」と表示されます。contentDescription は無視されます。

ヒントや contentDescription を削除するように言わないでください。両方を使用する必要があります。

アドバイスをいただければ幸いです。

4

6 に答える 6

9

あなたがしたいことは、代わりに LabelFor を使用することです。LabelFor を使用すると、ビジュアル ラベルを EditText ボックスに関連付けることができます。必要に応じてビジュアル ラベルを非表示にして、ビジュアル レイアウトを変更しないようにすることができます。

ヒントの欠点は、テキストが入力されるとヒントが消えてしまうことです。アクセシビリティ情報のヒントに依存している場合、アプリはアクセシブルではありません。

次のようにします。

<TextView
     android:text="@string/yourEditTextDescription"
     android:labelFor="@+id/editTextField" />

<EditText android:id="@+id/editTextField"/>
于 2015-06-11T14:08:10.153 に答える
-1

注: EditText フィールドの場合、コンテンツの説明の代わりに android:hint 属性を指定して、テキスト フィールドが空の場合に期待されるコンテンツをユーザーが理解できるようにします。フィールドが入力されると、TalkBack はヒント テキストではなく、入力されたコンテンツをコンテンツの説明から読み上げてユーザーを支援します。

ヒントの場合 -> android:hint

TalkBack の場合 -> android:contentdescription

于 2016-07-26T08:01:16.013 に答える
-8

string.xml ファイルに追加する必要があります。

<string name="description">your desc goes here</string>
于 2015-04-27T07:57:31.830 に答える