2013-06-19 21 views
8

Qual è il modo preferito per gestire numeri lunghi, come un numero di conto bancario, che dovrebbe essere letto un carattere alla volta? So che gli utenti possono convincere TalkBack a leggere un numero in questo modo, ma sarebbe bello se potessimo suggerire che dovrebbe farlo fin dall'inizio.Esiste un modo standard per suggerire che un numero debba essere letto un carattere alla volta?

È una buona idea impostare una descrizione del contenuto con spazi tra i numeri, o gli utenti troveranno questo fastidioso?

Grazie!

+1

credo che questo dovrebbe essere pubblicato sotto UX Stack Exchange come si può più riferirsi a questa domanda e avere più ingressi. – deubaka

+1

@deubaka Sono felice di postare altrove se non sembra appropriato, mi rendo conto che cavalca un po 'gli argomenti. In primo luogo, mi chiedo se c'è un qualche modo tecnico per farlo, magari impostando un attributo su un 'TextView'. – twaddington

+1

Il mio suggerimento sarebbe quello di separare il numero di conto nelle sue divisioni "logiche" (es: 01 983). In questo caso, sarà standard e ben formattato (potrebbe anche usare un carattere tipografico di Monospace per questo). L'uso di 'android: contentDescription' sembra essere il modo standard, ma continuerei a utilizzare le librerie Text-To-Voice di terze parti (ad esempio http://eyes-free.googlecode.com/svn/trunk/ documentazione/tutorial/tutorial.html]) in quanto eliminerebbe la necessità di dipendere dalla disponibilità di TalkBack. – deubaka

risposta

1

Ho parlato con diversi utenti di screen reader e tutti hanno confermato che non dovremmo fare del nostro meglio per fare qualcosa di straordinario in casi come questo. Dicono tutti "Non ti preoccupare, possiamo capirlo, non è necessario aiutarci".

Se un utente di screen reader raggiunge un'area su cui ha bisogno di maggiore chiarezza, utilizzerà i tasti freccia per passare da un personaggio all'altro finché non saranno soddisfatti e continuerà a far continuare lo screen reader.

0

Usare il seguente delegato per l'EditText o textView

@Override 
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { 
    super.onInitializeAccessibilityNodeInfo(host, info); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 

     switch (host.getId()) { 
      case R.id.tv_bookingID: 
       if (((TextView) host).getText().length() > 1) { 
        sb.delete(0, sb.length()); 
        for (char c : ((TextView) host).getText().toString().toCharArray()) { 
         sb.append(c).append(" "); 
        } 
        //change text for talkback 
        info.setText(null); 
        info.setContentDescription(sb.toString().trim()); 

       } 
       break; 
     } 
    }//if 
}