Correzione per lo scanner di accessibilità

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Il tuo team utilizza Android Accessibility Scanner di Google?

In questa sezione verranno forniti suggerimenti per correggere le regole verificate dallo scanner. Per saperne di più su come sfruttare Accessibility Scanner e axe DevTools Mobile.

Per un elenco completo dei controlli, delle descrizioni e degli aggiornamenti correnti, visita le Linee guida di Google Accessibility Scanner .

Etichettatura dei contenuti

Etichetta dell'articolo mancante

Il contenuto dell'elemento dell'interfaccia utente potrebbe non contenere informazioni contestuali.

Per qualsiasi elemento dell'interfaccia utente che fornisca informazioni all'utente, fornire una delle seguenti opzioni per risolvere questo problema di accessibilità:

  • android:contentDescription: Nella maggior parte dei casi, è sufficiente aggiungere una descrizione del contenuto.
  • android:hint: È possibile aggiungere suggerimenti per descrivere il tipo di dati che l'utente deve immettere per le visualizzazioni di testo modificabili.
  • android:labelFor: Questo tag consente di assegnare una vista come etichetta per un'altra vista.
note

In Compose, la descrizione del contenuto e il suggerimento si trovano come parametri durante la definizione della vista o tramite l'interfaccia Modifier.

Immagini decorative

Le immagini decorative che non forniscono informazioni importanti possono essere contrassegnate come non importanti ai fini dell'accessibilità.

Per XML: android:importantForAccessibility="no"

Oppure per Componi:

Image(
      imageVector = Icons.Filled.AccountCircle,
      contentDescription = null // decorative
    )

Elemento etichettato con tipo o stato

Una delle tue viste potrebbe avere uno stato ridondante. Android fornisce visualizzazioni predefinite con stati quali acceso, spento, selezionato o deselezionato. Aggiungere uno stato al feedback audio può dare origine a un'esperienza confusa.

Per risolvere questo problema di accessibilità, assicurati che:

  • Le caselle di controllo hanno un'etichetta associata per il contesto
  • Le descrizioni degli stati non vengono aggiunte alla descrizione della vista
<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/example"
      android:text="Check Label" />

<androidx.appcompat.widget.AppCompatCheckBox
      android:id="@+id/example"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/with_text"/>

Descrizioni degli articoli duplicati

Si è scoperto che più visualizzazioni all'interno della gerarchia presentavano descrizioni identiche.

Non si tratta di una violazione delle norme WCAG e potrebbero esserci casi in cui è un requisito. Se le descrizioni dei contenuti sono duplicate, assicurati che ciascuna fornisca un contesto sufficiente per far sapere all'utente quale sarebbe il risultato dell'interazione con la vista.

Scopo del collegamento non chiaro

Ogni collegamento dovrebbe contenere testo sufficiente a comunicarne lo scopo. Quando si utilizzano descrizioni come "Clicca qui", è necessario assicurarsi che il testo circostante contenga informazioni sufficienti a decifrare lo scopo del collegamento.

Implementazione - Elementi cliccabili

I link devono essere visualizzati in modo chiaro e facilmente accessibili dal menu contestuale locale. Google suggerisce di utilizzare URLSpan o la classe di convenienza Linkify per visualizzare i collegamenti ipertestuali nell'interfaccia utente di un'app per aumentare la probabilità che vengano rilevati e attivati.

Visualizzazioni cliccabili duplicate

Uno degli elementi cliccabili nella tua vista si sovrappone a un altro elemento cliccabile. Puoi risolvere questo problema di accessibilità in uno dei seguenti modi:

  • Spostare gli elementi cliccabili in modo che non entrino in collisione o si sovrappongano.
  • Se le viste non possono essere spostate, assicurati che entrambe le viste abbiano un'area di tocco di dimensioni adeguate e che chiunque possa interagire con gli elementi senza problemi.

Etichetta elemento modificabile

I campi modificabili devono avere un'etichetta che descrive lo scopo del campo.

Un esempio con EditText:

<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/edit_text"
      android:text="Enter your username" />

<EditText
      android:id="@+id/edit_text"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:hint="Hint" />

Un esempio con CheckBox:

Utilizzare un TextView e associarlo all'elemento CheckBox:

val checkBox: CheckBox = ....... // Role: CheckBox
val label: TextView = ....... // Role: Label
label.setLabelFor(checkBox.getId()) // Associate the Checkbox with its Name

Tipo di elemento non supportato

Sembra che tu abbia una vista personalizzata. Modificare il AccessibilityNodeInfo per fornire al className uno scopo appropriato per la visualizzazione.

val frameLayout = findViewById<FrameLayout>(R.id.custom_view)
frameLayout.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
      override fun onInitializeAccessibilityNodeInfo(
          host: View,
          info: AccessibilityNodeInfo
      ) {
            info.className = "ClassName"
            info.contentDescription = "ContentDescription"
            super.onInitializeAccessibilityNodeInfo(host, info)           
      }
})

Ordine di attraversamento

Se riesci a gestire le tue visualizzazioni utilizzando TalkBack in un modo che abbia senso in base al contesto, questo potrebbe essere un falso positivo e non deve essere affrontato.

Se TalkBack non fornisce le stesse informazioni della lettura dell'app senza tecnologia assistiva, potresti prendere in considerazione la possibilità di modificare l'ordine delle viste. Poiché può essere difficile farlo correttamente e potrebbe anche comportare l'aggiunta accidentale di un ciclo infinito, sconsigliamo di modificare l'ordine di attraversamento. Per modificare l'ordine di attraversamento, usa android:accessibilityTraversalBefore e android:accessibilityTraversalAfter.

Ridimensionamento del testo

Tutti gli elementi di testo dovrebbero utilizzare pixel scalabili (sp) anziché pixel indipendenti dalla densità (dp) per consentire al testo di ridimensionarsi in base alle impostazioni di accessibilità della dimensione del carattere del dispositivo.

Dimensione del target touch

Per suggerimenti e soluzioni per le aree visive e toccabili dei controlli attivi, fare riferimento alla Regola sulle dimensioni del bersaglio touch per la nostra libreria Android.

Basso contrasto

Il contrasto di colore tra il testo e lo sfondo deve rispettare le soglie minime WCAG 2 AA. Scopri di più su questo rapporto e trova suggerimenti per correggere il Contrasto Basso nella Regola Contrasto Colore della nostra libreria Android.