Matze: Universalattribute Html5

Hallo!

Ich war gerade auf der Suche nach einer Liste der Universalattribute für Html5-Elemente.
Hier bin ich zwar fündig geworden aber nun bin ich ein wenig verwirrt.

Wozu sollte man z.B. "contenteditable" in einen meta-Tag setzen oder "dropzone" in einen head-Tag oder, oder, oder...?
Wo ist der Sinn der Attribute wenn sie augenscheinlich gar nicht bei allen Elementen Sinn ergeben?

Dank und Gruß,
Matze

  1. Meine Herren,

    Ich war gerade auf der Suche nach einer Liste der Universalattribute für Html5-Elemente.
    Hier bin ich zwar fündig geworden aber nun bin ich ein wenig verwirrt.

    Vorab: Das Dokument ist veraltet und wird nicht aktiv weiter entwickelt, es wird stattdessen auf WebPlatform.org verwiesen.

    Wozu sollte man z.B. "contenteditable" in einen meta-Tag setzen oder "dropzone" in einen head-Tag oder, oder, oder...?
    Wo ist der Sinn der Attribute wenn sie augenscheinlich gar nicht bei allen Elementen Sinn ergeben?

    Damit hast du vollkommen recht, der einzige plausible Grund, der mir einfällt, ist Simplizität. Die Spezifikation scheint sich über diesen Umstand zumindest im klaren zu sein:

    While these attributes apply to all elements, they are not useful on all elements. For example, only media elements will ever receive a volumechange event fired by the user agent.

    http://www.w3.org/TR/html51/dom.html#global-attributes

    Im Grunde wird damit zu Gunsten der Einfachheit ein Stück Präzision aufgegeben. Ich persönlich finde das auch unelegant. Aber Einfachheit hat bei HTML5 einen großen Stellenwert.

    1. Hallo!

      Vorab: Das Dokument ist veraltet und wird nicht aktiv weiter entwickelt, es wird stattdessen auf WebPlatform.org verwiesen.

      Ach Gott, noch so eine Stelle die ihre Informationen quer über das Internet verteilt. -.-
      Dank dir!

      Im Grunde wird damit zu Gunsten der Einfachheit ein Stück Präzision aufgegeben. Ich persönlich finde das auch unelegant. Aber Einfachheit hat bei HTML5 einen großen Stellenwert.

      Na Hilfe... Mit dem Zusatz, dass man auch noch eigene Attribute vergeben kann, hätte man konsequenterweise auch gleich alle Attribute global machen können. Was für ein Unfug...

      Danke für deine Erklärung! Ich habe es also nicht falsch verstanden sondern es liegt in der Natur von Html5, dass es an einigen Stellen einfach unsinnig ist. Die vernünftige Weiterentwicklung eines Standards sieht für mich irgendwie anders aus.

      Grüße, Matze

      1. Ich habe es also nicht falsch verstanden sondern es liegt in der Natur von Html5, dass es an einigen Stellen einfach unsinnig ist. Die vernünftige Weiterentwicklung eines Standards sieht für mich irgendwie anders aus.

        Ich habe also nicht falsch vermutet, sondern es liegt in der Natur deiner rhetorischen Frage, dass du dein Urteil bereits vorher gefällt hast und du bloß Bestätigung für deine Ablehnung suchst.

        Im Ernst: Die Entwicklung von HTML5 erfolgt durch eine W3C-Working-Group. Du kannst auf den entsprechenden Mailinglisten und Bugtrackern gerne vorschlagen, die Anwendbarkeit von Attributen einzuschränken, anstatt sie der Einfachheit halber den Universalattributen zuzuschlagen. Dann musst du allerdings schon bessere Argumente vortragen als »unsinnig« und »unvernünftig«.

        Und du musst dich der Frage stellen, welchen praktischen Nutzen es hätte, in der Spezifikation sämtliche Attribute nach Sinnhaftigkeit Elementen zuzuweisen. HTML5 definiert viel spezifische Semantik (d.h. letztlich Browserverarbeitung), der nicht eine entsprechend spezifische Regel in der Syntax gegenüber steht. Das liegt in der Natur der Sprache, das ist so innerhalb von 15 Jahren gewachsen.

        Es liegt auch daran, dass HTML5 sich endlich davon verabschiedet hat, die Sprache normativ über eine prinzipbedingt eingeschränkte, maschinenlesbare Grammatik wie SGML-/XML-DTD, XML Schema oder RelaxNG zu definieren. – Warum das so ist, kannst du bei Interesse in verschiedenen Artikeln nachlesen, die die Geschichte von HTML5 erläutern. – Das schließt natürlich nicht aus, die Syntax natürlichsprachig sehr restriktiv zu definieren. Es erklärt aber, warum die HTML5-Spezifikation Wert auf die präzise Definition der Verarbeitung legt, nicht auf die der möglichen Syntax.

        Mathias

        1. Hallo!

          Ich habe also nicht falsch vermutet, sondern es liegt in der Natur deiner rhetorischen Frage, dass du dein Urteil bereits vorher gefällt hast und du bloß Bestätigung für deine Ablehnung suchst.

          Danke für die Unterstellung! Hätte ich mein Urteil schon vorher gefällt, hätte ich hier nicht verwirrt gefragt. Und nein, ich lasse mir das dagegen sein auch nicht verbieten.

          Im Ernst: [..]
          Und du musst dich der Frage stellen, welchen praktischen Nutzen es hätte, in der Spezifikation sämtliche Attribute nach Sinnhaftigkeit Elementen zuzuweisen.

          Wie gesagt, man könnte konsequenterweise auch einfach alle Attribute global zulassen. Oder...

          Es liegt auch daran, dass HTML5 sich endlich davon verabschiedet hat, die Sprache normativ über eine prinzipbedingt eingeschränkte, maschinenlesbare Grammatik wie SGML-/XML-DTD, XML Schema oder RelaxNG zu definieren. – Warum das so ist, kannst du bei Interesse in verschiedenen Artikeln nachlesen, die die Geschichte von HTML5 erläutern. – Das schließt natürlich nicht aus, die Syntax natürlichsprachig sehr restriktiv zu definieren. Es erklärt aber, warum die HTML5-Spezifikation Wert auf die präzise Definition der Verarbeitung legt, nicht auf die der möglichen Syntax.

          Was spricht eigentlich gegen XML? Und nein, ich habe keine Lust deine private Seite nach einer Antwort darauf zu durchforsten weil sie ganz sicher eher von deinen persönlichen Vorlieben denn von Vernunft geprägt ist. Ich befürchte, dass du eine wahnsinnig wichtige Begründung hast warum man mit Attributen die keinen Sinn ergeben und welche keine Funktion erfüllen irgendwelche Elemente beladen darf, an anderer Stelle aber auf genauso "unsinnige" Attribute der Html5-Syntax zuliebe verzichten muss. Ich sehe da keinen roten Faden.
          Mir leuchtet auch nicht ein was das mit "Einfachheit" zu tun haben soll. Es verwirrt eher und wenn du mir den Sinn hinter "dropzone" für ein Meta-Element erklären kannst, sage ich auch nicht mehr, dass es "unsinnig" ist.

          Grüße, Matze

          1. Hallo,

            Wie gesagt, man könnte konsequenterweise auch einfach alle Attribute global zulassen.

            Das macht man aus vielen praktischen Gründen nicht. Es ist kein Problem, Attribute, die nur einzelne oder wenige Elemente betreffen, auch nur an diesen zu definieren. Es ist hingegen Aufwand und erhöht die Komplexität, Attribute, die an nahezu allen Elementen sinnvoll sind, bei einigen Elementen nicht zu definieren. Das läuft darauf hinaus, die Universalattribute einzudampfen und dafür die Attributlisten von nahezu allen Elementen signifikant zu verlängern bzw. einen Haufen neuer Attributgruppen zu schaffen.

            Und nein, ich habe keine Lust deine private Seite nach einer Antwort darauf zu durchforsten weil sie ganz sicher eher von deinen persönlichen Vorlieben denn von Vernunft geprägt ist.

            Lass mich raten, DIE VERNUNFT™ liegt vermutlich bei dir, alles andere sind bloß persönliche Vorlieben…?

            Ich befürchte, dass du eine wahnsinnig wichtige Begründung hast warum man mit Attributen die keinen Sinn ergeben und welche keine Funktion erfüllen irgendwelche Elemente beladen darf

            Die Begründung wurde mehrfach genannt, es liegt nun an dir, sie zu verstehen.

            an anderer Stelle aber auf genauso "unsinnige" Attribute der Html5-Syntax zuliebe verzichten muss.

            Auf welche Attribute musst du verzichten?

            Mir leuchtet auch nicht ein was das mit "Einfachheit" zu tun haben soll.

            Offenbar weil du mit dem Verfassen von technischen Spezifikationen wie HTML5 und den diversen Anforderungen an solche Dokumente nicht vertraut bist. Kein Problem, die W3C-HTML-WG und die WHATWG helfen dir dabei gerne weiter. Ich empfehle, die Mailinglisten- und Bugtracker-Diskussionen, die Working-Group-Decisions und die Bearbeitungen der HTML5-Spezifikation zu verfolgen.

            Es verwirrt eher und wenn du mir den Sinn hinter "dropzone" für ein Meta-Element erklären kannst, sage ich auch nicht mehr, dass es "unsinnig" ist.

            Alle Elemente können Dropzones sein, wieso sollte man das limitieren? Meta-Elemente unterscheiden sich nicht grundsätzlich von anderen Elementen, sie sind lediglich leer und i.d.R. unsichtbar. Das heißt nicht, dass ein Browser sie nicht darstellen kann und sie nicht mit ein paar CSS-Änderungen sichtbar werden. Ich kann ein Interface bauen, in denen meta-Elemente Dropzones sind. Ich kann z.B. Text oder einen Link auf ein meta-Element ziehen, um es dadurch zu bearbeiten.

            Weil einem auf Anhieb kein konkreter Anwendungsfall einfällt und man bloß spekuliert, dass etwas selten vorkommen wird, sollte es die reine Syntax einer Sprache nicht im Vorhinein verbieten. Deswegen ist HTML5 diesbezüglich bewusst offen. Alles andere macht die Spezifikation und Referenzen schwerer lesbar und wartbar sowie Schemata und Validierung komplexer.

            Im Allgemeinen sehe ich viele Vorteile in strenger (X)HTML-Validierung und möglichst präzisen, maschinell überprüfbaren Syntaxregeln. HTML5 lässt sich aus dieser Sicht durchaus kritisieren im Vergleich zu XHTML 1.0 Strict als DTD bzw. XML Schema. Überhaupt lässt sich HTML5 syntaktisch nur schwer formalisieren.

            Ich habe darüber verschiedene Artikel verfasst. Da du schon herausbekommen hast, dass sie allesamt unvernünftig sind und bloß persönliche Vorlieben widerspiegeln, musst du sie glücklicherweise nicht lesen.

            Mathias

            1. Hallo!

              Lass mich raten, DIE VERNUNFT™ liegt vermutlich bei dir, alles andere sind bloß persönliche Vorlieben…?

              Nein, die fehlende Vernunft sehe ich in deinen Erklärungen (sinngemäß: "das ist so einfacher") die versuchen etwas zu rechtfertigen was unsinnig ist nur weil es in irgendeinem Standard so definiert wurde.
              Und dabei belasse ich es jetzt einfach mal.
              Offenbar haben wir verschiedene Auffassungen was das Thema angeht.
              Bau du weiter deine dropzones in meta-Elemente und ich sage weiter, dass es unsinnig ist.

              Grüße, Matze

              1. Eins noch. Wenn du der Meinung bist mit deinen Artikeln der Aussage "While these attributes apply to all elements, they are _not useful_ on all elements." (auch wenn sich das explizit auf "event handler content attributes" bezog) doch noch etwas entgegen bringen zu können, dann ist das de fakto deine persönliche Meinung/Vorliebe und nichts was etwas an "not useful" ändert und ich deshalb in dem Zusammenhang lesen müsste.

                "not useful" ist "unsinnig", das kannst du schön reden wie du willst.

                1. Hallo,

                  Wenn du der Meinung bist mit deinen Artikeln der Aussage "While these attributes apply to all elements, they are _not useful_ on all elements." (auch wenn sich das explizit auf "event handler content attributes" bezog) doch noch etwas entgegen bringen zu können …

                  Vielleicht solltest du erst einmal mein Posting lesen und verstehen, bevor du mir irgendwelche Aussagen zuschreibst. Ich habe nie behauptet, dass es nutzbringend ist, Attribute an Elementen zu setzen, wo sie keinen Effekt haben.

                  Ich habe lediglich erklärt, warum eine technische Spezifikation wie HTML5 diese Logik nicht in die Syntaxregeln gießt. Damit habe ich deine ursprüngliche Frage beantwortet. Wenn du das von vornherein für Humbug hältst, so verstehe ich nicht, warum du überhaupt gefragt hast.

                  Wenn du mehr über HTML5 lernen willst, so hast du nun genug Hinweise bekommen.

                  Mathias

                2. @@Matze:

                  nuqneH

                  … »» hätte man konsequenterweise auch gleich alle Attribute global machen können. Was für ein Unfug...

                  CSS-Eigenschaften sind in dem Sinne auch „global“. Man kann jedem Element jede CSS-Eigenschaft verpassen. Ist CSS nun auch Unfug?

                  "not useful" ist "unsinnig", das kannst du schön reden wie du willst.

                  Etliche Kombinationen von CSS-Eigenschaften sind auch „not useful“, bspw.

                  { display: inline; margin-top: 3em }   Inline-Elemente haben keine vertikalen Abstände, margin-top wirkt nicht.

                  { display: inline; float: left }    Floats sind Blockelemente, display: inline wirkt nicht (außer als Fix gegen den Doubled-Float-Margin-Bug alter IEs).

                  Sollte man solche Kombinationen deshalb in der CSS-Spec verbieten? (Berücksichtige, dass sich Werte von Eigenschaften auch dynamisch ändern können. Oder per Media-Queries.)

                  Qapla'

                  --
                  „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
              2. Hallo Matze,

                ... dropzones in meta-Elemente ... unsinnig

                ich würde die Sache anders herum sehen:

                Welche Nachteile oder Probleme habe ich als Seitenersteller damit, dass dropzones im meta-Elemente erlaubt sind?

                Welche Nachteile habe ich möglicherweise irgendwann, wenn ein aus heutiger Sicht unsinniges Attribut nicht erlaubt ist?

                Auch die Regeln unserer Sprache interessieren sich auch nicht für den Sinn der gemachten Aussagen. (So können Wahlversprechen wenigstes grammatisch korrekt sein :))

                Gruß, Jürgen

              3. Tach!

                Bau du weiter deine dropzones in meta-Elemente und ich sage weiter, dass es unsinnig ist.

                Es gibt einige Meta-Elemente, deren Inhalt durchaus sinnvoll darstellbar ist, beispielsweise rel="next/prev" als Button/Verweis. Da was zu droppen könnte ein (GET-)Parameter für dieses Ziel werden. Die Leute kommen auf die tollsten Anwendungsideen, wenn man sie lässt, und manche sind auch allgemein oder anwendungsfallspezifisch nützlich.

                dedlfix.