Android – Set TalkBack Zugänglichkeit Fokus auf eine bestimmte Ansicht

Wenn TalkBack aktiviert ist, gibt es eine Möglichkeit, das Accessibility-Fokus-Handbuch auf eine bestimmte Ansicht zu setzen? Zum Beispiel, wenn meine Aktivität gestartet wird, möchte ich, dass TalkBack sich automatisch auf einen bestimmten Button (gelber Rahmen um die Ansicht) konzentriert und seine Inhaltsbeschreibung liest.

Was ich bisher versucht habe:

myButton.setFocusable(true); myButton.setFocusableInTouchMode(true); myButton.requestFocus(); 

RequestFocus (), so scheint es, ist nur Eingabe Eingabe Fokus und hat nichts mit Accessibility Fokus zu tun. Ich habe auch versucht:

  myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED); myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED); myButton.announceForAccessibility("accessibility test"); myButton.performAccessibilityAction(64, null); // Equivalent to ACTION_ACCESSIBILITY_FOCUS AccessibilityManager manager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE); if (manager.isEnabled()) { AccessibilityEvent e = AccessibilityEvent.obtain(); e.setSource(myButton); e.setEventType(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED); e.setClassName(getClass().getName()); e.setPackageName(getPackageName()); e.getText().add("another accessibility test"); manager.sendAccessibilityEvent(e); } 

Nichts davon scheint zu funktionieren.

  • Wie zu vermeiden TalkBack aus dem Lesen entlassen Fragment
  • Gibt es einen üblichen Weg, um zu sagen, dass eine Zahl ein Zeichen zu einem Zeitpunkt gelesen werden sollte?
  • Warum funktioniert nextFocusDown nicht mit TalkBack Navigation?
  • Droid Accessibility - Deaktivieren Sie TalkBack für spezifische TextView
  • Android - verhindern, dass TalkBack den TextView-Titel laut ankündigt
  • So ändern Sie Android Talkback im Falle eines App-Namens
  • Testing Zugänglichkeit auf emuliertem Gerät (Marshmallow)
  • Android-Vorhersage: Wie kann ich den Text für eine EditText-Ansicht laut auslesen
  • One Solution collect form web for “Android – Set TalkBack Zugänglichkeit Fokus auf eine bestimmte Ansicht”

    HAFTUNGSAUSSCHLUSS: Erzwingen Sie den Fokus auf Aktivitätsbelastung überall, aber an der oberen Bar ist immer (okay, immer sollte fast nie gesagt werden), aber wirklich, einfach nicht tun. Es handelt sich um eine Verletzung aller Arten von WCAG 2.0-Vorschriften, einschließlich 3.2.1 und 3.2.3, in Bezug auf vorhersehbare Navigations- und Kontextänderungen. Sie sind, wahrscheinlich, machen Sie Ihre App mehr unzugänglich, indem Sie dies tun.

    http://www.w3.org/TR/WCAG20/#consistent-verhalten

    END-HAFTUNGSAUSSCHLUSS.

    Sie verwenden die korrekten Funktionsaufrufe. Alles was du tun musst, ist das:

     myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); 

    Das Problem ist eher der Punkt, an dem Sie versuchen, dies zu tun. Talkback legt sich Ihrer Tätigkeit etwas später im Aktivitätszyklus an. Die folgende Lösung illustriert dieses Problem, ich bin mir nicht sicher, dass es einen besseren Weg gibt, dies zu tun, um ehrlich zu sein. Ich habe versucht onPostResume, das ist der letzte Rückruf der Android OS ruft, über das Laden von Aktivitäten, und immer noch musste ich in einer Verzögerung hinzufügen.

     @Override protected void onPostResume() { super.onPostResume(); Log.wtf(this.getClass().getSimpleName(), "onPostResume"); Runnable task = new Runnable() { @Override public void run() { Button theButton = (Button)WelcomeScreen.this.findViewById(R.id.idButton); theButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); } }; final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor(); worker.schedule(task, 5, TimeUnit.SECONDS); } 

    Sie können eine benutzerdefinierte Ansicht erstellen. Die Rückrufe innerhalb der Ansicht, können die Logik, die Sie benötigen, um dies zu tun, ohne die Rasse Zustand! Ich könnte mich später noch einmal anschauen, wenn ich Zeit bekomme.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.