Abbi: Aufklappmenü

Hallo,

Unter http://www.abbiseite.de/test/ habe ich ein Aufklappmenü abgelegt, an dem ich gerade rumprobiere.

Ich versuche damit
1. Die Links in einer Liste abzulegen (halte ich semantisch für sinnvoll).
2. Das Menü auch dort einzusetzbar zu lassen, wo JavaScript deaktiviert ist.
3. Das Skript möglichst einfach zu halten, damit man es bei Bedarf immer wieder benutzen kann.

Habt Ihr Ideen, wie man das Skript verbessern kann? Seht Ihr Probleme?

Abbi

  1. Habt Ihr Ideen, wie man das Skript verbessern kann? Seht Ihr Probleme?

    Tag,
    Auf die schnelle sind mir jetzt nur zwei formale Sachen aufgefallen:

    • Dein <script> hat kein Type-Attribut
    • Du verwendest die DOM-Funktionen, die nur neuere Browser beherrschen
         GGf. könntest Du das vorher abfangen (if (document.getElementById) {...})

    Viele Gruesse,
    Joerg

    1. Hallo,

      Was passiert, wenn es noch einen Hauptpunkt gibt, klappen dann ein ggf. offener wieder zu?

      Mit freundlichem Gruß
      Micha

      1. Was passiert, wenn es noch einen Hauptpunkt gibt, klappen dann ein ggf. offener wieder zu?

        Nein, es bleiben soviele auf, wie der Benutzer möchte (hoffe ich doch). Es klappt also nur dann zu, wenn man auf die Stelle klickt, die man schließen will. Den Unterbaum merkt der Browser sich übrigens.

        1. Hallo,

          Nein, es bleiben soviele auf, wie der Benutzer möchte (hoffe ich doch).

          Wenn ich einen neuen Hauptpunkt öffne möchte _ich_ auch nur dessen Unterpunkte sehen, sonst macht das klappen für mich nicht unbedingt Sinn, da ansonsten auch gleich alle offen sein könnten... Wie gesagt, ist meine Meinung! ;-)

          Mit freundlichem Gruß
          Micha

          1. Ich denke, es gibt solche und solche Anwendungsgebiete. Vielleicht wird mein nächstes Menü dann so wie das von Dir beschriebene.

  2. Hallo Abbi,

    Unter http://www.abbiseite.de/test/ habe ich ein Aufklappmenü abgelegt, an dem ich gerade rumprobiere.

    Ich versuche damit

    1. Die Links in einer Liste abzulegen (halte ich semantisch für sinnvoll).

    Das ist jedenfalls syntaktisch sinnvoll.

    Ich habe dieses Semantik-Gerede, obwohl selbst Sprachwissenschaftler, auch bis in die jüngste Vergangenheit hinein nachgeplappert. Wenn es um die Beziehungen von Elementen zueinander geht, sprechen wir aber per definitionem von Syntax. Ähnlich wie die Regel, dass man im Deutschen zwischen einzelnen Punkten einer Aufzählung Kommas setzt und stattdessen vor dem letzten Punkt ein "und" nur etwas mit Syntax zu tun hat, aber nichts mit Semantik.

    1. Das Menü auch dort einzusetzbar zu lassen, wo JavaScript deaktiviert ist.

    selbstverständlich

    1. Das Skript möglichst einfach zu halten, damit man es bei Bedarf immer wieder benutzen kann.

    Alle Skripte sollten m. E. immer möglichst einfach sein, nicht nur im Hinblick auf ihre Wiederbenutzbarkeit. Mit Rücksicht auf die unterschiedlichen Browsertypen bleibt es dann ohnehin komplex genug.

    So hat mein Klappmenü z. B. im IE am Mac (es klappt da immer nur der jeweils erste Unterpunkt auf) anders als beim Safari ziemliche Probleme und weil ich über keinen eigenen Mac verfüge, kriege ich einfach nicht heraus, woran es liegt.

    http://www.sprachlernspiele.de/selftests/klappmenue/tree.html

    Gruß Gernot

    1. Hallo Gernot,

      1. Die Links in einer Liste abzulegen (halte ich semantisch für sinnvoll).

      Das ist jedenfalls syntaktisch sinnvoll.

      Ich habe dieses Semantik-Gerede, obwohl selbst Sprachwissenschaftler, auch bis in die jüngste Vergangenheit hinein nachgeplappert. Wenn es um die Beziehungen von Elementen zueinander geht, sprechen wir aber per definitionem von Syntax. Ähnlich wie die Regel, dass man im Deutschen zwischen einzelnen Punkten einer Aufzählung Kommas setzt und stattdessen vor dem letzten Punkt ein "und" nur etwas mit Syntax zu tun hat, aber nichts mit Semantik.

      es geht doch auch darum das es erkennbar eine Aufzählung ist.
      Nach deinem Ansatz wäre doch wohl letztlich das ganze HTML Syntax,
      was aber bei Tags wie address, cite usw. erkennbar nicht ausreicht.
      Es geht um semantisch richtiges HTML, auch wenn die Bedeutung der
      meisten Tags natürlich nicht viel an Information hergibt.

      Grüsse

      Cyx23

      1. Hallo Cyx23,

        Hallo Gernot,

        1. Die Links in einer Liste abzulegen (halte ich semantisch für sinnvoll).

        Das ist jedenfalls syntaktisch sinnvoll.

        Ich habe dieses Semantik-Gerede, obwohl selbst Sprachwissenschaftler, auch bis in die jüngste Vergangenheit hinein nachgeplappert. Wenn es um die Beziehungen von Elementen zueinander geht, sprechen wir aber per definitionem von Syntax. Ähnlich wie die Regel, dass man im Deutschen zwischen einzelnen Punkten einer Aufzählung Kommas setzt und stattdessen vor dem letzten Punkt ein "und" nur etwas mit Syntax zu tun hat, aber nichts mit Semantik.

        es geht doch auch darum das es erkennbar eine Aufzählung ist.

        Das erkennt man in der deutschen Schriftsprache an den Kommas und dem "und" und in der gesprochenen Sprache an dern Atempausen und dem "und". Das ist Syntax und keine Semantik!

        Nach deinem Ansatz wäre doch wohl letztlich das ganze HTML Syntax,

        Genau so sehe ich das!

        was aber bei Tags wie address, cite usw. erkennbar nicht ausreicht.

        In wiefern das denn? Ein Zitat erkennt man im Schriftdeutschen an den Anführungszeichen (vorne unten, hinten oben)! Eine Adresse erkannt man auch an ihrer formalen Darstellung (Hausnummer hinter der Straße, Postleitzahl vor der Stadt und nicht umgekehrt, wie im Amerikanischen), das alles ist Syntax und hat mit Semantik nichts zu tun!

        Semantik ist das, was den Elementen an Bedeutung innewohnt, Syntax das, was sie in logische Bezeihung zueinander setzt.

        Gruß Gernot

        1. Hallo Gernot,

          In wiefern das denn? Ein Zitat erkennt man im Schriftdeutschen an den Anführungszeichen (vorne unten, hinten oben)!

          Jo, diese Syntax hat eben eine gewisse Semantik. Das ist meiner Meinung nach auch in diesem Fall gemeint. Man soll die Elemente nicht nur syntaktisch Korrekt einsetzen, sondern auch ihrer Semantik entsprechend.

          <ul style="list-style-type: none"><li>Eine Überschrift.</li></ul> wäre zum Beispiel syntaktisch korrekt, aber trozdem ziemlich schwachsinnig, weil die Elemente eben nicht ihrer Semantik entsprechend eingesetzt werden.

          Zwischen Syntax und Semantik gibt es ja nun einen Zusammenhang und bei formalen Sprachen ist der in der Regel ziemlich eindeutig.
          Worum es natürlich nicht geht, ist die Semantik des Textes. Einzusammenhang damit ist freilich nur dadurch gegeben, dass sich aus ihr eben ergibt, wie der Text sinnvoll zu gliedern ist.

          Grüße

          Daniel

          1. Hallo Daniel,

            Jo, diese Syntax hat eben eine gewisse Semantik.

            Richtig ist, dass man mit Syntax die logischen Beziehungen, in denen Elemente zueinander stehen, verändern kann;

            Beispiel:

            1a) Ich bitte, ihn nach Hause zu fahren.

            ist etwas anderes als

            1b) Ich bitte ihn(,) nach Hause zu fahren.

            Die Semantik von Synonymen erschließt sich auch oft erst aus ihrem syntaktisch korrekten Gebrauch.

            Beispiel:

            2a) Ich warte auf die Post.

            ist etwas anderes als

            2b) Ich warte auf der Post.

            <ul style="list-style-type: none"><li>Eine Überschrift.</li></ul> wäre zum Beispiel syntaktisch korrekt, aber trozdem ziemlich schwachsinnig, weil die Elemente eben nicht ihrer Semantik entsprechend eingesetzt werden.

            Nein, das würde ich als unzureichende Strukturierung ansehen und mithin ebenso als syntaktisch falsch, auch wenn kein Validator darüber meckert. Zweifelsohne wird durch so etwas dann auch das Verständnis von Bedeutungen erschwert, ähnlich wie wenn man im Deutschen Nomen klein schreiben oder Satzzeichen falsch setzen würde.

            Der "Missbrauch" einer Tabelle zu Layoutzwecken ist meines Erachtens genauso gravierend wie das Weglassen des Bindestrichs bei der Aufschrift "BordRestaurant" an Intercity-Zügen.

            Gruß Gernot

            1. Hallo.
              Ich halte deine Ausführungen insgesamt für eher abenteuerlich. Wenn ich etwa eine Navigation als Liste auszeichne, habe ich über die Darstellungsform oder Trennzeichen ja noch gar keine Aussage getroffen. Denn ob ich ul { list-style-type: disc; } verwende oder ul { list-style-type: none; } in Verbindung mit ul, li { display: inline; } und li + li:before { content:", "; }, mag syntaktisch relevant sein, aber es ändert doch nichts daran, dass das einzig _sinn_volle Element in diesem Fall eine Liste ist.
              MfG, at

              1. Hallo at,

                Ich halte deine Ausführungen insgesamt für eher abenteuerlich. Wenn ich etwa eine Navigation als Liste auszeichne, habe ich über die Darstellungsform oder Trennzeichen ja noch gar keine Aussage getroffen. Denn ob ich ul { list-style-type: disc; } verwende oder ul { list-style-type: none; } in Verbindung mit ul, li { display: inline; } und li + li:before { content:", "; }, mag syntaktisch relevant sein,  aber es ändert doch nichts daran, dass das einzig _sinn_volle Element in diesem Fall eine Liste ist.

                Ich bleibe dabei: Semantik ist das, was Elementen an Bedeutung innewohnt. Syntax ist alles, was bedeutungstragende Elemente in logische Beziehungen zueinander setzt. Diese größeren Einheiten bilden dann natürlich auch ihrersits wieder Bedeutungen.

                "Krieg und Frieden" bedeutet erst einmal nichts anderes als "Krieg", "und" und "Frieden". Eine Überschrift wird für Sehende erst draus, wenn ich sie mit größerem Zeilenabstand vom Fließtext abgrenze oder sonst irgendwie optisch hervorhebe. Für Hörende erschließt sich das durch geeignete Betonung und Atempausen.

                Die Bedeutung steckt in HTML-Dokumenten ausschließlich in den Textknoten. Elementknoten dienen ähnlich wie Satzstellung, Interpunktion sowie Groß- und Kleinschreibung deren Strukturierung und sind damit ein syntaktisches Phänomen.

                Mit CSS kann ich da freilich genauso viel strukturelles Schindluder treiben wie mit HTML, etwa so:

                  
                <h1 style="[code lang=css]display:inline;font-size:100%;font-weight:normal
                ~~~">Krieg und Frieden </h1>  
                [/code]  
                Da könnte man die Überschrift tatsächlich nur noch mit einem Screenreader erkennen oder wenn man sich gleich als Nutzer nur den Quellcode zu Gemüte führt.  
                  
                Gruß Gernot
                
                1. Hallo.

                  Semantik ist das, was Elementen an Bedeutung innewohnt.

                  Eben.

                  Syntax ist alles, was bedeutungstragende Elemente in logische Beziehungen zueinander setzt.

                  Eben, und das geschieht ja hier nicht, da die Liste nicht mit dem übrigen Inhalt korrespondiert. Sie existiert für sich allein und bildet eine geschlossene Einheit. Lediglich die <li>, die sie enthält, sind Syntax, und die ist ja ohnehin vorgegeben.
                  MfG, at

                2. Hallo Gernot,

                  Die Bedeutung steckt in HTML-Dokumenten ausschließlich in den Textknoten.

                  Genau hier wird erkennbar, dass Du eine andere Ebene betrachtest.
                  Du redest von der Syntax und Semantik des dargestellten Dokuments, also des Textes und seines Layouts. Da ist so etwas wie die Darstellung als Liste natürlich Syntax.

                  Gemeint wird in diesem Zusammenhang habe immer die Syntax und die Semantik von HTML als Beschreibungssprache.
                  Und da ist Syntax eben das <ul> z.b. <li>s enthält, die Semantik hingegen, dass <ul> eben eine Liste und <li>s Listeneinträge sind.
                  Deswegen ist der Begriff "Semantik" in dem Fall durchaus richtig, es geht darum, die Elemente nicht nur syntaktisch korrekt, also im wesentlichen korrekt verschachtelt anzuwenden sonder auch semantisch korrekt zu verwenden, also eben so einzusetzen, dass sie das beschreiben, was man beschreiben will.

                  Bei der Diskussion muss man also deutlich unterscheiden, von welcher Sprache man redet. Von der formalen Sprache HTML oder von der verwendeten natürlichen Sprache zu der auch layouterische Mittel gehören.

                  Grüße

                  Daniel

                  1. Hallo Daniel,

                    Hallo Gernot,

                    Die Bedeutung steckt in HTML-Dokumenten ausschließlich in den Textknoten.
                    Genau hier wird erkennbar, dass Du eine andere Ebene betrachtest.

                    Bei der Diskussion muss man also deutlich unterscheiden, von welcher Sprache man redet. Von der formalen Sprache HTML oder von der verwendeten natürlichen Sprache zu der auch layouterische Mittel gehören.

                    Eine metasprachliche Ebene gibt es auch in natürlichen Sprachen: Selbstverständlich haben "Komma", "Substantiv", "Überschrift", "Absatz" etc. als Begriffe auch eine Bedeutung, dennoch gehören sie zur Domäne der Syntax.

                    Den Begriff "semantisches Markup" halte ich daher für unbrauchbar.

                    Gruß Gernot

                    1. Hallo Gernot,

                      Eine metasprachliche Ebene gibt es auch in natürlichen Sprachen: Selbstverständlich haben "Komma", "Substantiv", "Überschrift", "Absatz" etc. als Begriffe auch eine Bedeutung, dennoch gehören sie zur Domäne der Syntax.

                      Ja, aus linguistischer Sicht ist das sicher richtig.
                      Du realisierst aber nicht, dass die Sprache um die es hier geht HTML ist. Auf diese Sprache beziehen sich in dem zusammenhang die Begriffe Syntax und Semantik. Du redest hingegen von der natürlichen Sprache. Aus "informatischer" Sicht spielt die aber keine Rolle. Für den Browser gibt es da keine Semantik.
                      Bei dem zugegebenermaßen etwas unglücklichen Begriff "semantisches Markup" ist die Semantik von HTML gemeint, die es eben zu berücksichtigen gilt.

                      Dir ist meiner Meinung nicht klar, dass hier zwei Ebenen mit unterschiedlichen Sprachen im Spiel sind.
                      Vielleicht ist die Semantik formaler Sprachen im vergleich zu natürlichen so einfach und so eindeutig definiert, dass Du nicht merkst, dass das eigentlich nichts anderes ist.

                      Grüße

                      Daniel

                      1. Hallo Daniel,

                        Eine metasprachliche Ebene gibt es auch in natürlichen Sprachen: Selbstverständlich haben "Komma", "Substantiv", "Überschrift", "Absatz" etc. als Begriffe auch eine Bedeutung, dennoch gehören sie zur Domäne der Syntax.

                        Ja, aus linguistischer Sicht ist das sicher richtig.

                        Du realisierst aber nicht, dass die Sprache um die es hier geht HTML ist. Auf diese Sprache beziehen sich in dem zusammenhang die Begriffe Syntax und Semantik. Du redest hingegen von der natürlichen Sprache.

                        Entschuldige mal, wer hat hier die älteren Rechte an den Begriffen? Im übrigen ist mir volkommen klar, dass es sich bei HTML per se um eine Metasprache handelt, deren Beschreibungsgegenstand syntaktischer Natur ist.

                        Bei dem zugegebenermaßen etwas unglücklichen Begriff "semantisches Markup" ist die Semantik von HTML gemeint, die es eben zu berücksichtigen gilt.

                        Ich muss mich wohl damit abfinden, dass sich Begriffe aufgrund des allgemeinen, wenn auch falschen Gebrauchs manchmal ändern, ja teilweise sogar in ihr Gegenteil verkehren, aber daran bin ich als Anhänger einer deskriptiven Linguistik gewohnt. ;-)

                        Thomas' Meinung würde mich in diesem Zusammenhang sehr interessieren:

                        http://www.meta-text.net/files/marnet101.html

                        Gruß Gernot

                        1. Hallo.

                          Ich muss mich wohl damit abfinden, dass sich Begriffe aufgrund des allgemeinen, wenn auch falschen Gebrauchs manchmal ändern, ja teilweise sogar in ihr Gegenteil verkehren, aber daran bin ich als Anhänger einer deskriptiven Linguistik gewohnt. ;-)

                          Das geht doch jedem so. Unter Attributen und Werten hatte ich mir als HTML-Unkundiger auch etwas anderes vorgestellt.
                          MfG, at

                        2. Hallo Gernot,

                          Entschuldige mal, wer hat hier die älteren Rechte an den Begriffen?

                          Naja, die Begriffe haben sich da meiner Meinung nach nicht so sehr geändert. Sie werden nur auf etwas andere Gegenstände angewand. Aber formale Sprachen sind ja auch nichts, was die Informatiker erfunden haben. Evt. haben die Linguisten den Begriff "Semantik" aber in dem Zusammenhang nicht gebraucht, weil für sie formale Sprachen gar keine Semantik hatten sondern nur gebraucht wurden, um allgemeine Theorien über Struktur von Sprachen zu entwickeln.

                          Im übrigen ist mir volkommen klar, dass es sich bei HTML per se um eine Metasprache handelt, deren Beschreibungsgegenstand syntaktischer Natur ist.

                          Ja klar. Die Semantik natürlicher Sprache zu erfassen ist ja auch viel komplizierter. Es gibt auch verschiedene formale Sprachen um das (jedenfalls für gewisse Bereiche) zu tun, aber HTML leistet das natürlich nicht.

                          Ich muss mich wohl damit abfinden, dass sich Begriffe aufgrund des allgemeinen, wenn auch falschen Gebrauchs, manchmal ändern, ja teilweise sogar in ihr Gegenteil verkehren, aber daran bin ich als Anhänger einer deskriptiven Linguistik gewohnt. ;-)

                          Du hast mich immer noch nicht überzeugt, warum der gebrauch, auch aus linguistischer Sicht, falsch sein sollte und in wie fern sich hier eine Bedeutung geändert hat.

                          Natürlich beschreibt HTML nur syntaktische Merkmale der natürlichen Sprache, damit eine Sprache aber überhaupt irgend etwas ausdrücken kann, braucht sie nicht nur eine Syntax, sondern auch eine Semantik.

                          Grüße

                          Daniel

                    2. Hallo.

                      Den Begriff "semantisches Markup" halte ich daher für unbrauchbar.

                      • Die Brauchbarkeit dokumentiert sich offenkundig durch den Gebrauch.
                      • Die "sinnstiftende Auszeichnung" bedeutet, Syntax nicht zum Selbstzweck zu verwenden.
                        MfG, at