Bewerkbare items in een app bieden gebruikers de mogelijkheid tekst in te voeren. Elk bewerkbaar item moet zijn voorzien van een label waarin wordt aangegeven wat het doel van het desbetreffende item is.
Android biedt ontwikkelaars verschillende manieren om Views
in de gebruikersinterface van een app te labelen. Voor bewerkbare items in een interface kunnen enkele van deze labelmethoden de toegankelijkheid verbeteren.
Implementatie
Als je een bewerkbaar TextView
- of EditText
-item wilt labelen, gebruik je android:hint
om een beschrijvend tekstlabel in het lege item weer te geven.
<EditText
android:id="@+id/email_subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/email_subject_hint" />
Als de gebruikersinterface van een app al een tekstlabel voor een bewerkbaar item bevat, definieer je android:labelFor
voor de View
die je wilt labelen om aan te geven welk item met het label wordt beschreven.
<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>
Tip: TextInputLayout
in de Android Design Support Library biedt een eenvoudige manier om een EditText
-item en een bijbehorend tekstlabel te beheren, en werkt goed met de toegankelijkheidsservices van Android.
Wanneer je android:contentDescription
voor een EditText
- of bewerkbaar TextView
-item definieert, is het mogelijk dat de tekst die een gebruiker in het item invoert niet kan worden beschreven, niet navigeerbaar is of dat er geen interactie met de tekst mogelijk is bij gebruik van een toegankelijkheidsservice.
Ontwerp
Als gebruikers naar bewerkbare items gaan met een schermlezer, heeft een goed geïmplementeerde gebruikersinterface de volgende elementen:
- Als het bewerkbare veld leeg is, is dit voorzien van een beschrijvend label dat door de schermlezer wordt voorgelezen.
- Als een gebruiker tekst in het bewerkbare veld heeft ingevoerd, spreekt de schermlezer de tekst uit naast het beschrijvende label.
Als een gebruiker naar een lager detailniveau navigeert, zoals teken voor teken, spreekt de schermlezer de ingevoerde tekst uit of de hint als deze leeg is.
Testen
Ga als volgt te werk om handmatig te controleren of een app correct gelabelde bewerkbare items bevat:
- Schakel TalkBack in.
- Verplaats in de app de focus van de toegankelijkheidsservice naar het lege bewerkbare item.
- Controleer of de gesproken beschrijving van TalkBack voor het lege bewerkbare item een label bevat en of dat beschrijvende label overeenkomt met visuele labels in de app.
- Typ tekst in het bewerkbare item.
- Verplaats de toegankelijkheidsfocus naar het bewerkbare item.
- Als je wilt controleren of de gesproken beschrijving je getypte tekst bevat, luister je naar de beschrijving van TalkBack van het bewerkbare item.
De geautomatiseerde testtools van Android kunnen een niet-lege contentDescription
voor bewerkbare items detecteren. Je kunt Accessibility Scanner voor Android gebruiken om je app handmatig op het apparaat te testen. Voor geautomatiseerde tests schakel je toegankelijkheidscontroles in Espresso en Robolectric in.