Paket | spark.accessibility |
Klasse | public class DataGridAccImpl |
Vererbung | DataGridAccImpl ListBaseAccImpl AccImpl AccessibilityImplementation Object |
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Wenn ein Spark DataGrid erstellt wird, wird seine accessibilityImplementation
-Eigenschaft des untergeordneten focusOwner
-Elementobjekts auf eine Instanz dieser Klasse gesetzt. Die Accessibility-Implementierung wird auf dieses focusOwner
-Platzhalterobjekt platziert, sodass die Accessibility-Implementierung des DataGrid nicht die Accessibility-Implementierung des Elementeditors verdeckt. Die DataGrid-Komponente selbst hat keine Accessibility-Implementierung. Dieser Schritt ist erforderlich, da die aktuelle Version von Flash Player nicht mehrere Ebenen von MSAA-Objekten unterstützt. Elementeditoren können alle Komponenten sein und müssen vollständige MSAA-Objekte sein. Diese Elementeditorobjekte erscheinen als dem DataGrid gleichgeordnete Objekte in der Baumstruktur. Die Accessibility-Implementierung für jeden Elementeditor wird daher von der mit dieser Komponente verknüpften Accessibility-Implementierung wie CheckBoxAccImpl
für eine CheckBox verarbeitet. Die Accessibility-Implementierung des Elementeditors existiert nur in einer Elementeditorsitzung und es kann jeweils nur einen aktiven Elementeditor geben. Daher ist jeweils eine oder keine Instanz der Accessibility-Implementierung des Elementeditors aktiv.
Zwei Methoden werden in der DataGrid
-Klasse überschrieben, um den Fokus zwischen DataGrid
und dem untergeordneten focusOwner
-Element von DataGrid
ordnungsgemäß zu verarbeiten. Die GridItemRenderer
-Klasse deaktiviert Accessibility für Elementrenderer, da diese standardmäßig als einfache Objekte unter der DataGrid-Accessibility-Implementierung verarbeitet werden. Während dies die Verwendung von Nicht-Elementeditorkomponenten wie CheckBox, Panel usw. in DataGrids einschränkt, wird verhindert, dass diese Elemente in der MSAA-Struktur als dem DataGrid gleichgeordnet erscheinen. Wenn alle Renderer für Rasterelemente in der MSAA-Struktur als dem DataGrid gleichgeordnete Elemente erscheinen, würde das für Benutzer von Bildschirmleseprogrammen sehr verwirrend sein, da es keinen Kontext und keine Beziehungen geben würde. Entwickler können dieses Standardverhalten gegebenenfalls natürlich überschreiben, um diese Renderer mit aktivierter Accessibility anzuzeigen.
Der Flash Player lässt dann mithilfe dieser Klasse zu, dass MSAA-Clients, wie z. B. Bildschirmleseprogramme, das DataGrid erkennen und ändern. Weitere Hintergrundinformationen über Accessibility-Implementierungsklassen und MSAA finden Sie unter den Klassen „mx.accessibility.AccImpl“ und „flash.accessibility.AccessibilityImplementation“.
Das DataGridAccImpl
erweitert den ListBaseAccImpl
(wenn das DataGrid
den DataGridBase
erweitert, der die ListBase
-Klasse erweitert). Spark DataGridAccImpl
ähnelt MX AdvancedDataGridAccImpl
, da das AdvancedDataGrid auch einzelne Zellen- und Zeilenauswahl unterstützt, die das MX DataGrid nicht unterstützte.
Untergeordnete Elemente
Die untergeordneten MSAA-Elemente eines DataGrid sind in folgender Reihenfolge angeordnet:
- Beginnend von links: ein untergeordnetes Element für jede sichtbare Kopfzeile. „Sichtbar“ bedeutet hier nicht vom Entwickler ausgeblendet (
column.visible=false
). Die Kopfzeile für eine Spalte, die vom Entwickler nicht als nicht sichtbar markiert wurde, die aber aus dem Bildschirm gescrollt ist, wird hier als „sichtbar“ betrachtet. - Im Zeilenauswahlmodus ein untergeordnetes Element für jede Datenzeile im Raster; ODER
- Im Zellenauswahlmodus ein untergeordnetes Element für jede Zelle im Raster, unter Ausschluss von Zellen in nicht sichtbaren (wie gerade beschrieben) Spalten.
Die Anzahl von untergeordneten Elementen beruht auf der Anzahl der Zeilen und Spalten im dataProvider
, nicht auf der Anzahl der Elemente, die derzeit auf dem Bildschirm angezeigt werden.
Beachten Sie, dass im Gegensatz zu ListBase
die untergeordnete DataGrid-Elementanzahl nicht die Anzahl von Datenzeilen im Steuerelement darstellt. Unterstützende Technologie sollte deshalb die Verwendung von AccChildCount
zur Meldung der Zeilenanzahl vermeiden.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Rolle
Die MSAA-Rolle eines DataGrid ist ROLE_SYSTEM_LIST
.
Die Rolle jeder Datenzeile oder -zelle im DataGrid ist ROLE_SYSTEM_LISTITEM
.
Die Rolle jeder Kopfzelle im DataGrid ist ROLE_SYSTEM_COLUMNHEADER
.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Name
Der MSAA-Name eines DataGrid ist standardmäßig ein leerer String. Wenn der Name in einem FormItem
-Element eingeschlossen ist, entspricht er der Beschriftung des FormItem. Um dieses Verhalten zu überschreiben, legen Sie die accessibilityName
-Eigenschaft des DataGrid fest. Die Einstellung der accessibilityName
-Eigenschaft wendet außerdem den barrierefreien Namen auf das untergeordnete focusOwner
-Elementobjekt des DataGrid an, welches das DataGrid darstellt.
Der Name jeder Datenzeile (im Zeilenauswahlmodus) ist ein String in folgender Form: „_column1Name_: _column1Value_, _column2Name_: _column2Value_, ..., _columnNName_: _columnNValue_, Zeile _m_ von _n_.“ Spalten werden durch Kommas voneinander getrennt und Spaltennamen und -werte werden durch Doppelpunkte voneinander getrennt. Vom Entwickler ausgeblendete Spalten werden vollkommen aus dem Namensstring weggelassen. Beispielnamensstring: „Kontaktname: Doug, Kontakttelefonnummer: 555-1212, PLZ: 12345, Zeile 3 von 7.“
Beachten Sie, dass „Zeile _m_ von _n_“ lokalisiert ist.
Der Name jeder Datenzelle in Spalte 1 (im Zellenauswahlmodus) ist ein String in folgender Form: „_columnName_: _columnValue_, Zeile _m_ von _n_.“ Beispiel: „Kontakttelefonnummer: 555-1212, Zeile 2 von 5.“ Nachfolgende Spalten verwenden das gleiche Format, lassen allerdings den Teil „Zeile _m_ von _n_“ weg.
Beachten Sie, dass „Zeile _m_ von _n_“ lokalisiert ist.
Der Namensstring für eine Spaltenüberschrift (im Zellen- oder Zeilenauswahlmodus) ist normalerweise der Text der Überschrift. Beispiel: „Kontakttelefonnummer.“ Wenn das Raster allerdings nach der entsprechenden Spalte sortiert wird, wird der String „sortiert“ oder „absteigend sortiert“ an den Spaltennamen angehängt, um die Sortierung und ihre Richtung anzuzeigen. Beispiel: „Kontaktname sortiert“. Bei Mehrspalten-Sortierung werden Ebenenstrings ebenfalls angehängt, wobei die Spalte jeder Ebene in der Gruppe von Sortierungsspalten angezeigt wird. Wenn ein Raster beispielsweise zuerst nach Spalte 3 und dann nach Spalte 2 sortiert wird und Spalte 2 wird in absteigender Reihenfolge sortiert, endet der Name von Spalte 3 auf „sortiert Ebene 1“ und der Name von Spalte 2 endet auf „absteigend sortiert Ebene 2“. Die Strings, die die aufsteigende und absteigende Sortierung sowie die Sortierungsebene angeben, sind lokalisiert.
Wenn der Name des DataGrid oder eines seiner Elemente geändert wird, löst ein DataGrid das MSAA-Ereignis EVENT_OBJECT_NAMECHANGE
aus – mit der richtigen childID für eine Zeile oder Zelle oder 0 für es selbst.
Wenn ein Accessibility-Name nicht für einen Elementeditor festgelegt wird, wird ein Name basierend auf dem Namen der Spaltenüberschrift für die Zelle festgelegt.
Beschreibung
Die MSAA-Beschreibung eines DataGrid ist standardmäßig ein leerer String, Sie können jedoch die accessibilityDescription
-Eigenschaft des DataGrid festlegen.
Die Beschreibung jeder Zeile, Zelle oder Überschrift ist der leere String und kann nicht von einem AccImpl festgelegt werden.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Status
Der MSAA-Status eines DataGrid ist eine Kombination aus:
-
STATE_SYSTEM_UNAVAILABLE
(wennenabled
den Wertfalse
hat) -
STATE_SYSTEM_FOCUSABLE
(wennenabled
den Werttrue
hat) -
STATE_SYSTEM_FOCUSED
(wennenabled
den Werttrue
hat und das DataGrid den Fokus hat) -
STATE_SYSTEM_MULTISELECTABLE
(wennallowMultipleSelection
den Wert „true“ hat)
Der Status einer Datenzeile oder -zelle ist eine Kombination aus:
-
STATE_SYSTEM_FOCUSABLE
-
STATE_SYSTEM_FOCUSED
(wenn im Fokus) -
STATE_SYSTEM_OFFSCREEN
(wenn die Zeile oder Zelle aus dem Bildschirm gescrollt ist) -
STATE_SYSTEM_SELECTABLE
-
STATE_SYSTEM_SELECTED
(wenn ausgewählt)
Der Status einer Kopfzelle ist STATE_SYSTEM_NORMAL
, da Kopfzellen möglicherweise keinen Fokus erhalten oder ausgewählt werden. Derzeit implementierte Kopfzellen melden möglicherweise das STATE_SYSTEM_OFFSCREEN
-Ereignis nicht, selbst wenn das Raster selbst so bewegt wird, dass sich seine Überschriften außerhalb des Bildschirms befinden.
Wenn der Status des DataGrid oder eines seiner Elemente geändert wird, löst ein DataGrid das MSAA-Ereignis EVENT_OBJECT_STATECHANGE
aus – mit der richtigen childID für die Zeile oder Zelle oder 0 für es selbst.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Wert
DataGrids und ihre untergeordneten Elemente (Zeilen, Zellen und Überschriften) haben keine MSAA-Werte.
Speicherort
Die MSAA-Position eines DataGrid oder einer darin enthaltenen Zeile, Datenzelle oder Kopfzelle ist sein/ihr Begrenzungsrechteck. Die Position eines Elements, das derzeit nicht auf dem Bildschirm angezeigt wird, ist nicht festgelegt.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Standardaktion
Ein DataGrid hat keine MSAA-DefaultAction. Die MSAA-DefaultAction für eine Zeile oder Zelle ist „Double Click“ und für eine Kopfzeile „Click“ und der entsprechende lokalisierte String wird zurückgegeben, wenn der String für die Standardaktion aufgerufen wird.
Bei der Durchführung der Standardaktion auf einer Datenzeile oder -zelle erhält diese den Fokus und wird ausgewählt und kann anderes Verhalten in Abhängigkeit von Zellen-/Zeilentyp verursachen. Bei der Durchführung der Standardaktion in einer Überschrift wird das Raster nach dieser Spalte sortiert. Wiederholte Standardaktionen in der Überschrift zeigen die Sortierreihenfolge abwechselnd aufsteigend oder absteigend an. Zum Zeitpunkt des Verfassens ist es unmöglich, über die AccImpl eine Sortierung auf mehreren Ebenen in verschiedenen Spalten gleichzeitig anzuordnen.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Fokus
Wenn es kein bestimmtes Element (Zeile oder Zelle, abhängig vom Auswahlmodus) im Fokus mit dem Raster gibt, gibt der Fokus 0 zurück und zeigt an, dass das Raster selbst den Fokus besitzt. Das sollte nur passieren, wenn das Raster keine Daten enthält.
Wenn eine Zeile (Zeilenauswahlmodus) oder Zelle (Zellenauswahlmodus) den Fokus besitzt, gibt der Fokus die childID des Elements, das gerade den Fokus besitzt, zurück.
Wenn ein DataGrid Fokus erhält, löst das MSAA-Ereignis EVENT_OBJECT_FOCUS
aus. Das Ereignis wird auch ausgelöst, wenn der Fokus zwischen Zeilen und Zellen im Raster verschoben wird.
Ein Fokusänderungsereignis wird für den Elementeditor ausgelöst, wenn er startet/erscheint. Ein Fokusänderungsereignis wird auf dem DataGrid ausgelöst, wenn der Elementeditor gespeichert oder geschlossen wird.
Auswahl
In einem DataGrid können entweder eine einzelne Zeile oder Zelle oder mehrere Zeilen oder Zellen, abhängig von der allowMultipleSelection
-Eigenschaft, ausgewählt werden. Auswahl gibt ein Array der Ganzzahl der childIDs der ausgewählten Elemente zurück.
Wenn ein Element exklusiv ausgewählt ist, löst es das MSAA-Ereignis EVENT_OBJECT_SELECTION
aus. Wenn eine Zelle (Zellenauswahlmodus) oder Zeile (Zeilenauswahlmodus) zur aktuellen Auswahlgruppe hinzugefügt wird, lautet das ausgelöste Ereignis EVENT_OBJECT_SELECTIONADD
. Wenn ein Element (Zelle oder Zeile) aus der Auswahl entfernt wird, lautet das ausgelöste Ereignis entsprechend EVENT_OBJECT_SELECTIONREMOVE
. Wenn jede Auswahl gelöscht wird (egal wie viele Elemente ausgewählt wurden) oder eine select-all- oder select-region-Aktion durchgeführt wird, lautet das ausgelöste Ereignis EVENT_OBJECT_SELECTIONWITHIN
. Jeder Auswahlvorgang, der nicht einer der oben aufgelisteten Auswahl entspricht, löst EVENT_OBJECT_SELECTION
aus.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Auswählen
Die accSelect
-Methode implementiert über MSAA gestellte Anfragen für Änderungen der Auswahl und/oder des Fokus im DataGrid. Die AccImpl für das DataGrid unterstützt das Festlegen des Fokus auf ein DataGrid selbst oder auf ein Datenelement oder auf eine Gruppe von Elementen (Zeile oder Zelle, abhängig vom Auswahlmodus) darin. Unterstützte Aktionen umfassen das Festlegen des Fokus, die exklusive Auswahl eines Elements und das Hinzufügen und Entfernen eines Elements oder einer Gruppe von Elementen aus der Auswahl, wie in der Microsoft Active Accessibility-Spezifikation definiert. Bei diesem Schreibvorgang kann die Verwendung von accSelect
zur Erweiterung eines bereits ausgewählten mehrzelligen Bereichs im Mehrfachzellen-Auswahlmodus, um weitere Zeilen und Spalten gleichzeitig einschließen zu können, andere Ergebnisse erzielen als wenn dieselbe Aktion mit einer Maus durchgeführt wird.
Diese Eigenschaft wird nicht von der DataGrid Accessibility-Implementierung für Elementeditoren verarbeitet, da sich Elementeditoren selbst verwalten.
Methode | Definiert von | ||
---|---|---|---|
DataGridAccImpl(master:UIComponent)
Konstruktor. | DataGridAccImpl | ||
Eine IAccessible-Methode, die die Aktion ausführt, die standardmäßig mit der Komponente verknüpft ist, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
MSAA-Methode zur Rückgabe eines DisplayObject oder eines Rechtecks. Gibt den Begrenzungsrahmen des untergeordneten Elements in der AccessibilityImplementation an. | AccessibilityImplementation | ||
IAccessible-Methode zum Ändern der Auswahl in der Komponente, die diese AccessibilityImplementation darstellt. | AccessibilityImplementation | ||
[statisch]
Aktiviert Barrierefreiheit (Accessibility) in der DataGrid-Klasse. | DataGridAccImpl | ||
MSAA-Methode zur Rückgabe der Aktion, die standardmäßig mit der Komponente verknüpft ist, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
MSAA-Methode für die Rückgabe der ID des untergeordneten Elements als vorzeichenlose Ganzzahl, sofern ein solches untergeordnetes Element mit entsprechendem Fokus innerhalb der Komponente vorhanden ist. | AccessibilityImplementation | ||
MSAA-Methode zur Rückgabe des Namens der Komponente, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
MSAA-Methode zur Rückgabe der Systemrolle der Komponente, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
MSAA-Methode zur Rückgabe eines Arrays, das die IDs aller ausgewählten untergeordneten Elemente enthält. | AccessibilityImplementation | ||
IAccessible-Methode zur Rückgabe des aktuellen Laufzeitstatus der Komponente, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
MSAA-Methode zur Rückgabe des Laufzeitwerts der Komponente, die diese accessibilityImplementation darstellt, oder eines ihrer untergeordneten Elemente. | AccessibilityImplementation | ||
AccessibilityImplementation | |||
AccessibilityImplementation | |||
Gibt ein Array zurück, das die IDs aller untergeordneten Elemente der AccessibilityImplementation als vorzeichenlose Ganzzahl enthält. | AccessibilityImplementation | ||
[statisch]
Methode, mit der die Barrierefreiheit von Formularen unterstützt wird. | AccImpl | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
[statisch]
Gibt „true“ zurück, wenn bei einem Vorgänger der Komponente der aktive Status den Wert „false“ hat. | AccImpl | ||
Gibt „true“ oder „false“ zurück, um anzugeben, ob ein Textobjekt, das durch „x“, „y“, „width“ und „height“ festgelegt ist, als Beschriftung für die durch diese AccessibilityImplementation repräsentierte Komponente betrachtet werden soll. | AccessibilityImplementation | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
DataGridAccImpl | () | Konstruktor |
public function DataGridAccImpl(master:UIComponent)
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Konstruktor.
Parametermaster:UIComponent — Die UIComponent-Instanz, die durch diese AccImpl-Instanz barrierefrei gemacht wird.
|
enableAccessibility | () | Methode |
public static function enableAccessibility():void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Aktiviert Barrierefreiheit (Accessibility) in der DataGrid-Klasse.
Diese Methode wird durch Anwendungsstartcode aufgerufen, der vom MXML-Compiler automatisch generiert wird. Wenn anschließend DataGrid-Instanzen initialisiert werden, wird deren accessibilityImplementation
-Eigenschaft auf eine Instanz dieser Klasse gesetzt.
Tue Jun 12 2018, 10:04 AM Z