Techniken für WCAG 2.0

Zum Inhalt

-

FLASH25: Beschriftung eines Formular-Steuerelementes durch Festlegung seines barrierefreien Namens

Anwendbarkeit

  • Adobe Flash Professional Version MX und höher

  • Adobe Flex

Die Technik bezieht sich auf:

Anmerkungen zur Unterstützung durch Benutzeragenten und assistierende Techniken

Siehe User Agent Support for Flash für allgemeine Informationen zur Unterstützung durch Benutzeragenten.

Beschreibung

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:

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.nameist, 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:

Beispiele

Beispiel 1: Festlegen des barrierefreien Namens einer Komponente, indem das Bedienfeld Eingabehilfen benutzt wird.

Folgen Sie diesen Schritten, um ein Komponenten-Steuerelement hinzuzufügen und zu beschriften:

  1. Ziehen Sie die Komponente aus dem Bedienfeld ‚Komponenten‘ auf die Bühne oder benutzen Sie Scripting, um eine neue Instanz zu erstellen.

  2. Geben Sie, wenn die neu erstellte Komponenten-Instanz ausgewählt ist, dessen Beschriftungstext (label text) im Feld Name des Bedienfelds Eingabehilfen ein.

Beispiel 2: Festlegen des barrierefreien Namens durch ActionScript 2.0

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();
}

Beispiel 2: Festlegen des barrierefreien Namens durch ActionScript 3.0

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);

Tests

Vorgehensweise

Bestätigen Sie bei Flash-Filmen, die Formular-Komponenten enthalten, dass entweder:

  1. Der Text der Beschriftung der ausgewählten Komponente im Feld „Name“ des Bedienfelds Eingabehilfen festgelegt wurde.

  2. In ActionScript 2.0: Scripting wird benutzt, um die _accProps.name-Eigenschaft der Komponente dynamisch festzulegen

  3. In ActionScript 3.0: Scripting wird benutzt, um die accessibilityProperties.name-Eigenschaft der Komponente festzulegen

Erwartete Ergebnisse

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.