permalink

14

Blick unter die Haube: Funktionsweise meiner Glossareinbindung

Ein bis zwei Mal im Monat erhalte ich eine E-Mail mit der Frage, wie ich die klei­nen Tool­tipps umge­setzt habe, die erschei­nen, wenn man einen Glossar­ein­trag mit der Maus über­fährt, bei­spiels­weise den Begriff CSS. Erst ver­gan­gene Woche wurde ich wie­der gefragt:

»Ihre Begriffs­er­klä­run­gen kle­ben sozu­sa­gen am Maus­zei­ger fest. Wenn die­ser sich bewegt, dann bewe­gen sich die Fens­ter mit. Zudem öffnen sie sich am Rand des Fens­ters stets nach innen, sodass immer der kom­plette Inhalt sicht­bar ist. Geht das aus­schließ­lich mit XHTML und CSS oder benö­tige ich dafür JavaScript?«

Die­ser Arti­kel wirft einen kur­zen Blick unter die Haube die­ser Web­site und bie­tet eine Schritt-für-Schritt-Anleitung zum Nach­ma­chen. Zum Ein­satz kom­men XHTML, das jQuery-Skript jquery.glossary.js und ein wenig CSS.

Zum Sei­ten­an­fang

Die Idee

Im Rah­men der Arbeit an mei­ner Ein­füh­rung in XHTML, CSS und Web­de­sign ent­stand ein umfang­rei­ches Glos­sar, also eine Liste von Wör­tern mit sprach­li­chen Erläu­te­run­gen. Ein tech­ni­sches Glos­sar wie mei­nes erläu­tert die Ter­mi­no­lo­gie eines tech­ni­schen Sach­ge­bie­tes mit sach­li­chen Defi­ni­tio­nen, die den rich­ti­gen Gebrauch die­ser Fach­aus­drü­cke und deren ein­deu­ti­ges Ver­ständ­nis sichern sol­len. Das Glos­sar beinhal­tet eine Viel­zahl von Begrif­fen, die in der weit­ge­fass­ten The­men­welt der Webent­wick­lung behei­ma­tet sind.

Ich bin seit jeher der Ansicht, dass man Dinge und Sach­ver­halte nur ver­ste­hen kann, wenn man ihren Namen und die Namen ihrer Bestand­teile kennt. Aus die­sem Grund lege ich so viel Wert auf die rich­tige Anwen­dung von Fach­ter­mi­no­lo­gie und ver­su­che Fach­be­griffe zu erklä­ren, wenn ich sie erst­ma­lig verwende.

Dazu bie­ten sich Hyper­links an: Das erste Auf­tre­ten eines Gloss­ar­be­griffs wird zum Hyper­link, und wenn Sie die­sem fol­gen, dann gelan­gen Sie zur Erklä­rung des Begriffs. Diese muss nicht lang sein – viel­leicht han­delt es sich nur um ein oder zwei Sätze. Ich habe mich bemüht, kurze und prä­gnante Defi­ni­tio­nen zu fin­den. Daher auch die Idee mit dem Tool­tipp: Wenn Sie den ver­link­ten Gloss­ar­be­griff mit dem Maus­zei­ger berüh­ren, erscheint am Maus­zei­ger ein klei­nes Fens­ter mit der Erklä­rung – ist sie zu lang, wird sie abge­schnit­ten. Das Fens­ter ori­en­tiert sich an der Posi­tion des Maus­zei­gers und erscheint abhän­gig von der Posi­tion zum Fens­ter­rand mal auf der einen, mal auf der ande­ren Seite des Mauszeigers.

Eine Spe­zi­al­be­hand­lung ist erfor­der­lich, wenn es sich bei Gloss­ar­be­grif­fen um Abkür­zun­gen oder Akro­nyme han­delt: In die­sem Fall steht nicht der Gloss­ar­be­griff selbst, son­dern des­sen aus­ge­schrie­bene Bedeu­tung im Titel des Tool­tipps, also bei­spiels­weise nicht »CSS«, son­dern »Casca­ding Style Sheets« – siehe den ers­ten Absatz die­ses Artikels.

Zum Sei­ten­an­fang

Gloss­ar­be­griffe auszeichnen

Gloss­ar­be­griffe sind Links, die zwei Eigen­schaf­ten erfül­len: Sie haben die Klasse glossary-term und ein title-Attri­but, das die voll­stän­dige Begriffs­er­klä­rung enthält.

<p>WordPress ist seit einigen Jahren <em>das</em>
Weblog- und <a class="glossary-term"
href="/publikationen-und-vortraege/glossar/c/content
-management-system" title="Softwaresystem für das
Administrieren von (Web-)Inhalten mit Unterstützung
des Erstellungsprozesses basierend auf der Trennung von
Inhalten und Struktur. Benutzen die Mechanismen des
Dokumenten-Managements.">Content-Management-System</a>
für Blogs sowie kleine und mittlere Websites, vor allem
in Deutschland.</p>

Der zweite Gloss­ar­be­griff im fol­gen­den Bei­spiel zeigt die Aus­zeich­nung eines Akro­nyms als Gloss­ar­be­griff: Der Anker umschließt das Akro­nym ein­fach. Die Aus­zeich­nung von Abkür­zun­gen (abbr) ver­läuft analog.

<body>
  <p>Jede <a class="glossary-term"
  href="/publikationen-und-vortraege/glossar/w/webseite"
  title="Dokument, das mit einem Benutzeragenten von
  einem Webserver abgerufen werden kann. Bestandteil
  einer Website. Besteht zumeist aus strukturiertem Text
  und Multimediaelementen.">Webseite</a> ist über
  mindestens einen <a class="glossary-term"
  href="/publikationen-und-vortraege/glossar/u/uri"
  title="Zeichenfolge, die zur Identifizierung einer
  abstrakten oder physikalischen Ressource dient. Wurde
  mit RFC 1630 im Juni 1992 von Tim Berners-Lee im Rahmen
  seines Projekts World Wide Web am CERN eingeführt.
  Aktuell ist RFC 3986 vom Januar 2005. Ein URI ist
  entweder ein URL, ein URN oder beides."><acronym
  title="Uniform Resource Identifier" lang="en"
  xml:lang="en">URI</acronym></a> adressierbar.</p>
</body>

Zum Sei­ten­an­fang

Glossar-Tooltipps erzeu­gen

Die Tool­tipps mit den Erklä­run­gen der Gloss­ar­be­griffe erzeugt ein jQuery-Skript, das Lars Cor­ne­li­us­sen ent­wi­ckelt hat und bei bit​bu​cket​.org hos­tet. Das Skript tut folgendes:

  • Es leert die title-Attri­bute der Glos­sa­ran­ker sowie even­tu­ell darin ent­hal­te­ner acronym- oder abbr-Ele­mente, damit die Standard-Browsertooltipps unsere Glossar-Tooltipps nicht überlagern.
  • Es erzeugt die Glossar-Tooltipps als div-Ele­mente mit der Klasse glossary-description und fügt sie über $('body').append($div); am Ende des body-Ele­ments vor dem schlie­ßen­den </body> ein. Die hide()-Funk­tion sorgt dafür, dass die Tool­tipps zunächst nicht sicht­bar sind.
  • Die Glossar-Tooltipps ent­hal­ten eine Über­schrift und die Beschrei­bung. Das Skript befüllt die Über­schrift ent­we­der mit dem Gloss­ar­be­griff selbst oder, wenn es sich um ein Akro­nym oder eine Abkür­zung han­delt, mit dem Inhalt des title-Attri­buts des acronym- bzw. abbr-Ele­ments, sofern die­ses vor­han­den ist. Das ist sinn­voll, da das title-Attri­but die aus­ge­schrie­bene Fas­sung des Akro­nyms bzw. der Abkür­zung enthält.
  • Wird der Gloss­ar­be­griff mit dem Maus­zei­ger berührt, blen­det das Skript den dazu gehö­ri­gen Tool­tipp ein und küm­mert sich um des­sen Posi­tio­nie­rung unter Berück­sich­ti­gung der Maus­zei­ger­po­si­tion und dem Abstand zum Browserfenster.
;(function($) {
var _settings = {
  descriptionClass:"glossary-description"
}
$.fn.glossify = function (settings)
{
  settings = _settings;
  // pregenerate
  for( var i = 0; i < this.length; i++)
  {
    var g = this[i];
    var $g = $(g);
    g.glossTitle = g.title;
    g.title = "";
    var $subElement = $g.find('acronym, abbr');
    if ($subElement.length) {
      caption = $subElement[0].title;
      $subElement[0].title = "";
    }
    else
      caption = $g.text();
    g.$glossElement = makeGloss(settings, caption, g.glossTitle);
  }
  this.mouseover(function glossover(ev){
    this.$glossElement.show();
    followTheMouse(ev, this.$glossElement);
  });
  this.mouseout(function() {this.$glossElement.hide();});
  this.mousemove(followTheMouse);
}
function makeGloss(settings, caption, text)
{
  var $div = $('<div><strong/><span/></div>')
    .css('position', 'absolute')
    .addClass(settings.descriptionClass)
    .hide();
  $div.find('strong').text(caption);
  $div.find('span').text(text);
  $('body').append($div);
  return $div;
}
function followTheMouse(ev, $el)
{
  var $el = $el ? $el : this.$glossElement
  // relative mouse position
  var rx = ev.clientX;
  var ry = ev.clientY;
  // absolute mouse position
  var x = ev.pageX;
  var y = ev.pageY;
  var xOffset = 10;
  var yOffset = 10;
  // ip if not enough space
  if ( (rx + $el.width() + xOffset) > $(window).width() )
  {
    x -= $el.width();
    xOffset *= -1;
  }
  if ( (ry + $el.height() + yOffset) > $(window).height() )
  {
    y -= $el.height();
    yOffset *= -1;
  }
  $el.css("left", x + xOffset);
  $el.css("top", y + yOffset);
}
})(jQuery);

Ein­ge­bun­den wird das Skript über:

$(function(){
  $('a.glossary-term').glossify();
});

Die Ände­run­gen am Docu­ment Object Model müs­sen wir berück­sich­ti­gen, wenn es um das Sty­ling der Gloss­ar­be­griffe und vor allem der Glossar-Tooltipps geht. Daher soll­ten wir uns ein­mal anschauen, wie das Skript das Bei­spiel aus Lis­ting 2 verändert:

<body>
  <p>Jede <a class="glossary-term"
  href="/publikationen-und-vortraege/glossar/w/webseite"
  title="">Webseite</a> ist über mindestens einen
  <a class="glossary-term"
  href="/publikationen-und-vortraege/glossar/u/uri"
  title=""><acronym title="" lang="en"
  xml:lang="en">URI</acronym></a> adressierbar.</p>
  <div style="position: absolute; display: none;"
  class="glossary-description">
    <strong>Webseite</strong>
    <span>Dokument, das mit einem Benutzeragenten von
    einem Webserver abgerufen werden kann. Bestandteil
    einer Website. Besteht zumeist aus strukturiertem
    Text und Multimediaelementen.</span>
  </div>
  <div style="position: absolute; display: none;"
  class="glossary-description">
    <strong>Uniform Resource Identifier</strong>
    <span>Zeichenfolge, die zur Identifizierung einer
    abstrakten oder physikalischen Ressource dient.
    Wurde mit RFC 1630 im Juni 1992 von Tim Berners-Lee
    im Rahmen seines Projekts World Wide Web am CERN
    eingeführt. Aktuell ist RFC 3986 vom Januar 2005.
    Ein URI ist entweder ein URL, ein URN oder
    beides.</span>
  </div>
</body>

Zum Sei­ten­an­fang

Tool­tipps in Form bringen

Wir haben jetzt das Markup, wir haben die Funk­tio­na­li­tät, fehlt noch das Sty­ling. Nur wenige CSS-Regeln sor­gen für die rich­tige Dar­stel­lung der Gloss­ar­be­griffe und der Tooltipps.

Gloss­ar­be­griffe erschei­nen, anders als nor­male Hyper­links, in Schrift­farbe, einem sehr dunk­len Grau. Der Unter­strich fällt weg, dafür spen­die­ren wir den Links unten einen gepunk­te­ten Rah­men. Die zweite Regel sorgt für die Dar­stel­lung eines Ost-Pfeils vor den Gloss­ar­be­grif­fen. Die wei­te­ren Regeln küm­mern sich um die Breite, Far­ben, Rah­men und wei­tere Eigen­schaf­ten des Tooltipps.

a.glossary-term {
  color: #444;
  background-color: transparent;
  text-decoration: none;
  border-bottom: 1px dotted;
}
a.glossary-term:before {
  content: "\2192\00A0";
  font-size: 1.1em;
}
/* Glossar-Tooltipp */
.glossary-description {
  width: 300px;
  color: inherit;
  background-color: white;
  border: 2px solid #806554;
  font-size: 1em;
  line-height: 1.5;
  z-index: 2;
}
.glossary-description strong,
.glossary-description span {
  display: block;
  padding: 4px 8px;
}
.glossary-description strong {
  color: white;
  background: #806554;
}

Zum Sei­ten­an­fang

Umständ­lich und unpraktisch?

Viel­leicht fra­gen Sie sich: Nette Funk­tion, aber wer macht sich denn die Mühe, auf sei­ner gesam­ten Web­site Gloss­ar­be­griffe aus­zeich­nen und aktu­ell zu hal­ten? Die Frage ist berech­tigt, wahr­schein­lich macht das nie­mand – ich auch nicht.

Glossar­ver­wal­tung im onion.net-Editor

Mein Web­log betreibe ich mit Word­Press, den Groß­teil der Web­site hin­ge­gen mit onion​.net, also alles, was nicht unter­halb von jendryschik.de/weblog liegt. onion​.net ver­fügt über eine groß­ar­tige Glossar-Erweiterung, die vor der Aus­lie­fe­rung der Web­site alle Texte parst und die Glossar-Auszeichnungen auto­ma­tisch ergänzt. Ich schreibe nur die Texte, onion​.net küm­mert sich um den Rest. Performance-Einbußen gibt es durch das Par­sing keine, denn sobald ich einen Text ändere, wer­den alle Frag­mente inva­li­diert, die die­sen Text ver­wen­den, und neu im Cache abge­legt. Das bedeu­tet in die­sem Fall konkret:

  • Ändere ich einen Arti­kel, wird die­ser und die Web­seite, auf der er ver­wen­det wird, inva­li­diert. Dabei schaut onion​.net, ob ich (neue) Gloss­ar­be­griffe ver­wende und berück­sich­tigt diese ent­spre­chend, wenn der Text neu geparst und die Web­seite neu zusam­men­ge­setzt und gecacht wird.
  • Ändere ich einen Gloss­ar­be­griff, inva­li­diert onion​.net alle Texte, aktua­li­sert sie und alle Web­sei­ten, die die Texte ver­wen­den, und baut den Cache ent­spre­chend neu auf.

Das ist auch der Grund, wes­halb im Blog nahezu keine Gloss­ar­be­griffe aus­ge­zeich­net sind, auch in die­sem Arti­kel nicht, denn für Word­Press habe ich keine ent­spre­chende Funk­tion imple­men­tiert und ich müsste alle Gloss­ar­be­griffe redun­dant per Hand auszeichnen.

Bei der Web­site der ite­mis AG haben wir die Funk­tion noch um eine wei­tere Kom­po­nente ergänzt. Ich kann nicht davon aus­ge­hen, dass alle Online-Redakteure stets daran den­ken, Akro­nyme und Abkür­zun­gen als sol­che zu mar­kie­ren – ich tue es ja selbst nicht kon­se­quent. Also pfle­gen wir über den onion.net-Editor, die Redak­ti­ons­ober­flä­che, nicht nur Gloss­ar­be­griffe, son­dern auch Akro­nyme und Abkür­zun­gen. onion​.net ver­teilt die pas­sen­den abbr-Tags (auf acronym ver­zich­ten wir) auto­ma­tisch. Eine super Sache, die ich für meine Web­site eigent­lich mal über­neh­men sollte. ;-)

Zum Sei­ten­an­fang

Kom­men­tare? Anmerkungen?

Ich mag die Inte­gra­tion mei­nes umfang­rei­chen Glos­sars und finde die Glossar-Tooltipps nütz­lich, infor­ma­tiv und hübsch. Ich werde häu­fig dar­auf ange­spro­chen, viele wol­len eine ähnli­che Funk­tion auf ihren Web­sei­ten haben.

Wie gefällt Ihnen die Glossar­funk­tion? Ver­wei­len Sie mit dem Maus­zei­ger auf den Links und lesen Sie die Erklärungen?

Hier lesen ja auch Exper­ten ver­schie­de­ner Dis­zi­pli­nen der Webent­wick­lung mit, unter ande­rem Exper­ten für Bar­rie­re­frei­heit und Skript­ing bzw. spe­zi­ell jQuery. Ist die Lösung tech­nisch robust? Wie sieht es mit der Bar­rie­re­frei­heit aus? Die Erklä­run­gen sind per Klick auf den Glossar-Link erreich­bar, es wer­den also keine unnö­ti­gen Bar­rie­ren auf­ge­baut, oder doch? Ist die Ent­fer­nung der title-Attri­bute ein Pro­blem? Wir haben weder beim Markup, noch beim Skript expli­zit auf Bar­rie­re­frei­heit geach­tet. Könnte WAI-ARIA die Zugäng­lich­keit der Glossar­funk­tion ent­schei­dend verbessern?

Ich freue mich auf Ihre Anmer­kun­gen, Hin­weise und Tipps und lade dazu ein, die Lösung weiterzuverwenden.

14 Kommentare

  1. Mor­gen!

    Ein schö­ner Bei­tag. Die Tool­tips sehen optisch super aus und finde ich klasse, da sie die Seite imenz erweitern.

    Aller­dings gibt es da auch, aus mei­ner Sicht, ein paar Fak­ten die nicht so toll sind:

    1. JQuery. Ich kann ein­fach kein Fan davon wer­den. Zumal man nicht­ein­mal weis, was da wirk­lich alles in der Biblo­thek ent­hal­ten ist. Even­tu­ell wer­den ja irgend­wel­che Daten über­mit­telt? Wer kann das schon sagen? Eben­falls finde ich das Prin­zip "ich lade erstein­mal ~50KB (jaja über google ein­ge­bun­den.. ;) )und 1000000 JS-Funktionen, um einen onMouseover-Effekt zu erzeu­gen" nicht logisch.

    2. In einem Text­brow­ser haben wir garkeine Tool­tips und das Wort "CSS" ist nur ein Link zum Glossareintrag.

    3. in einem Vor­le­se­brow­ser ist es das sel­bige wie im Textbrowser

    4. Google ver­steht JS. Aller­dings wenn google ankommt, hat das a-Tag kei­nen title mehr und es gibt kein abbr mehr. Also ver­schlech­tert man die Seite sozusagen.

    Ich finde Tool­tips und Begriffs­er­klä­run­gen super, aber ich bin mir nicht sicher ob das der rich­tige Weg ist.

    Gruß
    Chris

    • Hallo Chris,

      ich nutze jQuery auf die­ser Web­site auch an ande­ren Stel­len, nicht nur für die Ein­bin­dung der Tool­tipps. Deine Vor­be­halte jQuery gegen­über kann ich nicht tei­len. Das Frame­work ist schon in Ordnung! :-)

      Text­brow­ser, Screen­re­a­der und Such­ma­schi­nen haben kei­nen Zugriff auf die Inhalte der Tool­tipps, das ist rich­tig, aber ich finde das nicht schlimm. Die Erklä­rung ist doch nur einen Maus­klick ent­fernt! Und gerade in Bezug auf Such­ma­schi­nen finde ich es sinn­voll, dass die Texte nicht zugäng­lich sind: Google soll die Begriffs­er­klä­rung auf der ent­spre­chen­den Glos­sar­seite indi­zie­ren, nicht auf jeder ein­zel­nen Seite, die den Glossar-Begriff enthält.

      • JQuery, das lei­dige Thema… ich finds über­flüs­sig und irgend­wie auch unsi­cher. Allein schon wenn ich immer höre "ist doch über google ein­ge­bun­den und der User hat das sicher­lich schon im Cache"…jap…und google bekommt noch mehr Daten über dich, wo du hin­surfst und was du anklickst..perfekt für das per­sön­lich maß­ge­schnei­dete ange­bote WWW (Vllt nennt man es ja irgend­wann HWW - Home Wide Web - Weil google & Co. mehr über dich wis­sen wie du über dich selbst :-) ).

        Bzgl. dei­ner Argu­men­ta­tion für goolge, da stimme ich zu. Für Text­brow­ser even­tu­ell auch noch, aber Vor­le­se­brow­ser ist es echt ner­vig, wenn man eine Seite anfängt zu lesen und zu 10 wei­te­ren muss um die Begriffe im Arti­kel zu ver­ste­hen. Das ist so ein Wikipedia-Prinzip. :-)

        @detlef ein paar Ein­träge wei­ter unten
        es funk­tio­niert auch ohne Java­Script, eben nur nicht so schön. Ob man jetzt ins Glos­sar geht - und dann inter­es­siert dich das bren­nend was der Begriff bedeu­tet - oder den Tool­tip liest, oder den title das a-Tags…es kommt immer das glei­che raus.

        • Du musst es ja nicht ver­wen­den, spe­zi­ell nicht, wenn es doch so ein lei­di­ges Thema ist. :-)

          Tat­sa­che ist: jQuery (oder: Frame­works im All­ge­mei­nen) macht Java­script um ein Viel­fa­ches zugäng­li­cher und sim­pler. Der ver­sierte Javascript-Guru mag bestimmte Dinge schnel­ler und kom­pak­ter hin­krie­gen, aber für den Gele­gen­heits­skrip­ter ist jQuery ein Segen.

          Deine Sicher­heits­be­den­ken finde ich gera­dezu gro­tesk. Das ist ein weit ver­brei­te­tes Open-Source-Projekt -- stell Dir den Auf­schrei vor, wenn es so wäre. Wenn Du wis­sen willst, was ent­hal­ten ist, stu­diere halt den Quell­code, dafür ist er offen.

    • @Chris Nun JQuery gibt es ja auch zum Down­loa­den in der nicht kom­pri­mier­ten Vari­ante, da siehst du jede Zeile Java­script und dort ist nichts an bösen JS Code ver­steckt. Ich sehe in JQuery kei­ner­lei Sicher­heits­ri­si­ken, wenn du es nicht von Google neh­men möch­test dann kannst du es ja sel­ber­hos­ten.
      Was ver­wen­dest du ? Plain Java­script ? Dann viel Spass mit den Browserweichen.

  2. vie­len dank für die beschreibung!

    ich bin der "aus­lö­sende frager".

    ich finde das klasse und werde das dem­nächst mal tes­ten, selbst auch so umzusetzen.

    1. sehr gut finde ich, dass das fens­ter­lein dem maus­zei­ger folgt. *nei­disch­bin* :o)

    2. sehr gut, nein, noch bes­ser finde ich, dass das fens­ter­lein immer zum sicht­ba­ren bereich hin öffnet und dadurch nicht am rand abge­schnit­ten wird. *nei­disch­bin* :o)

    3. schade finde ich, dass man bei abge­schal­te­tem java­script diese info­fens­ter nicht zu sehen bekommt. aber dafür sind dann wenigs­tens die nor­ma­len title-tag-anzeigen sichtbar.

    5. so ganz ohne java­script funk­tio­niert sowas also nicht. jeden­falls habe ich im netz nir­gends etwas der­ar­ti­ges NUR mit css gefunden. ???

    6. auf mei­ner neuen ver­sion mei­ner web­site http://​www​.win​del​dienst​-leip​zig​.de/ (ist noch nicht online - wird wohl erst zur kom­men­den woche fer­tig…) binde ich sol­che tool­tips mit­tels der -tags ein (alle ein­zeln und manu­ell, aber meine site ist sta­tisch und (noch) nicht so umfang­reich), was auch seman­tisch kor­rek­ter sein dürfte, da es hier ja um "definitionen"=erklärungen von begrif­fen geht.
    das pro­blem mit dem fens­ter­rand habe ich pro­vi­so­risch aber gut funk­tio­nie­rend so gelöst, dass ich die breite der tool­tips so vor­gebe, dass sie auch am rand nicht abge­schnit­ten wer­den. lei­der besteht evtl. unten die gefahr, wenn der platz zu kanpp ist, aber das kann man ver­nach­läs­si­gen, wenn der foo­ter hoch genug ist und der untere -rand…
    zusätz­lich habe ich die titel­zeile sepa­rat mit­tels ein­ge­bun­de­nem sepa­rat for­ma­tiert.
    an eini­gen stel­len habe ich auch bil­der statt text ein­ge­bun­den (bil­der sagen manch­mal mehr als worte).

    7. was mich noch bren­nend inter­es­siert und ich noch nicht geschafft habe: die info-fensterchen so zu kon­stru­ie­ren, dass sie selbst sepa­rate kleine mini-webseiten sind, also mit bil­dern, mit ein­ge­bun­den wei­ter­füh­ren­den links usw…
    ich habe dazu infor­ma­tio­nen und anlei­tun­gen gefun­den, aber alles auch nur MIT java­script…
    das tech­ni­sche haupt­pro­blem hier­bei ist, wenn man es ohne java­script machen will, dass man ein <a>-tag nicht inner­halb eines <a>-tags notie­ren darf.
    wenn jemand DAFÜR eine lösung ohne java­script hätte, wäre das klasse.

    vg
    detlef

    • Hallo Det­lef,

      man sollte nicht ver­ges­sen, dass es sich bei den Glossar-Tooltipps nur um ein »nütz­li­ches Gim­mick« han­delt, eine Vor­weg­nahme der Hil­fe­stel­lung, die jedem Nut­zer per Maus­klick zugäng­lich ist, egal ob mit akti­vier­tem Java­Script oder ohne. Inso­fern ent­geht einem Nut­zer nichts, der Java­Script deak­ti­viert hat.

      Was hast du eigent­lich gegen den Ein­satz von JavaScript?

      Offen­bar hat Word­Press Teile dei­nes Kom­men­tars ver­schluckt. Wie genau baust du deine Tool­tipps ein? Über wel­ches Ele­ment? (Quell­text bitte maskieren!)

      • öhm…schulligung
        ich binde meine hin­weis­fens­ter­chen über dl-ele­mente ein, was seman­tisch kor­rek­ter ist (defi­ni­tion = erläuterung/erklärung).

        gegen java­script direkt habe ich selbst nicht unbe­dingt was, aber man liest über­all, dass doch schein­bar viele nut­zer das aus sicher­heits­grün­den abschal­ten und man des­halb (wich­ti­ges) so pro­gram­mie­ren soll, dass es auch dann funk­tio­niert.
        bei mir sind das ja nur hin­weise direkt bei den jewei­li­gen stel­len und für die navi­ga­tion. eine extra-seite mit glos­sar habe ich (noch) nicht.

        gruß
        detlef

        • Ich finde den Ansatz über Defi­ni­ti­ons­lis­ten nicht schlecht. Anstatt

          <div class="glossary-description">
          <strong>Begriff</strong>
          <span>Erläuterung</span>
          </div>

          könnte man natür­lich auch wie folgt auszeichnen:

          <dl class="glossary-description">
          <dt>Begriff</dt>
          <dd>Erläuterung</dd>
          </dl>

          Aller­dings würde so jede Defi­ni­ti­ons­liste aus nur einem Ein­trag beste­hen, also nur aus einem Paar von Defi­ni­ti­ons­term und Beschrei­bung. Das ist nicht das, was ich mir unter einer Liste vorstelle.

          • nein, nicht defi­ni­ti­ons­lis­ten, son­dern es gibt einen tag <dfn>, der für defi­ni­tio­nen von begrif­fen zustän­dig ist.
            eine defi­ni­ti­ons­liste ist etwas ande­res.
            das dfn-tag ist eher ver­wandt mit <abbr> oder <acr>

          • Okay, jetzt ver­stehe ich. Denk aber bitte daran, dass mit dfn nicht die Defi­ni­tion, son­dern der zu defi­nie­rende Term aus­ge­zeich­net wird.

          • öhm…
            achso?
            ich dachte, damit wird der begriff defi­niert, dem das dfn ange­glie­dert wird:
            <a href="adresse zum glos­ser oder ein­fach nur #" title="blablub">zu defi­nie­ren­der begriff<dfn>definition des begrif­fes mit aller­lei text nach wahl</dfn></a>

            die ori­gi­na­len tool­tips wer­den dann zwar tem­po­rär über­la­gernd ange­zeigt, aber das ist nicht so schlimm, wenn man das defi­ni­ti­ons­fens­ter ent­spre­chend per css gestal­tet.
            eine vorab-zum-gucken-version ist hier zu fin­den:
            http://​www​.augen​blick​punkt​.de/​w​i​n​d​e​l​d​i​e​n​s​t​_​neu

  3. jQuery ist eine sol­che Arbeits­er­leich­te­rung, dass ich es mitt­ler­weile bei fast jeder Seite mit ein­ge­bun­den habe. Fle­xi­ble For­mu­lare an rich­ti­ger Stelle ein­ge­bun­den und direk­tes Feed­back per AJAX und schlichte Ani­ma­tio­nen mit denen das Arbei­ten auch für den Anwen­der mehr Spaß macht sind 100%ige Vorteile.

    Grund­sätz­lich habe ich das Frame­work direkt auf der jewei­li­gen Web­prä­senz hoch­ge­la­den, um Laten­zen, Aus­fälle und even­tu­elle Mani­pu­la­tio­nen aus­zu­schlies­sen. Ein Freund von Hos­ting auf Fremd­ser­vern bin ich auch nicht.

    Der Code ist offen und sau­ber. Du (jQuery-Kritiker) musst ja nicht den kom­pri­mier­ten Code ver­wen­den, son­dern kannst dir alles anse­hen und ggfs. selbst kom­pri­mie­ren, um Per­for­mance zu sparen.

    Ja, ich kann alle diese schö­nen Dinge auch von Hand pro­gram­mie­ren und das habe ich auch hier und da mal gemacht, aber schnel­ler und ein­fa­cher ohne ein Frame­work wie mit jQuery geht's ein­fach nicht.

    Zuerst hatte ich moo­tools und scripta­cu­lous ver­wen­det und war schon sehr zufrie­den. Doch nach­dem ich mich in jQuery ein­ge­ar­bei­tet habe, werde ich sicher­lich erst­mal kein ande­res mehr ver­wen­den. Dafür ist der Kom­fort für mich als Ent­wick­ler und für den Kun­den als Sei­ten­be­su­cher zu groß.

    Fazit: Pro­bie­ren geht über studieren.

  4. Dein Arti­kel ist echt toll, sehr gut erklärt. Ich werde es ver­su­chen umzu­set­zen, da ich so was schon drin­gend suche.

    Viele Grüße Mika

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*