Techniken für WCAG 2.0

Zum Inhalt

-

SCR30: Benutzung von Scripts, um den Linktext zu ändern

Anwendbarkeit

Client-seitiges Scripting, das mit HTML und XHTML zusammen benutzt wird

Die Technik bezieht sich auf:

Beschreibung

Der Zweck dieser Technik ist es, Benutzern zu erlauben zu entscheiden, ob zusätzliche Information zum dem Linktext hinzugefügt werden sollen, so dass die Links auch außerhalb des Kontextes verständlich sind.

Einige Benutzer ziehen es vor, Links zu haben, die autark sind und wo es nicht nötig ist, den Kontext des Links zu erkunden. Andere Benutzer finden, dass das Aufnehmen der Kontextinformationen in jeden Link eine ständige Wiederholung ist und dass es ihre Fähigkeit, eine Site zu benutzen, verringert. Die Benutzer von assistierenden Techniken waren bei ihren Rückmeldungen an die Arbeitsgruppe dazu, was vorzuziehen ist, geteilter Meinung. Diese Technik erlaubt es Benutzern, die Methode zu nehmen, die für sie am besten funktioniert.

Es gibt einen Link nahe am Beginn der Seite, der den Linktext der Links auf der Seite erweitert, so dass kein zusätzlicher Kontext notwendig ist, um den Zweck eines jeden Links zu verstehen. Es muss immer möglich sein, den Zweck des Links zur Erweiterung direkt durch dessen Linktext zu verstehen.

Diese Technik erweitert die Links nur auf der aktuellen Seitenansicht. Es ist auch möglich und wäre in manchen Fällen ratsam, diese Einstellung in einem Cookie oder einem server-seitigen Benutzerprofil zu speichern, so dass Benutzer diese Auswahl nur einmal pro Site treffen müssten.

Beispiele

Beispiel 1

Dieses Beispiel benutzt Javascript, um Kontextinformationen direkt zu dem Text eines Links hinzuzufügen. Die Link-Klasse wird benutzt um festzulegen, welcher zusätzlicher Text hinzugefügt werden soll. Wenn der Link „Links erweitern“ („Expand Links“) aktiviert wird, wird jeder Link auf der Seite getestet um zu sehen, ob zusätzlicher Text hinzugefügt werden sollte.

Code-Beispiel:

			...
<script type="text/javascript">
var expanded = false;
var linkContext = {
	"hist":" version of The History of the Web",
	"cook":" version of Cooking for Nerds"
};

function doExpand() {
	var links = document.links;
	
	for each (link in links) {
		var cn = link.className;
		if (linkContext[cn]) {
			span = link.appendChild(document.createElement("span"));
			span.setAttribute("class", "linkexpansion");
			span.appendChild(document.createTextNode(linkContext[cn]));
		}
	}
	objUpdate = document.getElementById('expand');
	if (objUpdate)
	{
		objUpdate.childNodes[0].nodeValue = "Collapse links";
	}
	expanded = true;
}

function doCollapse() {
	objUpdate = document.getElementById('expand');
	var spans = document.getElementsByTagName("span");
	var span;

	// go backwards through the set as removing from the front changes indices
	// and messes up the process
	for (i = spans.length - 1; i >= 0; i--) {
		span = spans[i];
		if (span.getAttribute("class") == "linkexpansion")
			span.parentNode.removeChild(span);
	}
	if (objUpdate)
	{
		objUpdate.childNodes[0].nodeValue = "Expand links";
	}
	expanded = false;
}

function toggle() {
	if (expanded) doCollapse();
	else doExpand();
}
</script>

...

<h1>Books for download</h1>
<p><button id="expand" onclick="toggle();">Expand Links</button></p>
<ul>
	<li>The History of the Web: <a href="history.docx" class="hist">Word</a>, <a href="history.pdf" class="hist">PDF</a>, <a href="history.html" class="hist">HTML</a> </li>

	<li>Cooking for Nerds: <a href="history.docx" class="cook">Word</a>, <a href="history.pdf" class="cook">PDF</a>, <a href="history.html" class="cook">HTML</a> </li>
</ul>

...

Tests

Vorgehensweise

  1. Prüfen Sie, ob es nahe dem Beginn der Seite einen Link zur Erweiterung von Links gibt

  2. Prüfen Sie, ob der in Schritt 1 ermittelte Link durch den Linktext alleine identifiziert werden kann

  3. Finden Sie alle Links auf der Seite, die nicht vom Linktext alleine identifiziert werden können

  4. Aktivieren Sie das in Schritt 1 ermittelte Steuerelement

  5. Prüfen Sie, ob der Zweck der in Schritt 3 identifizierten Links nun aus dem Linktext alleine bestimmt werden kann

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.