Etykiety treści

Użytkownicy usług ułatwień dostępu, takich jak czytniki ekranu, korzystają z etykiet treści, aby poznać przeznaczenie elementów interfejsu.

Jeśli na przykład informacja jest przekazywana w formie elementu graficznego, etykieta treści może zawierać opis tekstowy znaczenia elementu lub powiązanego z nim działania.

Gdy elementy interfejsu użytkownika nie mają etykiet treści, niektórzy użytkownicy mogą mieć problemy ze zrozumieniem pokazywanych informacji lub z obsługą interfejsu.

Implementacja

View

Określone typy elementów View użyte w interfejsie powinny zawierać etykiety treści opisujące przeznaczenie danego elementu View lub powiązane z nim działanie.

Jak umieścić etykiety treści

android:contentDescription

W przypadku użycia elementów ImageView, ImageButton, CheckBox lub innego elementu View przekazującego informacje w sposób graficzny skorzystaj z atrybutu android:contentDescription, aby umieścić etykietę treści dla tego elementu View.

Etykieta treści zależy czasami od informacji dostępnej tylko w czasie wykonywania lub znaczenie elementu View może się z czasem zmienić. Na przykład podczas odtwarzania muzyki przycisk Odtwórz może zmienić się w przycisk Wstrzymaj. W takich przypadkach użyj metody View#setContentDescription(CharSequence contentDescription), aby zaktualizować etykietę treści w odpowiednim momencie.

Zazwyczaj, gdy usługa ułatwień dostępu opisuje element ViewGroup, łączy etykiety treści jego podrzędnych elementów View. Aby zastąpić to działanie i podać własną etykietę elementu oraz jego podrzędnych elementów View bez możliwości wyboru, ustaw właściwość contentDescription elementu ViewGroup. Konieczne może być dołączenie etykiet treści z podrzędnych elementów View w contentDescription w przypadku ustawienia na poziomie ViewGroup.

android:hint

W przypadku elementów EditTexts lub edytowalnych TextViews użyj atrybutu android:hint, aby określić przeznaczenie pola tekstowego. Atrybut android:contentDescription nie powinien być używany jako etykieta treści dla edytowalnych elementów View.

android:labelFor

Użyj atrybutu android:labelFor, by wskazać, że element View powinien być traktowany jako etykieta treści innego elementu View.

Kiedy etykieta treści jest niepotrzebna

W niektórych przypadkach nie trzeba podawać etykiety treści:

  • Tekst wyświetlany w elemencie TextView (lub jego podklasach) jest automatycznie dostarczany usługom ułatwień dostępu. Dodatkowe etykiety treści zwykle są niepotrzebne.
  • Obrazy dekoracyjne lub nieprzedstawiające istotnych informacji w sposób graficzny nie wymagają etykiet treści. W takim przypadku ustaw atrybut android:contentDescription o wartości "@null" lub atrybut android:importantForAccessibility o wartości "no".

Aby dowiedzieć się więcej, przeczytaj o implementowaniu etykiet treści w Szkoleniu dla programistów na Androida i Przewodnikach po interfejsie API.

Nowy post

Określone typy elementów kompozycyjnych użytych w interfejsie powinny zawierać etykiety treści opisujące przeznaczenie danego elementu kompozycyjnego lub powiązane z nim działanie.

Jak umieścić etykiety treści

Opisy treści

Aby dodać etykietę treści do elementu Image, Icon lub innego elementu kompozycyjnego niskiego poziomu zawierającego informacje graficzne, ustaw opis treści.

  • Etykieta treści może zależeć od czasu działania, a znaczenie elementu kompozycyjnego może ulec zmianie. Na przykład podczas odtwarzania muzyki przycisk Odtwórz może zmienić się w przycisk Wstrzymaj.
  • W niektórych przypadkach warto scalić elementy w jeden możliwy do zaznaczenia element, który łączy etykiety treści z ich elementów podrzędnych. Dowiedz się, jak scalić elementy.

Parametr label

Niektóre elementy kompozycyjne, takie jak TextField, obsługują opcjonalny parametr label. Gdy ten parametr jest skonfigurowany, element wyświetla element kompozycyjny przekazany do label. Usługi ułatwień dostępu mogą być użyte do opisania elementu kompozycyjnego.

Kiedy etykieta treści jest niepotrzebna

W niektórych przypadkach nie należy dodawać etykiet treści:

  • Tekst renderowany w Text lub innym elemencie kompozycyjnym zawierającym Text jest automatycznie przesyłany do usług ułatwień dostępu.
  • Obrazy dekoracyjne lub nieprzedstawiające istotnych informacji w sposób graficzny.
    • W takim przypadku ustaw parametr contentDescription lub właściwość Modifier.semantics#contentDescription na null albo wywołaj Modifier#clearAndSetSemantics.

Projektowanie

Projektując interfejs użytkownika, zastanów się, jak treści graficzne powinny być oznaczone dla użytkowników usług ułatwień dostępu. Etykiety treści:

  • Powinny być zwięzłe i jasno opisywać przeznaczenie elementu lub powiązane z nim działanie.
  • Nie powinny zawierać typu lub stanu elementu.
  • Jeśli z elementem jest powiązane działanie, powinny opisywać działanie, a nie graficzną reprezentację.
  • Nie powinny stanowić instrukcji interakcji z elementem.

Aby dowiedzieć się więcej, przeczytaj wytyczne dotyczące pisania zgodnie z wymaganiami ułatwień dostępu w interfejsie Material Design.

Testowanie

Aby ręcznie sprawdzić, czy interfejs użytkownika zawiera wszystkie etykiety treści:

  1. Włącz TalkBack.
  2. Otwórz aplikację.
  3. Użyj gestów nawigacji liniowej i przenieś zaznaczenie na każdy element ekranu.
  4. Jeśli TalkBack przeniesie zaznaczenie do elementu, ale nie odczyta jego znaczenia lub wypowie komunikat „bez etykiety”, element może nie zawierać etykiety treści.

Automatyczne narzędzia testujące na Androidzie mogą wykrywać brakujące etykiety treści. 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.

Szukaj
Wyczyść wyszukiwanie
Zamknij wyszukiwanie
Menu główne
1388767779263902997
true
Wyszukaj w Centrum pomocy
true
true
true
true
true
717068
false
false