Redigerbara vyetiketter

Bakgrund

Redigerbara objekt gör att användare kan skriva text i en app. Varje redigerbart objekt ska ha en beskrivande etikett som anger dess syfte.

I Android finns flera sätt för utvecklare att sätta etiketter på View-objekt i användargränssnittet i en app. För redigerbara objekt i ett gränssnitt kan en del av metoderna förbättra tillgängligheten.

Implementering

Om du vill sätta en etikett på ett redigerbart TextView- eller EditText-objekt använder du android:hint för att visa en beskrivande textetikett i objektet när det är tomt.


<EditText
    android:id="@+id/email_subject"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/email_subject_hint" />

Om det redan finns en textetikett för det redigerbara objektet i appens användargränssnitt definierar du android:labelFor i View-objektet där etiketten finns för att ange vilket objekt etiketten beskriver.


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/email_subject_label"
        android:labelFor="@id/email_subject" />
    <EditText
        android:id="@+id/email_subject"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

Tips! TextInputLayout i Android Design Support Library ger ett enkelt sätt att hantera ett EditText-objekt och dess textetikett, och det fungerar bra med Androids tillgänglighetstjänster.

Om du definierar en android:contentDescription för ett EditText-objekt eller redigerbart TextView-objekt kan det störa tillgänglighetstjänstens förmåga att beskriva, navigera och interagera med text som en användare skriver i objektet.

Utforma

När du navigerar till redigerbara objekt i en skärmläsare innehåller ett välimplementerat användargränssnitt följande element:

  • Om det redigerbara fältet är tomt finns en beskrivande etikett som skärmläsaren läser upp.
  • Om en användare har skrivit text i det redigerbara fältet läser skärmläsaren upp texten i stället för etiketten.

Dessa två element gäller fortfarande när användaren navigerar mer detaljerat, till exempel tecken för tecken.

Testa

Så här verifierar du manuellt att en app innehåller redigerbara objekt med korrekta etiketter:

  1. Aktivera TalkBack.
  2. Öppna appen.
  3. Flytta tillgänglighetsfokus till det tomma redigerbara objektet.
  4. Lyssna på den upplästa beskrivningen av det tomma redigerbara objektet från TalkBack. Kontrollera om beskrivningen innehåller en etikett och om beskrivningsetiketten matchar eventuella visuella etiketter i appen.
  5. Skriv lite text i det redigerbara objektet.
  6. Flytta tillgänglighetsfokus till det redigerbara objektet.
  7. Lyssna på TalkBacks upplästa beskrivning av det redigerbara objektet som nu innehåller text. Kontrollera att beskrivningen innehåller texten du skrev.
  8. Öppna TalkBacks lokala snabbmeny och växla till navigeringsnivån Tecken.
  9. Använd sveprörelser för att flytta markören en bokstav i taget i det redigerbara objektets text. Kontrollera att TalkBacks upplästa beskrivning av varje navigeringsåtgärd matchar de angivna tecknen, inte objektets etikett.

Androids automatiska testverktyg kan identifiera en icke-tom contentDescription för redigerbara objekt. Vi rekommenderar att du använder tillgångstestaren för Android när du testar appen manuellt på enheten. För automatiska tester kan du aktivera tillgänglighetskontrollerna i Espresso och Robolectric.