Accesskeys in Joomla 1.7
Das Thema Barrierefreiheit hat mich im Zusammenhang mit Joomla! schon immer geärgert. Unter Joomla 1.0.x gab es eine nette Erweiterung, die ein Menu um "Accesskeys" erweiterte. Man sollte nun denken, dass dies in der aktuellen Joomla! Version integriert wurde. Leider ist dem nicht so.
Also suchte ich nach einer Funktionierenden Lösung und bin tatsächlich fündig geworden. Diese Lösung möchte ich hier aufnehmen und jedem zugänglich machen.
Zum leid aller, muß ich gestehen, dass es sich um einen Eingriff in bestehende Core-Dateien handelt. Was bedeutet, dass diese Änderungen mit einem Update verschwunden sein könnten. Zudem muß man mit Copy und Past - also das "kopieren" und "einfügen" umgehen können. Ich werde versuchen, hier enifach uz erklären, wie dieser Core-Hack nun funktioniert.
Nun also zu den Änderungen.
Als erstes benötigen wir ein neues Feld in der Menuverwaltung. Dazu öffnen wir die Datei: item_component.xml
Diese befindet sich hier: administrator/components/com_menus/models/forms/item_component.xml
Circa in der Zeile 30 fügen wir noch vor dem "</fildset> folgendes ein:
<field name = "menu_accesskey" type = "text"
label = "COM_MENUS_ITEM_FIELD_MENU_ACCESSKEY_LABEL"
description = "COM_MENUS_ITEM_FIELD_MENU_ACCESSKEY_DESC"
size = "1" default = "" />
Jezt speichern wir diese Datei aber noch nicht schliessen, da wir prüfen wollen, ob alles geklappt hat. Sollte es nicht funktionieren, so können wir die jeweiligen Eingriffe rückgängig machen.
Öffnen Sie nun folgende Datei: de-DE.override.ini
Diese befindet sich hier: administrator/language/overrides/de-DE.override.ini
Seien Sie nicht verwundert, wenn Sie diese Datei nicht haben sollten. Legen Sie diese einfach an.
Schreiben Sie nun folgendes in die Datei:
COM_MENUS_ITEM_FIELD_MENU_ACCESSKEY_LABEL="Accesskey"
COM_MENUS_ITEM_FIELD_MENU_ACCESSKEY_DESC="Geben Sie den Buchstaben ein, der als Accesskey dienen soll"
Hier nun ein kleines Bild, wie das ganze bis jetzt im Administrator - Menueinstrag, aussehen sollte:
Den ersten Abschnitt haben wir also geschaft. Nun noch zwei Schritte und wir sind der Barrierefreiheit ein wenig näher gekommen.
Öffnen Sie nun folgende Datei: helper.php
Diese befindet sich hier: root/modules/mod_menu/helper.php
Wir gehen nun in die Zeile 117 und fügen folgendes nach dem hier $item->title = htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8', false); ein:
$item->accesskey = htmlspecialchars ($item-> params->get('menu_accesskey',''), ENT_COMPAT, 'UTF-8', false));
Als letzten Schritt öffnen wir die folgende Datei: default_component.php
Diese befindet sich hier: root/modules/mod_menu/tmpl/default_component.php
Wir suchen in der Zeile 27 den ersten Block. Der sollte so aussehen:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
Diesen Code überschreiben wir mit diesen hier:
?><a <?php
if ( $item->accesskey == '' ) {
echo "$class";
} else {
echo "accesskey=\"$item->accesskey\" $class";
}
?>href ="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype;?></a><?php
break;
Nun brauchen wir unsere Arbeiten nur noch zu speichern - bitte noch nicht schliessen, da wir die Funktion nun prüfen wollen.
Wundern Sie sich aber nicht, wenn Sie auf einmal nicht mehr diesen Artikel lesen, den der Test wird Sie auf eine Andere Seite bringen.
Den Test können Sie hier direkt auf diesen Seiten machen. Verwenden Sie dafür einfach folgende Tastenkombination:
für Firefox: Umschalt + ALT + den ersten Buchstaben des Menupunktes ( Beispiel: Umschalt + ALT + S)
für Opera: Umschalt + ESC + den ersten Buchstaben des Menupunktes ( Beispiel: Umschalt + ALT + S)
für IE: ALT + den ersten Buchstaben des Menupunktes ( Beispiel: ALT + S) + ENTER
und für Chrome: ALT + den ersten Buchstaben des Menupunktes ( Beispiel: Umschalt + ALT + S)
Ein dank ergeht für die kleine Anleitung an "O3D" aus dem Supportforum auf joomla.org.
HINWEIS: FUNKTIONIERT NICHT MIT JOOMLA 2.5.x