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, Benutzereingaben anhand von client-seitigem Scripting zu validieren, während die Werte für jedes Feld eingegeben werden. Wenn Fehler gefunden werden, dann wird zu den Steuerelementen, die ungültige Daten enthalten, eine Beschreibung hinzugefügt. Visuell wird die Beschreibung neben dem Steuerelement platziert. Darüber hinaus wird der Text mit der Fehlermeldung zur barrierefreien Beschreibung des Steuerelementes hinzugefügt, so dass er von assistierenden Techniken gelesen werden kann, wenn das Steuerelement den Fokus erhält.
In diesem Beispiel wird ein Beispielformular mit zwei Textfeldern ('name' - Name - und 'zip code' - Postleitzahl- ) gezeigt . Beide Felder sind Pflichtfelder. Wenn die Absenden-Schaltlfäche des Formulars gedrückt wird, dann werden die Werte der Textfelder validiert. Wenn ein Textfeld einen ungültigen Wert enthält, dann wird ein _accProps
-Objekt für das Textfeld erstellt und sein description
-Property wird auf die Fehlermeldung gesetzt.
Anmerkung: Statt die barrierefreie Beschreibung (accessible description) zu benutzen, kann der Fehlertext auch zu dem barrierefreien Namen (_accProps.name
) hinzugefügt werden, der von einer größeren Anzahl an assistierenden Techniken unterstützt wird als das _accProps.description
-Property.
ActionScript 2.0 Code
Code-Beispiel:
import flash.accessibility. *;
import mx.accessibilty.ButtonAccImpl;
import mx.controls.Alert;
import mx.accessibility.AlertAccImpl;
AlertAccImpl.enableAccessibility();
ButtonAccImpl.enableAccessibility;
resetTextFieldAccNames();
Accessibility.updateProperties();
submit_btn.addEventListener("click", handleClick);
function handleClick(e) {
//reset values
resetTextFieldAccNames();
resetTextFieldAccDescriptions();
resetErrorLabels();
//perform validation
var errors =[];
if (name_txt.text == '')
errors.push([name_txt, "You must enter your name", name_error_lbl]);
if (zipcode_txt.text == '')
errors.push([zipcode_txt, "You must enter your zip code", zipcode_error_lbl]);
else if (zipcode_txt.text.length != 5 || isNaN(zipcode_txt.text))
errors.push([zipcode_txt, "Zip code must be 5 digits", zipcode_error_lbl]);
//add validation error messages, if any
var field, errorMsg, errorLabel;
if (errors.length > 0) {
//loop over encountered errors
for (var i = 0; i < errors.length; i++) {
field = errors[i][0];
errorMsg = errors[i][1];
errorLabel = errors[i][2];
updateAccDescription(field, "Warning: " + errorMsg);
errorLabel.text = errorMsg;
}
} else {
Alert.show("Form field values were entered correctly");
}
Accessibility.updateProperties();
}
function updateAccName(obj, newName: String) {
if (! obj._accProps)
obj._accProps = new Object();
obj._accProps.name = newName;
}
function updateAccDescription(obj, newDescription: String) {
if (! obj._accProps)
obj._accProps = new Object();
obj._accProps.description = newDescription;
}
function getAccName(obj) {
return obj._accProps? obj._accProps.name: "";
}
function resetTextFieldAccNames() {
updateAccName(name_txt, "name, required");
updateAccName(zipcode_txt, "zip code, required");
}
function resetTextFieldAccDescriptions() {
updateAccDescription(name_txt, "");
updateAccDesciption(zipcode_txt, "");
}
function resetErrorLabels() {
name_error_lbl.text = "";
zipcode_error_lbl.text = "";
}
Diese Vorgehensweise wird in der funktionierenden Version von „Validating a text field“ (Validierung eines Textfeldes) gezeigt. Die Quelle für „Validierung eines Textfeldes“ steht zur Verfügung.
Wenn ein Flash-Film interaktive Formulare bietet, die abgesendet werden können, bestätigen Sie, dass:
Die Validierungs-Warnungen visuell neben dem Steuerelement platziert werden.
Die Validierungs-Warnungen zum barrierefreien Namen oder der Beschreibung jedes Steuerelementes hinzugefügt werden.
#1 und #2 sind 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.