Ändern accessibility-focus bestellen
Ist es möglich, ändern Sie die Eingabehilfen-focus bestellen? Zum Beispiel, wenn ich 3 Ansichten nebeneinander, mit ids view1, ansicht2, und view3, gibt es eine einfache Möglichkeit, um die Barrierefreiheit konzentrieren, gehen Sie zu view3, wenn der Benutzer Eingaben direkt von view1?
Hier ist, was ich versucht habe:
Habe ich Folgendes in einem linearen layout.
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView"
android:focusable="true"
android:nextFocusUp="@+id/imageView3"
android:nextFocusDown="@+id/imageView3"
android:nextFocusRight="@+id/imageView3"
android:nextFocusLeft="@+id/imageView3"
android:nextFocusForward="@+id/imageView3"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView2"
android:focusable="true"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView3"
android:focusable="true"
android:nextFocusUp="@+id/imageView2"
android:nextFocusDown="@+id/imageView2"
android:nextFocusRight="@+id/imageView2"
android:nextFocusLeft="@+id/imageView2"
android:nextFocusForward="@+id/imageView2"
android:src="@drawable/ic_launcher"/>
Dann starte ich diese und Stelle die Zugänglichkeit der Fokus auf der ersten Bildansicht. Auf swiping rechts zu bewegen, um den nächsten Punkt, ich erwarte, dass es zu bewegen Zugänglichkeit Fokus auf imageView3, sondern es geht um imageView2.
- Technisch ja, Sie können explizit angeben traversal order, wenn Sie eine AccessibilityDelegate und fügen Sie den untergeordneten Knoten manuell, aber dies führt zu anderen Fragen und ist nicht garantiert zu arbeiten, wenn TalkBack-änderungen, wie Sie verarbeitet Fokus-traversal. Es ist immer noch eine offene feature request gegen die accessibility-framework.
- Haben Sie zufällig einen link zu den herausragenden feature-request? Ich würde gerne Folgen Sie Ihren Fortschritt. Ändern der traversal Ordnung wäre besonders hilfreich für die neue Floating-Action-Button. Wenn es schwimmt, über einen auto-laden-Liste, die ein Benutzer möglicherweise nicht immer finden es, indem Sie Recht. (Siehe Posteingang zum Beispiel von diesem Problem)
- Upps, sieht aus wie es war gerade Hinzugefügt in der API-22! Hinzugefügt eine Antwort auf die ursprüngliche Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Anwendungen mit minSdkVersion >= 22 können Sie festlegen, traversal, um für Bildschirm-Leser direkt in die XML-Daten mit android:accessibilityTraversalAfter:
Für Anwendungen, die Unterstützung der unteren API-Ebenen, die traversal-Reihenfolge kann festgelegt werden programmgesteuert mit ViewCompat:
Bitte beachten Sie, dass die screen-reader-Benutzer verlassen sich auf die Konsistenz der navigation, daher ändern Sie den Fokus, um ein anti-pattern und sollte vermieden werden.
RecyclerView
Element. Es springt zum nächsten Element in der Liste nach der Durchquerung auf das aktuelle Element.setTraversalBefore
undsetTraversalAfter