2013-06-19 9 views
8

Was ist der bevorzugte Weg, um lange Zahlen, wie eine Bankkontonummer, zu lesen, die ein Zeichen gleichzeitig gelesen werden sollte? Ich weiß, dass Benutzer TalkBack dazu bringen können, eine Nummer auf diese Weise auszulesen, aber es wäre schön, wenn wir darauf hinweisen könnten, dass es von Anfang an so sein sollte.Gibt es eine Standardmethode, um darauf hinzuweisen, dass eine Zahl ein Zeichen gleichzeitig gelesen werden soll?

Ist es eine gute Idee, eine Inhaltsbeschreibung mit Leerzeichen zwischen den Zahlen zu setzen, oder werden Benutzer dies als störend empfinden?

Danke!

+1

Ich denke, das sollte unter UX Stapeln von Exchange geschrieben werden, da sie mehr auf diese Frage beziehen können und mehr Eingänge haben. – deubaka

+1

@deubaka Ich freue mich, woanders zu veröffentlichen, wenn es nicht angemessen scheint, erkennt, dass es Themen ein wenig spreizt. Ich frage mich hauptsächlich, ob es eine Art technischer Weg gibt, dies zu erreichen, vielleicht indem ich ein Attribut für eine 'TextView' setze. – twaddington

+1

Mein Vorschlag wäre, die Kontonummer in ihre "logischen" Divisionen zu trennen (Bsp. 01 983). In diesem Fall wird es Standard und gut formatiert sein (könnte auch eine Monospace Typeface dafür verwenden). Die Verwendung von 'android: contentDescription' scheint der Standardweg zu sein, aber ich würde weiterhin Text-to-Voice-Bibliotheken von Drittanbietern verwenden (zB http://eyes-free.googlecode.com/svn/trunk/ Dokumentation/tutorial/tutorial.html]), da dies die Abhängigkeit von der Verfügbarkeit von TalkBack ausschließen würde. – deubaka

Antwort

1

Ich habe mit mehreren Screenreader-Benutzern gesprochen und sie haben alle bestätigt, dass wir uns in solchen Fällen nicht darum bemühen sollten, etwas Außergewöhnliches zu tun. Sie alle sagen: "Mach dir keine Sorgen, wir können es herausfinden. Du brauchst uns nicht zu helfen."

Wenn ein Screenreader-Benutzer in einen Bereich kommt, für den er mehr Klarheit benötigt, werden die Zeichen mit den Pfeiltasten Zeichen für Zeichen übernommen, bis sie zufrieden sind, und den Bildschirmleser weiterlaufen lassen.

0

Verwenden Sie die folgenden Delegaten für Ihren editText oder 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 
} 
Verwandte Themen