Techniken für WCAG 2.0

Zum Inhalt

-

SVR3: Benutzung eines HTTP Referer, um sicherzustellen, dass der einzige Weg, um auf nicht-konformen Inhalt zuzugreifen, von konformem Inhalt aus ist

Anwendbarkeit

Inhalt, der erstellt wurde, indem server-seitiges Scripting benutzt wurde, wo eine konforme Version des Inhalts als Alternative zu einer nicht-konformen Version bereitgestellt wird basierend auf HTTP Referer.

Die Technik bezieht sich auf:

Anmerkungen zur Unterstützung durch Benutzeragenten und assistierende Techniken

Da einige Benutzeragenten den HTTP referer header nicht unterstützen, so konfiguriert werden können, dass sie keinen senden oder hinter einem Proxy oder einer Firewall sind, die diesen streichen, ist es möglich, dass einige Benutzer nicht in der Lage sind, auf den nicht-konformen Inhalt zuzugreifen, wenn diese Technik implementiert wird.

Beschreibung

Das Ziel dieser Technik ist es sicherzustellen, dass Benutzer eine barrierefreie Version des Inhalts abrufen können in Fällen, in denen sowohl nicht-konforme als auch konforme Versionen bereitgestellt werden.

Konformitätsbedingung 1 erlaubt es, dass nicht-konforme Seiten im Rahmen der Konformität ausgenommen werden können, so lange sie eine „konforme Alternativversion“ haben. Es ist Autoren nicht immer möglich, die Barrierefreiheit unterstützende Links zu konformen Inhalten von innerhalb der nicht-konformen Inhalte einzufügen. Daher kann es sein, dass Autoren auf die Benutzung server-seitiger Scripting-Techniken angewiesen sind (z.B. PHP, ASP, JSP) um sicherzustellen, dass die nicht-konforme Version nur von einer konformen Seite aus erreicht werden kann.

Diese Technik beschreibt, wie man Informationen, die durch den HTTP referer bereitgestellt werden, benutzt um sicherzustellen, dass nicht-konforme Inhalte nur von einer konformen Seite aus erreicht werden können. Der HTTP referer header wird von dem Benutzeragenten gesetzt und enthält den URI der Seite (falls vorhanden), die den Benutzeragenten zu der nicht-konformen Seite verwiesen hat.

Um diese Technik zu implementieren identifiziert ein Autor für jede nicht-konforme Seite den URI für die konforme Version des Inhalts. Wenn eine Anfrage für eine nicht-konforme Version einer Seite erhalten wird, vergleicht der Server den Wert der HTTP referer header mit dem URI der konformen Version um zu bestimmen, ob der Link zu der nicht-konformen Seite von einer konformen Version kam. Die nicht-konforme Version wird nur ausgeliefert, wenn der HTTP referer dem URI der nicht-konformen Version entspricht. Andernfalls wird der Benutzer zu der konformen Version des Inhalts umgeleitet. Beachten Sie, dass, wenn Sie den URI im HTTP referer header vergleichen, nicht-relevante Abweichungen im URI, wie beispielsweise im query und target, berücksichtigt werden sollten.

Beispiele

Beispiel 1: Interaktive Demonstrationen physikalischer Prozesse

Ein Online-Physikkurs benutzt eine proprietäre Modellierungssprache, um interaktive Demonstrationen physikalischer Prozesse bereitzustellen. Der Benutzeragent für die Modellierungssprache ist nicht kompatibel mit assistierenden Techniken. Die Site beinhaltet ein Script, das den HTTP referer benutzt um sicherzustellen, dass der Server die Anfrage zu einer konformen Seite, die einen Link zu der nicht-konformen Version enthält, umleitet, außer wenn Benutzer versuchen, auf die interaktive Demonstration von einer Seite aus zuzugreifen, die eine konforme Beschreibung des Prozesses und des Models enthält. Es kann sein, dass sich die Studenten dazu entschließen, auf die nicht-konforme, interaktive Version zuzugreifen, aber diejenigen, die dies nicht tun, sind trotzdem dazu in der Lage, etwas über den Prozess zu lernen.

Beispiel 2: Benutzung von Http referer in PHP

Das folgende Beispiel veranschaulicht, wie diese Technik in PHP benutzt werden kann. Es enthält zwei Dateien, conforming.php und non-conforming.php, die zusammen arbeiten um sicherzustellen, dass der einzige Weg, um auf nicht-konformen Inhalt zuzugreifen, von konformem Inhalt aus ist.

conforming.php:

Code-Beispiel:

			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<title>Conforming Content</title>
    	</head>
	<body>
		<h1>This is a conforming page</h1>
		<p>From here, you can visit the <a href="non-conforming.php">non-conforming 
		page</a>. </p>
	</body>
</html>
    

non-conforming.php:

Code-Beispiel:

			<?php 
// if the request comes from a file that contains the string "conforming.php" then render the page
	if(stristr($_SERVER['HTTP_REFERER'], "conforming.php")) {
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Non-Conforming Content</title>
	</head>
	<body>
		<h1>This is a non-conforming page</h1>
		<p>Because you came from <?php echo $_SERVER['HTTP_REFERER']; ?>, you are 
			able to view the content on this page. </p>
	</body>
</html>
<?php
}
// if the referring page is not conforming.php, then redirect the user to the conforming version
else  {
header("Location: conforming.php");
}
?>					
    

Tests

Vorgehensweise

Wo WCAG-konforme Alternativen für nicht-konforme Inhalte bereitgestellt werden:

  1. Identifizieren Sie Seiten, die nicht auf der angegebenen Konformitätsstufe WCAG-konform sind und wo barrierefreie Alternativen basierend auf HTTP Referrer geliefert werden.

  2. Besuchen Sie den URI des nicht-konformen Inhalts.

  3. Verifizieren Sie, dass die daraus resultierende Seite eine der folgenden ist:

    1. eine konforme Alternativversion für den nicht-konformen Inhalt

    2. eine Seite, die sowohl einen Link zu der konformen Alternativversion als auch zu dem nicht-konformen Inhalt enthält

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.