Techniken für WCAG 2.0

Zum Inhalt

-

FLASH12: Bereitstellung einer client-seitigen Gültigkeitsprüfung und Hinzufügen von Fehlertext über die barrierefreie Beschreibung (Beschreibung im Panel Eingabehilfen)

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

Beispiele

Beispiel 1: Validierung eines Textfeldes

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 = "";
}

Tests

Vorgehensweise

Wenn ein Flash-Film interaktive Formulare bietet, die abgesendet werden können, bestätigen Sie, dass:

  1. Die Validierungs-Warnungen visuell neben dem Steuerelement platziert werden.

  2. Die Validierungs-Warnungen zum barrierefreien Namen oder der Beschreibung jedes Steuerelementes hinzugefügt werden.

Erwartete Ergebnisse

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.