- Einleitung
- Übersicht über darauf folgende Themen/ Konzepte
- Wer wird adressiert mit diesem Artikel
- Focus Traversal (basics)
- Zusammenspiel der JVM Klassen beschreiben
- Traversal Klassen
- Focusable setzen
- Java mittel
- a11y property
- verweis auf externe Ressources/Tutorials und Demo (von Andre)
- Zusammenspiel der JVM Klassen beschreiben
- Konzept in jadice viewer
- Übersicht
- standard jadice API
- weg über TreeTraversal
- TreeTraversal
- Beispiel für TreeTraversal
- Identifier
- action.properties
- verweis auf jadice Doku (Action & Command Framework)
- mapping (accessibleName - Accessibility Support)
- zusammen Spiel mit Annotationen/Annotation Toolbar
- verweis auf Anno Profil
- action.properties
- FokusTraversal
- Integrationsmöglichkeiten
- In Anwendung
- Weitere Anpassungen durch FocusTraversalKey setzen
- Integrationsmöglichkeiten
- Möglichkeiten und Grenzen des Konzepts
- statische vs dynamische Komponenten
- Overlays
- ThumbnailView
- Anno Editoren
- Externe Frames
- Übersicht
Inhaltsverzeichnis
Einleitung
Dieser Artikel zum jadice viewer® wird ein Überblick darüber gegeben, wie man die Reihenfolge definiert, in der die Bedienelemente des Viewers fokussiert werden.
Der Artikel richtet sich an Integratoren, die aufgefordert sind, bestehende wie auch neue Anwendungen barrierefrei zu gestalten.
Nachfolgend werden Ihnen dafür erforderliche Konzepte und Code Beispiele erklärt.
Focus Traversal Policy
In Swing gibt es die Möglichkeit, mittels der Tastatur mit einzelnen Bedienelementen zu interagieren. Damit die Interaktion mit dem gewünschten Bedienelement erfolgen kann, muss dieses den Fokus haben. Dabei kann immer nur ein Bedienelement der GUI den Fokus erhalten.
Eine Focus Traversal Policy bestimmt die Reihenfolge, in welcher die Bedienelemente den Focus erhalten. Jede Swing-Komponente besitzt eine Default Focus Traversal Policy. Je nach Lokation der Swing Komponente in der Swing-Komponenten-Hierarchie ergibt sich daraus die Fokus Reihenfolge der Anwendung. Dieses Standardverhalten kann durch das Implementieren einer eigenen FocusTraversalPolicy
verändert werden.
Bei einer FocusTraversalPolicy werden nur Bedienelemente berücksichtigt, die einen Fokus erhalten können. Bedienelemente müssen somit zunächst fokussierbar gemacht werden.
Swing sieht für Komponenten die .setFocusable(true)
Methode vor.
jadice® bietet mittels des Action & Command Framework die Möglichkeit, alle Menubar-Komponenten auf einmal fokussierbar zu machen. Dazu muss in der menucomponents.properties, folgender Boolean gesetzt werden:
enable.focussability.for.nonfocussable.components=true
Nachfolgend eine kleine Beispielanwendung für eine eigene FocusTraversalPolicy
(siehe im Abschnitt „Beispiele“).
Weitere Informationen zum Thema FocusTraversalPolicy finden siehe hier: https://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html#customFocusTraversal