2013-06-19 23 views
8

Jaki jest preferowany sposób obsługi długich numerów, takich jak numer konta bankowego, które należy czytać po jednej nazwie? Wiem, że użytkownicy mogą w TalkBack odczytać liczbę w ten sposób, ale byłoby miło, gdybyśmy mogli wskazać, że powinna to zrobić od samego początku.Czy istnieje standardowy sposób na wskazanie, że numer należy czytać po jednym znaku na raz?

Czy dobrze jest ustawić opis treści za pomocą spacji między liczbami, czy użytkownicy uznają to za denerwujące?

Dzięki!

+1

myślę, że to powinno być wysłane pod UX Stos Exchange, ponieważ mogą one bardziej odnoszą się do tej kwestii i mieć więcej wejść. – deubaka

+1

@deubaka Cieszę się, że mogę publikować w innym miejscu, jeśli nie wydaje mi się to odpowiednie, zdaje sobie sprawę, że to trochę zagadkowa. Przede wszystkim zastanawiasz się, czy istnieje jakiś techniczny sposób osiągnięcia tego, być może poprzez ustawienie atrybutu na 'TextView'. – twaddington

+1

Moja sugestia polegałaby na oddzieleniu numeru konta na jego "logiczne" podziały (np. 01 983). W takim przypadku będzie on standardowy i dobrze sformatowany (może również użyć do tego celu czcionki Monospace). Używanie 'Android: contentDescription' wydaje się być standardowym sposobem, ale chciałbym używać zewnętrznych bibliotek Text-To-Voice (np. Http://eyes-free.googlecode.com/svn/trunk/ document/tutorial/tutorial.html]), ponieważ wyeliminowałoby to konieczność uzależnienia od dostępności TalkBack. – deubaka

Odpowiedz

1

Rozmawiałem z kilkoma użytkownikami czytników ekranu i wszyscy potwierdzili, że nie powinniśmy robić wszystkiego, aby zrobić coś niezwykłego w takich przypadkach. Wszyscy mówią: "Nie martw się, możemy to rozgryźć, nie potrzebujesz pomocy".

Jeśli użytkownik czytnika ekranu dotrze do obszaru, który wymaga większej przejrzystości, użyje ich klawiszy strzałek, aby przejść znak po znaku, dopóki nie zostaną usatysfakcjonowani i kontynuować czytanie dalej.

0

Poniższa delegata dla EditText lub 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 
}