Etichette dei contenuti

Gli utenti dei servizi di accessibilità, come ad esempio gli screen reader, si affidano alle etichette dei contenuti per capire il significato degli elementi in un'interfaccia.

In alcuni casi, ad esempio quando le informazioni hanno una veste grafica all'interno di un elemento, le etichette dei contenuti possono fornire una descrizione testuale dell'azione o del significato associati all'elemento.

Se non esistono etichette dei contenuti per gli elementi di un'interfaccia, alcuni utenti potrebbero avere difficoltà a comprendere le informazioni fornite o a compiere azioni nell'interfaccia.

Implementazione

View

Alcuni tipi di elementi View utilizzati in un'interfaccia dovrebbero fornire etichette dei contenuti che descrivano l'azione o lo scopo associati all'elemento View specifico.

Come fornire etichette dei contenuti

android:contentDescription

Se utilizzi ImageView, ImageButton, CheckBox o un altro elemento View che comunica le informazioni graficamente, aggiungi un attributo android:contentDescription per specificare un'etichetta dei contenuti per elemento View.

A volte un'etichetta dei contenuti dipende dalle informazioni disponibili soltanto in fase di runtime, oppure il significato di un elemento View potrebbe cambiare nel tempo. Ad esempio, un pulsante Riproduci potrebbe diventare un pulsante Pausa durante la riproduzione di musica. In questi casi, utilizza View#setContentDescription(CharSequence contentDescription) per aggiornare l'etichetta dei contenuti al momento opportuno.

In genere, quando un servizio di accessibilità descrive un elemento ViewGroup, combina le etichette dei contenuti dei relativi elementi View secondari. Per eseguire l'override di questo comportamento e indicare che vuoi fornire una descrizione personalizzata dell'elemento e dei relativi elementi View secondari non attivabili, imposta un attributo contentDescription nell'elemento ViewGroup. Durante l'impostazione di un elemento ViewGroup potrebbe essere necessario includere le etichette dei contenuti degli elementi View secondari all'interno di un elemento contentDescription.

android:hint

Per gli elementi EditText o TextView modificabili, utilizza un attributo android:hint per indicare lo scopo del campo di testo. Non utilizzare un elemento android:contentDescription come etichetta dei contenuti per gli elementi View modificabili.

android:labelFor

Utilizza un attributo android:labelFor per indicare che un elemento View deve avere la funzione di etichetta dei contenuti per un altro elemento View.

Casi che non richiedono etichette dei contenuti

In alcuni casi non è necessario fornire espressamente le etichette dei contenuti. Ecco quali:

  • Il testo visualizzato in TextView (o nelle relative sottoclassi) viene fornito automaticamente ai servizi di accessibilità. In genere non sono necessarie altre etichette dei contenuti.
  • Le immagini decorative o che non rappresentano graficamente delle informazioni significative non richiedono le etichette dei contenuti. In questi casi, imposta un attributo android:contentDescription con valore "@null" o un attributo android:importantForAccessibility con valore "no".

Leggi ulteriori informazioni sull'implementazione delle etichette dei contenuti nel corso di formazione per sviluppatori Android e nelle guide alle API.

Compose

Alcuni tipi di elementi componibili utilizzati in un'interfaccia dovrebbero includere etichette dei contenuti che descrivano l'azione o lo scopo associati all'elemento componibile specifico.

Come fornire etichette dei contenuti

Descrizioni dei contenuti

Per fornire un'etichetta dei contenuti per Image, Icon o un altro componibile di basso livello che trasmette informazioni grafiche, imposta la descrizione dei contenuti.

  • Un'etichetta dei contenuti può dipendere dalle informazioni di runtime e il significato del componibile potrebbe cambiare. Ad esempio, un pulsante Riproduci potrebbe diventare un pulsante Pausa durante la riproduzione di musica.
  • In alcuni casi, è possibile che tu voglia unire gli elementi in un singolo elemento focalizzabile che combina le etichette dei contenuti degli elementi da cui deriva. Scopri come unire gli elementi.

Parametro etichetta

Alcuni componibili, come TextField, supportano un parametro facoltativo label. Quando l'etichetta è impostata, l'elemento visualizza il componibile trasferito in label. È possibile utilizzare i servizi di accessibilità per descrivere il componibile.

Casi che non richiedono etichette dei contenuti

In alcuni casi non è necessario aggiungere le etichette dei contenuti. Ecco quali:

  • Il testo reso in Text o altri componenti componibili che contengono Text vengono forniti automaticamente ai servizi di accessibilità.
  • Immagini decorative o che non rappresentano graficamente delle informazioni significative.
    • In questi casi, imposta il parametro contentDescription o Modifier.semantics#contentDescription su null, oppure invoca Modifier#clearAndSetSemantics.

Design

Durante la progettazione di un'interfaccia utente è bene valutare con cura che tipo di etichette utilizzare per i contenuti rappresentati graficamente da fornire agli utenti dei servizi di accessibilità. Le etichette dei contenuti dovrebbero rispettare i seguenti principi:

  • Essere concise e descrivere in modo chiaro l'azione o il significato associati a un elemento.
  • Non includere lo stato o il tipo di elemento.
  • Se l'elemento è associato a un'azione, descrivere l'azione e non la rappresentazione grafica.
  • Non spiegare all'utente come interagire specificamente con l'elemento.

Per scoprire di più, leggi le linee guida per la scrittura di testo di accessibilità di Material Design.

Test

Per verificare manualmente che nell'interfaccia utente di un'app siano presenti tutte le etichette dei contenuti, procedi nel seguente modo:

  1. Attiva TalkBack.
  2. Apri l'app.
  3. Utilizza i gesti di navigazione lineare per spostare lo stato attivo dell'accessibilità su ogni elemento visualizzato sullo schermo.
  4. Se TalkBack sposta lo stato attivo su qualche elemento senza pronunciarne una descrizione significativa o pronunciando un messaggio "senza etichetta", significa che l'elemento in questione potrebbe non avere un'etichetta dei contenuti.

Gli strumenti per i test automatici di Android sono in grado di rilevare le etichette dei contenuti mancanti. Valuta se utilizzare Accessibility Scanner per Android per testare manualmente l'app sul dispositivo. Per eseguire test automatici, attiva il controllo dell'accessibilità in Espresso e Robolectric.

Ricerca
Cancella ricerca
Chiudi ricerca
Menu principale
2343250779366708885
true
Cerca nel Centro assistenza
true
true
true
true
true
717068
false
false