2017-01-01 4 views
1

Wenn Sie die Exoplayer-Demoanwendung ausführen, wird SeekBar focusable in der Standardsteuerung als false festgelegt. Ich denke, das ist nicht gut für die Barrierefreiheit, also habe ich in meiner benutzerdefinierten Benutzeroberfläche fokussierbar auf "True" geändert.Die Exoplayer-Suchleiste funktioniert nicht mit den Pfeiltasten

Wenn Sie jedoch die Pfeile verwenden, ändert sich der Fortschritt nicht. Die SeekBar wird aktualisiert, kehrt jedoch nach der Aktualisierung zur ursprünglichen Position zurück.

Ich habe auch eine andere SeekBar zu Testzwecken erstellt, und die Verwendung von Pfeiltasten funktioniert gut.

Gibt es einen Grund, dass die Exoplayer-Entwickler es auf false setzen, oder gibt es eine Möglichkeit, es zu beheben?

+0

Exoplayer Open Source ist, so dass Sie den Code anschauen gehen könnte, fix it innen und tragen – Blundell

+0

zurück Ja, ich hat es geändert, aber es wird nicht auf Änderungen mit den Pfeiltasten reagieren. – AMD

+0

@AMD überprüft, ob die SeekBar von einem Touch-Ereignis oder einem anderen Ereignis geändert wurde - wird meine Antwort aktualisieren. – ataulm

Antwort

2

Es ist wahrscheinlich, dass die Entwickler die SeekBar nicht als geeignete Komponente zur Steuerung des Videos mit berührungslosen Eingabe- oder Eingabehilfen wie TalkBack betrachteten.


Sie könnten auf jeden Fall etwas implementieren, die mit der Tastatur gearbeitet, zumindest für Desktop-Modus. Z.B. YouTube.com ermöglicht es dem Benutzer, mit den Pfeiltasten nach links/rechts zu suchen, auch wenn die Suchleiste nicht fokussiert ist.

Die SeekBar kann auch mit der Tab-Taste fokussiert werden, sondern auf Android, sind die Cursor-Tasten legitime affordances zu zwischen fokussierbare Komponenten zu navigieren, so dass es schwieriger ist, die gleiche UX zu implementieren.


Auf der anderen Seite haben Sie auch andere Zugänglichkeitsaspekte mit der SeekBar-Steuerelement. Ein wichtiger Teil des Steuerelements ist die Fähigkeit, zu ziehen - mit TalkBack brauchen Sie zwei Finger zum Ziehen. Da die SeekBar sowieso ein kleines Steuerelement ist, ist es ziemlich schwierig, den Abspielkopf mit zwei Fingern zu ziehen, und sogar noch schwieriger, wenn Sie den Abspielkopf nicht sehen können ().

Warum hat es nicht reagiert, als Sie die SeekBar fokussierbar gemacht und den Fortschritt mit der Tastatur aktualisiert haben? Es checks for user touch input vor der Behandlung es als eine legitime Suche (Ich denke, es gibt ein paar Gründe dafür, inc. Nicht ständig suchen, während der Benutzer schleppt oder so die programmatischen SeekBar Updates nicht weitere sucht auslösen).


würde empfehlen, dass Sie Ihre eigene Benutzeroberfläche erstellen ExoPlayer nur mit den Medien zu handhaben. Auf diese Weise haben Sie die Kontrolle über UX und UI für Ihren Player.

In der YouTube App zum Beispiel wird eine andere Benutzeroberfläche angezeigt, wenn TalkBack aktiviert ist (es gibt libraries which can aid with this), die Sprung rückwärts/vorwärts Tasten auf dem Bildschirm überlagern.


Referenz-Quellcode:

+1

Excellent, Da Exoplayer bereits einen Sprung vorwärts und rückwärts eingebaut hat, wäre dies einfach. In diesem Fall werde ich herausfinden, wie man erkennt, ob die Zugänglichkeit aktiviert ist. Wenn es aktiviert ist oder das Gerät keinen Touchscreen unterstützt, zeichne ich zwei zusätzliche Tasten auf dem Bildschirm. – AMD

+0

klingt wie ein Plan - Novoda hat eine Bibliothek, um diese Überprüfung zu erleichtern, siehe meine aktualisierte Antwort. Es enthält noch nicht die Überprüfung, ob der Benutzer ein Nicht-Berührungsgerät verwendet, aber '! AnyView.isInTouchMode()' wird dies für Sie erreichen. – ataulm

Verwandte Themen