[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Barrierefreiheit: Abkürzungen
Seite 1 von 1

Barrierefreiheit: Abkürzungen

Verfasst: 3. Feb 2005, 10:00
von Markus.Staab
Hallo zusammen,

aufgrund das ich ein paar Seiten barrierefrei gestalten muss, bin ich auf der suche, etwas wie einen outputfilter o.ä. zu definieren der bestimmte Wörter wie z.b.

"z.B."
durch
<abbr class="shorthandle" title="zum Beispiel">z.B.</abbr>

ersetzen kann.

Diese Liste von Wörtern würde ich natürlich gern selbst definieren.

Also so eine Liste Anahand eines AddOns in Redaxo einzubinden ist denk ich mal kein Problem, nur weiss ich nicht wo ich ansetzen könnte, diesen parser auf den Inhalt des textes loszulassen?

Vielleicht bei

Code: Alles auswählen

<?php echo $this->getArticle() ?>
mit

Code: Alles auswählen

<?php echo replace_shortcuts( $this->getArticle()) ?>

???


oder gibt es eure Meinung nach einen Punkt an dem es besser positionier wäre?

Danke und Gruß,
Markus

Verfasst: 14. Feb 2005, 16:46
von Markus.Staab
also ich hab jetzt mittlwerweile ein modul geschrieben, weiss aber noch nicht so recht wo ich mit meiner funktion ansetzen könnte.

Code: Alles auswählen

function glossar_replace( $string) {
    $sql = new sql;
    $sql->setQuery("select * from rex__glossar order by shortcut");
    
    for($i=0;$i<$sql->getRows();$i++)
    {
        $language = $sql->getValue("language");
        if ( $language == 0) {
            $language = $I18N_GLOSSAR->msg('lang_de_short');
        } elseif ( $language == 1) {
            $language = $I18N_GLOSSAR->msg('lang_en_short');
        } else {
            $language = $I18N_GLOSSAR->msg('lang_fr_short');
        }
        
        $id = $sql->getValue("short_id");
        $shortcut = htmlentities($sql->getValue("shortcut")); 
        $description = htmlentities($sql->getValue("description"));
        
        $casesense = $sql->getValue("casesense");
        
        $search = $shortcut;
        $replace = '<span title="'. $description .'" class="shortcut">'. $shortcut .'</span>'; 
        $subject = $string;
        
        if ( $casesense == 0) {
            $string = str_ireplace( $search, $replace, $subject);
        } else {
            $string = str_replace( $search, $replace, $subject);
        }
    }
    
    return $string;
}
Danke und Gruß,
Markus

Verfasst: 14. Feb 2005, 21:08
von vscope
<?php echo replace_shortcuts( $this->getArticle()) ?>

find ich ok wenns nicht probleme mit der performance macht.

caching einschalten.
dann ist es 0 problem.

sonst ist die nur die frage ob du es nur in den article texten brauchst oder
auch in den templates.

wenn in beiden ist obriges gut sonst würd ichs beim parsen
der article reinhängen class.article.inc.php glaub ich.

weiss aber nicht wieviel das im endeffekt an performance bringt,
kommt auf das template an ....

lg

vscope

PS: Performance ist mein Steckenpferd ;)

Verfasst: 15. Feb 2005, 16:28
von Markus.Staab
vscope hat geschrieben:<?php echo replace_shortcuts( $this->getArticle()) ?>
jo das hab ich eigentlich auch gedacht, aber das geht nicht, da $this->getArticle() alles direkt in den outputbuffer schreibt und nicht als String zurückgibt...

----------------------

Code: Alles auswählen

   <?php 
             ob_start();
             $this->getArticle();
             $c = ob_get_contents();
             ob_end_clean();
             echo glossar_replace( $c); 
           ?>

also ich habs jetzt erstma so gemacht....


--------------------------------


es wäre nicht schlecht wenn es eine datei geben würde in die der user ein paar funktionen reinschreiben könnte.

sprich eine user.inc.php o.ä.

so könnte der user ohne im inneren von redaxo etwas ändern zu müssen eigene funktionen schreiben und verwenden



------------------

ich hab hier noch was komisches.

sobald ich mein modul aktiviere erhalte ich folgende fehlermeldung:

Warning: strstr(): Empty delimiter. in E:\wwwroot\html\sokba\redaxo\include\classes\class.sql.inc.php on line 169

wenn ich es aber deaktiviere ist alles in butter.... ;(

Verfasst: 15. Feb 2005, 19:01
von Markus.Staab
kills hat geschrieben: ich hab hier noch was komisches.

sobald ich mein modul aktiviere erhalte ich folgende fehlermeldung:

Warning: strstr(): Empty delimiter. in E:\wwwroot\html\sokba\redaxo\include\classes\class.sql.inc.php on line 169

wenn ich es aber deaktiviere ist alles in butter.... ;(
das problem konnte ich lösen

in der config.inc.php muss ein wert für $REX[ADDON][perm][$mypage] gesetzt sein

Code: Alles auswählen

<?php

$mypage = "glossar"; 				// only for this file

$I18N_GLOSSAR = new i18n($REX[LANG],$REX[INCLUDE_PATH]."/addons/$mypage/lang/"); 	// CREATE LANG OBJ FOR THIS ADDON

$REX[ADDON][page][$mypage] = "$mypage";
$REX[ADDON][name][$mypage] = "Glossar";
$REX[ADDON][perm][$mypage] = "glossar[]";

?>

Verfasst: 15. Feb 2005, 19:23
von Thomas.Blum
Warum verwendest du überhaupt <abbr>?

gruss Thomas

Verfasst: 15. Feb 2005, 19:45
von Markus.Staab
tbaddade hat geschrieben:Warum verwendest du überhaupt <abbr>?

gruss Thomas
nirgends das mach ich mit den spann....

das mit dem abbr geht glaub ich nicht bei jedem Browser deshalb wollte ich es so machen.

Mein Addon ist übrigens fertig und wenn jemand interesse hat würde ich hergeben

Gruß,
Markus

Verfasst: 15. Feb 2005, 19:59
von Thomas.Blum
bin auf jedenfall daran interessiert. ich programmiere meistens in xhtml und css und da wäre dein addon eine super hilfe.

<abbr> funktioniert im ie nicht.

viele grüße thomas

Verfasst: 15. Feb 2005, 20:19
von Markus.Staab
tbaddade hat geschrieben:bin auf jedenfall daran interessiert. ich programmiere meistens in xhtml und css und da wäre dein addon eine super hilfe.

<abbr> funktioniert im ie nicht.

viele grüße thomas
ich werde es bei Gelegenheit mit Installationsanleitung ins wiki stellen

Gruß, Markus

Verfasst: 15. Jul 2005, 19:08
von blubb
Hi Markus,
kills hat geschrieben: nirgends das mach ich mit den spann....

das mit dem abbr geht glaub ich nicht bei jedem Browser deshalb wollte ich es so machen.
Frage ist nur, was bzw. wem es mit span etwas bringen soll, gerade in Hinblick auf Barrierefreiheit. Die Screenreader lesen meines Wissens abbr aus (span natürlich nicht!).

korrekt ist es so, mit Angabe der Sprache, wobei sich die Gelehrten noch streiten, ob oder wann man abbr bzw. acronym benutzt:

Code: Alles auswählen

<abbr title="Mediendienste-Staatsvertrag" lang="de">MDStV</abbr>

<abbr title="Uniform Resource Locator" lang="en">URL</abbr>
und im Stylesheet wird es oft so gemacht:

Code: Alles auswählen

abbr {
	border-bottom: 1px dotted #000;
	cursor: help;
}
Wie Thomas schon richtig schreibt, wird das im IE bis einschließlich Version 6 nicht angezeigt.
Das Entscheidende ist m.E. jedoch nicht, dass es optisch zu sehen ist, sondern zur Barrierefreiheit beiträgt, sonst hilft es nicht wirklich!

Zudem kann man abbr ja per CSS eine Klasse mit denselben Eigenschaften zuordnen, z.B.:

Code: Alles auswählen

<abbr class="shorttag" title="Mediendienste-Staatsvertrag" lang="de">MDStV</abbr>

Code: Alles auswählen

abbr,.shorttag {
	border-bottom: 1px dotted #000;
	cursor: help;
}
oder wenn das nicht hilft, Folgendes:

Code: Alles auswählen

<span class="shorttag"><abbr title="Mediendienste-Staatsvertrag" lang="de">MDStV</abbr></span>
Für Barrierefreiheit ist semantisch korrektes (X)HTML unabdingbar!

Gruß
Thorsten

Verfasst: 16. Jul 2005, 00:03
von bibi
moinsen :)

mal ne blöde Frage ... ;)

Wieso muß man das Suchen und ersetzen als 'Modul' bauen? Ich dachte, sowas ist die Aufgabe von 'Actions'? Die Glossarverwaltung als 'Modul' verstehe ich natürlich ... ;)

Gruß,
Carsten

Verfasst: 16. Jul 2005, 15:25
von Markus.Staab
bibi hat geschrieben:moinsen :)

mal ne blöde Frage ... ;)

Wieso muß man das Suchen und ersetzen als 'Modul' bauen? Ich dachte, sowas ist die Aufgabe von 'Actions'? Die Glossarverwaltung als 'Modul' verstehe ich natürlich ... ;)

Gruß,
Carsten
Hi Carsten,

das ganze ist nicht als Modul sondern als Addon gebaut.

Das ganze über Actions zu lösen ist natürlich auch eine gute Idee, nur zum damaligen Zeitpunkt kannte ich den Sinn u. Zweck von Actions nicht, deshalb wird ganze per Funktion und OutputBuffer gelöst.

Bei gelegenheit gibts vielleicht ne Version mit Actions :)

@blubb:

Hm ich vermute du hast recht wegen den abbr...
Ich werde das wohl ändern.. Danke für die Hinweise!

Gruß,
Markus

Verfasst: 16. Jul 2005, 19:52
von blubb
blubb hat geschrieben: wobei sich die Gelehrten noch streiten, ob oder wann man abbr bzw. acronym benutzt
Habe gerade in der neusten ct (Nr. 15) einen Artikel über das kommende XHTML 2 gelesen (S.174):

"<acronym> fällt ersatzlos zugunsten von <abbr> weg."

Damit wäre das auch geklärt.

Gruß
Thorsten

Verfasst: 17. Jul 2005, 12:24
von Markus.Staab
Hi Thorsen,

Klasse! Im nächsten release ist das auf jeden Fall drinn!

Gruß,
Markus