Możliwe do edytowania elementy w aplikacji pozwalają użytkownikom wpisywać tekst. Każdy taki element powinien mieć opisową etykietę informującą o jego przeznaczeniu.
Programiści aplikacji na Androida mogą w ich interfejsach oznaczać etykietami obiekty View
na kilka sposobów. Niektóre z tych sposobów mogą ułatwić dostęp do elementów możliwych do edytowania.
Implementacja
Aby oznaczyć możliwy do edytowania obiekt TextView
lub EditText
etykietą, użyj atrybutu android:hint
, który powoduje wyświetlanie opisowej etykiety tekstowej w elemencie, gdy jest on pusty.
<EditText
android:id="@+id/email_subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/email_subject_hint" />
Jeśli w interfejsie aplikacji jest już etykieta tekstowa elementu możliwego do edytowania, zdefiniuj atrybut android:labelFor
obiektu View
w etykiecie, aby wskazać opisywany przez nią element.
<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>
Wskazówka: klasa TextInputLayout
w bibliotece Android Design Support Library pozwala łatwo zarządzać obiektem EditText
i powiązaną z nim etykietą tekstową oraz dobrze działa z usługami ułatwień dostępu w Androidzie.
Zdefiniowanie atrybutu android:contentDescription
dowolnego obiektu EditText
lub możliwego do edytowania obiektu TextView
może zakłócać działanie usługi ułatwień dostępu, uniemożliwiając opisywanie tekstu wprowadzanego w elemencie przez użytkownika, nawigację po tym tekście i interakcję z nim.
Projektowanie
Gdy użytkownik za pomocą czytnika ekranu przejdzie do elementów możliwych do edytowania, poprawnie zaimplementowany interfejs będzie zawierać te elementy:
- Jeśli możliwe do edytowania pole będzie puste, wyświetli się opisowa etykieta, którą czytnik ekranu odczyta na głos.
- Jeśli w polu z możliwością edycji użytkownik wpisze tekst, czytnik ekranu go odczyta wraz z etykietą opisową.
Gdy użytkownik porusza się wyższym poziomie szczegółowości, na przykład litera po literze, czytnik ekranu odczyta wpisany tekst lub podpowiedź, gdy pole będzie puste.
Testowanie
Aby ręcznie sprawdzić, czy aplikacja zawiera możliwe do edytowania elementy prawidłowo oznaczone etykietami:
- Włącz TalkBack.
- W ustawieniach aplikacji dotyczących ułatwień dostępu przejdź do pustego elementu możliwego do edytowania.
- Sprawdź, czy odczytywany przez funkcję TalkBack opis tego pustego elementu zawiera etykietę i czy odpowiada ona etykietom wizualnym w aplikacji.
- Wpisz jakiś tekst w elemencie możliwym do edytowania.
- W usłudze ułatwień dostępu przejdź do tego elementu.
- Aby sprawdzić, czy wraz z opisem elementu możliwego do edytowania zostanie też odczytany wpisany tekst, posłuchaj tego opisu za pomocą funkcji TalkBack.
Narzędzia do automatycznego testowania na Androida wykrywają niepuste atrybuty contentDescription
elementów możliwych do edytowania. Accessibility Scanner na Androida pozwala na ręczne przetestowanie aplikacji zainstalowanej na urządzeniu. Jeżeli chcesz przeprowadzać testy automatyczne, włącz sprawdzanie ułatwień dostępu w Espresso i Robolectric.