Risanamento 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 sta utilizzando il Scanner di Accessibilità per Android di Google?

Questa sezione fornirà consigli per il risanamento delle regole che lo scanner verifica. Leggi di più su come sfruttare Scanner di Accessibilità e Axe DevTools Mobile.

Visita linee guida del Scanner di Accessibilità di Google per la loro lista completa di controlli attuali, descrizioni e aggiornamenti.

Etichettatura del Contenuto

Etichetta dell'Elemento Mancante

Il contenuto all'interno della vista potrebbe essere privo di informazioni contestuali.

Per qualsiasi vista che fornisce informazioni all'utente, fornisci una delle seguenti opzioni per risolvere questo problema di accessibilità:

  • android:contentDescription: Nella maggior parte dei casi, aggiungere una descrizione del contenuto è tutto ciò che è necessario.
  • android:hint: Si possono aggiungere suggerimenti per descrivere il tipo di dati che l'utente dovrebbe inserire per le viste di testo modificabili.
  • android:labelFor: Questo tag ti permetterà di assegnare una vista come etichetta per un'altra vista.
note

All'interno di Compose, la descrizione del contenuto e il suggerimento si trovano come parametro quando si definisce la vista o attraverso l'interfaccia Modifier.

Immagini Decorative

Le immagini decorative che non forniscono informazioni importanti possono essere contrassegnate come non importanti per l'accessibilità.

Per XML: android:importantForAccessibility="no"

O per Compose:

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

Elemento Etichettato con Tipo o Stato

Una delle tue viste può avere uno stato ridondante. Android fornisce viste predefinite con stati come attivo, disattivo, selezionato o non selezionato. Aggiungere uno stato al resoconto può risultare in un'esperienza confusa.

Per risolvere questo problema di accessibilità, assicurati che:

  • Le caselle di controllo abbiano un'etichetta associata per il contesto
  • Le descrizioni dello stato 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 Elementi Duplicati

Sono state trovate più viste all'interno della gerarchia con descrizioni identiche.

Questo non è un fallimento WCAG e potrebbero esserci casi in cui ciò è richiesto. Se le descrizioni del contenuto sono duplicate, assicurati che ciascuna fornisca abbastanza contesto per far sapere all'utente quale sarebbe il risultato dell'interazione con la vista.

Scopo del Collegamento Poco Chiaro

Qualsiasi collegamento dovrebbe contenere abbastanza testo per trasmettere il suo scopo. Quando si utilizzano descrizioni come "Clicca Qui", è necessario assicurarsi che il testo circostante contenga abbastanza informazioni per decifrare lo scopo del collegamento.

Implementazione - Elementi Cliccabili

Collegamenti Cliccabili

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

Viste Cliccabili Duplicate

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

  • Spostando gli elementi cliccabili in modo che non si incrocino 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 dell'Elemento Modificabile

I campi modificabili devono avere un'etichetta che descriva 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:

Utilizza un TextView e associalo con l'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 possa avere una vista personalizzata. Modifica il AccessibilityNodeInfo per fornire al className uno scopo appropriato per la vista.

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 Traversal

Se puoi navigare nelle tue viste utilizzando TalkBack in modo che abbia senso contestualmente, potrebbe essere un falso positivo e non è necessario affrontarlo.

Se TalkBack non fornisce le stesse informazioni che si ottengono leggendo l'app senza tecnologia assistiva, puoi considerare di modificare l'ordine delle viste. Poiché può essere complicato farlo correttamente e potrebbe anche includere accidentalmente l'aggiunta di un ciclo infinito, sconsigliamo di modificare l'ordine di traversal. Per alterare l'ordine di traversal, utilizza android:accessibilityTraversalBefore e android:accessibilityTraversalAfter.

Ridimensionamento del Testo

Qualsiasi elemento di testo dovrebbe usare pixel scalabili (sp) anziché pixel indipendenti dalla densità (dp) per permettere al testo di adattarsi all'impostazione della dimensione del font per l'accessibilità del dispositivo.

Dimensione Obiettivo Tattile

Per raccomandazioni e consigli di rimedio per le aree visive e tappabili dei controlli attivi, fai riferimento alla Regola Dimensione Obiettivo Tattile per la nostra libreria Android.

Basso Contrasto

Il contrasto dei colori tra il testo e il suo sfondo dovrebbe soddisfare le soglie minime del rapporto AA di WCAG 2. Scopri questo rapporto e trova consigli di rimedio per il Basso Contrasto sotto la Regola del Contrasto dei Colori per la nostra libreria Android.