Adobe Flash Professional Version MX und höher
Adobe Flex
Die Technik bezieht sich auf:
Siehe User Agent Support for Flash für allgemeine Informationen zur Unterstützung durch Benutzeragenten.
Das Ziel dieser Technik ist es, einen barrierefreien Namen für die eingebauten Formular-Komponenten, die von Flash bereitgestellt werden, zur Verfügung zu stellen. Einige Komponenten, wie zum Beispiel Optionsschaltflächen, Kontrollkästchen und Schaltflächen haben ihre eigene 'label'--Eigenschaft. Bei anderen Komponenten muss der Entwickler den Label-Text der Komponente als barrierefreien Namen festlegen. Dies kann man entweder durch das Bedienfeld Eingabehilfen (bei Komponenten, die während des Erstellens auf der Bühne platziert werden) oder durch Scripting (bei Komponenten, die während der Laufzeit dynamisch erstellt werden) erreichen.
ActionScript 2
In ActionScript 2 muss der barrierefreie Name auf der _accProps
-Eigenschaft der Komponente festgelegt werden. Diese Eigenschaft muss ein Objekt sein. Wenn eine Eigenschaft noch nicht festgelegt wurde, muss der Entwickler ein individuelles Objekt erstellen und es der _accProps
-Eigenschaft zuweisen. Das Objekt selber kann mehrere auf die Barrierefreiheit bezogene Eigenschaften haben, von denen eine _accProps.name
ist, die den barrierefreien Namen näher bestimmt. Wenn eine _accProps
-Eigenschaft aktualisiert wird, muss der Entwickler Accessibility.UpdateProperties()
aufrufen, damit die Änderungen in Kraft treten. Er wird empfohlen, vor dem Aufrufen von Accessibility.UpdateProperties()
die System.capabilities.hasAccessibility-Flag zu prüfen. Damit werden Fehler in Umgebungen verhindert, die MSAA nicht unterstützen.
ActionScript 2 stellt die folgenden barrierefreien Komponenten zur Verfügung:
SimpleButton
CheckBox
RadioButton
Label
TextInput
TextArea
ComboBox
ListBox
Window
Alert
DataGrid
ActionScript 3
In ActionScript 3 muss der barrierefreie Name auf der accessibilityProperties
-Eigenschaft der Komponente festgelegt werden. Diese Eigenschaft muss eine Instanz von flash.accessibility.AccessibilityProperties
sein. Wenn eine Eigenschaft noch nicht festgelegt wurde, muss der Entwickler eine neue AccessibilityProperties
-Instanz erstellen und es der accessibilityProperties
-Eigenschaft zuweisen. Das Objekt selber kann mehrere auf die Barrierefreiheit bezogene Eigenschaften haben, von denen eine accessibilityProperties.name
ist, die den barrierefreien Namen näher bestimmt.. Wenn eine accessibilityProperties
-Eigenschaft aktualisiert wird, muss der Entwickler flash.accessibility.Accessibility.UpdateProperties()
aufrufen, damit die Änderungen in Kraft treten. Es wird empfohlen, vor dem Aufruf von Accessibility.UpdateProperties()
die flash.system.capabilities.hasAccessibility-Flag zu prüfen. Damit werden Fehler in Umgebungen verhindert, die MSAA nicht unterstützen.
ActionScript 3 stellt die folgenden barrierefreien Komponenten zur Verfügung:
Button
CheckBox
ComboBox
List
RadioButton
TileList
Folgen Sie diesen Schritten, um ein Komponenten-Steuerelement hinzuzufügen und zu beschriften:
Ziehen Sie die Komponente aus dem Bedienfeld ‚Komponenten‘ auf die Bühne oder benutzen Sie Scripting, um eine neue Instanz zu erstellen.
Geben Sie, wenn die neu erstellte Komponenten-Instanz ausgewählt ist, dessen Beschriftungstext (label text) im Feld Name des Bedienfelds Eingabehilfen ein.
Das unten stehende Code-Beispiel zeigt, wie eine ListBox-Komponene erstellt wird und wie ihr ein barrierefreier Name zugewiesen wird.
Code-Beispiel:
mx.accessibility.ListAccImpl.enableAccessibility();
this.createClassObject(mx.controls.List, "my_list", 1);
my_list.addItem({label: "R. Davis", data: 1});
my_list.addItem({label: "V. Mann", data: 2});
my_list.addItem({label: "L. Heart", data: 3});
my_list.addItem({label: "P. Hill", data: dt4});
my_list.addItem({label: "D. Gribble", data: 5});
my_list.move(10, 10);
if (System.capabilities.hasAccessibility) {
my_list._accProps = new Object();
my_list._accProps.name = "Staff Members";
Accessibility.updateProperties();
}
Das Ergebnis kann man in der funktionierenden Version von „Setting the accessible name through ActionScript 2.0“ (Festlegen des barrierefreien Namens durch ActionScript 2.0) sehen. Die Quelle von „Festlegen des barrierefreien Namens durch ActionScript 2.0“ steht zur Verfügung.
Das unten stehende Code-Beispiel zeigt, wie eine ListBox-Komponene erstellt wird und wie ihr ein barrierefreier Name zugewiesen wird.
Code-Beispiel:
import fl.controls.List;
import fl.accessibility.ListAccImpl;
import flash.system.Capabilities;
import flash.accessibility.*;
ListAccImpl.enableAccessibility();
var my_list:List = new List();
my_list.addItem({label:"R. Davis", data:1});
my_list.addItem({label:"V. Mann", data:2});
my_list.addItem({label:"L. Heart", data:3});
my_list.addItem({label:"P. Hill", data:4});
my_list.addItem({label:"D. Gribble", data:5});
my_list.x = my_list.y = 10;
if (Capabilities.hasAccessibility) {
var accProps:AccessibilityProperties = new AccessibilityProperties();
accProps.name = "Staff Members";
my_list.accessibilityProperties = accProps;
Accessibility.updateProperties();
}
addChild(my_list);
Das Ergebnis kann man in der funktionierenden Version von „Setting the accessible name through ActionScript 3.0“ (Festlegen des barrierefreien Namens durch ActionScript 3.0) sehen. Die Quelle von „Festlegen des barrierefreien Namens durch ActionScript 3.0“ steht zur Verfügung.
Bestätigen Sie bei Flash-Filmen, die Formular-Komponenten enthalten, dass entweder:
Der Text der Beschriftung der ausgewählten Komponente im Feld „Name“ des Bedienfelds Eingabehilfen festgelegt wurde.
In ActionScript 2.0: Scripting wird benutzt, um die _accProps.name
-Eigenschaft der Komponente dynamisch festzulegen
In ActionScript 3.0: Scripting wird benutzt, um die accessibilityProperties.name
-Eigenschaft der Komponente festzulegen
Eines der oben genannten ist wahr
Wenn dies eine ausreichende Technik für ein Erfolgskriterium ist, dann bedeutet das Scheitern an diesem Testverfahren nicht zwangsläufig, dass das Erfolgskriterium nicht auf irgendeine andere Art und Weise erfüllt wurde, sondern nur, diese Technik nicht erfolgreich implementiert wurde und nicht benutzt werden kann, um die Konformität zu erklären.