Christian: Wieso width, height, size, (v)align, border in XHTML Strict Variante?

Hi,

ich wundere mich nur wieso in der Strict-Variante bei manchen HTML-Elementen einige Attribute wie z.B. align, width, valign, size erlaubt sind, während sie bei anderen (ähnlichen) Elementen nicht erlaubt sind und zudem auch wunderbar durch CSS ersetzt werden können/sollten.

Ich dachte die Strict Variante ist dafür gemacht, um die logische Struktur vom Layout zu trennen, und zwar sauber, und konsequent.

Wieso ist dann align, valign und width im <col>-Element erlaubt, während im <table>-Element nur noch width (und kein align) und im <td> dann schon wieder nur das align, aber kein width mehr erlaubt ist. Ich finde das sehr verwirrend, schlecht, inkonsistent und inkosequent!!

Oder was ja auch sehr gräulich ist: Das border-Attribut ist im <table>-Element erlaubt, in allen anderen (z.B. <img>) aber nicht! Was soll denn das? Wofür gibts denn CSS?
Ok, mit CSS kann wohl keine border-lines zwischen den Zellen machen, sondern nur um den ganzen Table, aber dann soll das W3C halt eine spezielle CSS-Eigenschaften einführen, anstatt das border-attribut nach Strict zu übernehmen.

Das selbe gilt für:
<img width height => CSS
<input size (size im <hr> ist sehr ähnlich, aber wieder nicht erlaubt)

Wäre nett, wenn ihr mal was dazu schreibt!

Gruß
Christian

  1. Hi,

    Ich dachte die Strict Variante ist dafür gemacht, um die logische Struktur vom Layout zu trennen, und zwar sauber, und konsequent.

    ist es auch. Zwar nicht in allen Punkten wirklich konsequent, aber größtenteils schon.

    Wieso ist dann align, valign und width im <col>-Element erlaubt, während im <table>-Element nur noch width (und kein align) und im <td> dann schon wieder nur das align, aber kein width mehr erlaubt ist. Ich finde das sehr verwirrend, schlecht, inkonsistent und inkosequent!!

    Ich nicht. Tabellen zeichnen tabellarische Daten aus. Die Tabellen- und Spaltenbreite kann durchaus die Struktur unterstützen. Ebenso können die Zeilen ohne Gitternetz bei Standardformatierung valign="middle" bei mehrzeiligem Inhalt nur schlecht zugeordnet werden.
    Die horizontale Textausrichtung kann ebenfalls die Struktur unterstützen, indem z.B. Zelleninhalte unmittelbar nebeneinander gesetzt werden. Demgegenüber gehört die Platzierung der Tabelle auf der Seite ausschließlich zum Layout.

    Oder was ja auch sehr gräulich ist: Das border-Attribut ist im <table>-Element erlaubt, in allen anderen (z.B. <img>) aber nicht! Was soll denn das? Wofür gibts denn CSS?

    Rahmen bzw. Gitternetzlinien machen die Struktur einer Tabelle deutlich. Welche Struktur siehst Du bei einem IMG? Natürlich sollte CSS verwendet werden, aber was, wenn CSS nicht unterstützt wird?

    Ok, mit CSS kann wohl keine border-lines zwischen den Zellen machen, sondern nur um den ganzen Table

    natürlich - warum sollte es nicht möglich sein, border für TD zu definieren?

    aber dann soll das W3C halt eine spezielle CSS-Eigenschaften einführen, anstatt das border-attribut nach Strict zu übernehmen.

    *g* - allerdings wurde z.B. target ersatzlos gestrichen.

    <img width height => CSS

    das sind Eigenschaften des Objekts. Abgesehen davon, daß CSS nicht interpretiert werden könnte, finde ich, daß die Auslagerung dieser Eigenschaften für viele verschiedene Bilddimensionen das CSS nur unnötig aufblähen würde.

    <input size (size im <hr> ist sehr ähnlich, aber wieder nicht erlaubt)

    Die Größe von Eingabefeldern kann schon mehr als nur Layout sein, z.B. Anhaltspunkte für die maximal gewünschte Eingabelänge bieten. Die Breite einer Linie ist Layout - eigentlich die Linie größtenteils auch.

    freundliche Grüße
    Ingo

    1. Hi,

      also ich stimme ja teilweise mit dir überein, aber was mich immer noch stört ist das hier: Gibts dafür ne Erklärung?

      Wieso ist dann align, valign und width im <col>-Element erlaubt, während im <table>-Element nur noch width (und kein align) und im <td> dann schon wieder nur das align, aber kein width mehr erlaubt ist

      natürlich - warum sollte es nicht möglich sein, border für TD zu definieren?

      jo, ginge wohl.

      *g* - allerdings wurde z.B. target ersatzlos gestrichen.

      Das finde ich auch so ein Hammer vom WC3. Bei <form> gibts das auch nicht mehr. Viele sagen ja, der User soll selbst entscheiden wie es geöffnet wird (der Link). Bei <a< gehts ja auch einfach mit rechts klick und Kontextmenu. Wenn ich aber die Rückgabeseite eines <form>-Request in nem neuen Fenster öffnen will, was dann???

      Gruß
      Christian

      1. Hi,

        also ich stimme ja teilweise mit dir überein, aber was mich immer noch stört ist das hier: Gibts dafür ne Erklärung?

        Wieso ist dann align, valign und width im <col>-Element erlaubt, während im <table>-Element nur noch width (und kein align) und im <td> dann schon wieder nur das align, aber kein width mehr erlaubt ist

        Das col-Element selbst dient ja (nur) der Festlegung der Präsentation. Insofern ist es schon konsequent, die hierzu erforderlichen HTML-Attribute weiterhin zuzulassen. Und wie ich schon anmerkte, können Formatierungen der Tabellenspalten durchaus als Struktur-unterstützend angesehen werden.

        Wenn ich aber die Rückgabeseite eines <form>-Request in nem neuen Fenster öffnen will, was dann???

        Und was, wenn der User das nicht wünscht?
        Es steht Dir frei, die gleiche Seite mit einer enthaltenen Zusatzinformation aufzurufen oder (ergänzend) Javascript zu verwenden.

        freundliche Grüße
        Ingo

        1. Hallo Ingo,

          Wenn ich aber die Rückgabeseite eines <form>-Request in nem neuen Fenster öffnen will, was dann???

          Und was, wenn der User das nicht wünscht?
          Es steht Dir frei, die gleiche Seite mit einer enthaltenen Zusatzinformation aufzurufen oder (ergänzend) Javascript zu verwenden.

          Nein, eben nicht. Das ist nämlich ein sehr gutes Beispiel, das Christian hier anführt. Bei einem Link ohne target-Attribut kann ich als User tatsächlich frei entscheiden, ob ich den in einem neuen Fenster/Tab öffnen will oder im bereits bestehenden. Bei einem Submit in einem Formular kann ich das nicht, so gern ich es manchmal auch tun würde. Es gibt eben keinen Rechtsklick auf den Submit-Button mit der Option "Im neuen Fenster öffnen". :(
          Mit einem target-Attribut im <form> geht's jedoch - auch wenn dann das Öffnen eines neuen Fensters _erzwungen_ wird, was auch nicht gerade fein ist.

          Schönes Wochenende,

          Martin

          1. Hi,

            Und was, wenn der User das nicht wünscht?
            Es steht Dir frei, die gleiche Seite mit einer enthaltenen Zusatzinformation aufzurufen oder (ergänzend) Javascript zu verwenden.

            Nein, eben nicht.

            Natürlich doch; ich fürchte, Du hast mich falsch verstanden. Als Autor kann ich die gleiche Seite mit einer ergänzenden Rückmeldung ausliefern oder eben ein Popup öffnen. Als User kann mir das Öffnen im neuen Fenster genauso wenig gefallen wie im selben Fenster - auf jeden Fall könnte es mich verwirren.

            freundliche Grüße
            Ingo

            1. Hallo,

              Nein, eben nicht.
              Natürlich doch; ich fürchte, Du hast mich falsch verstanden. Als Autor kann ich die gleiche Seite mit einer ergänzenden Rückmeldung ausliefern oder eben ein Popup öffnen.

              Ja, als Autor hast du natürlich alle Möglichkeiten, klar - aber was meinst du mit "ergänzender Rückmeldung"?

              Als User kann mir das Öffnen im neuen Fenster genauso wenig gefallen wie im selben Fenster - auf jeden Fall könnte es mich verwirren.

              Jaja, einverstanden. Ich wollte eigentlich nur aufzeigen, dass ich als User beim Absenden eines Formulars gar nicht die Möglichkeit habe, das Verhalten zu beeinflussen. Entweder der Autor der Seite zwingt mir ein neues Fenster auf, oder er erzwingt, dass das Ergebnis des Formulars im gleichen Fenster erscheint - ich kann als User auf jeden Fall nicht zwischen den beiden Möglichkeiten wählen.

              So long,

              Martin

              1. Hi,

                was meinst du mit "ergänzender Rückmeldung"?

                Die Frage war:

                die Rückgabeseite eines <form>-Request

                Wenn man ein "Affenformular" benutzt, kann man doch nicht nur Fehlermeldungen hierüber ausgeben, sondern auch eine Bestätigungsmeldung und dadurch auf eine spezielle Rückgabeseite verzichten. Dann erübrigt sich die Frage nach neuem Fenster oder nicht von selbst.

                freundliche Grüße
                Ingo

          2. Tach,

            Nein, eben nicht. Das ist nämlich ein sehr gutes Beispiel, das Christian hier anführt. Bei einem Link ohne target-Attribut kann ich als User tatsächlich frei entscheiden, ob ich den in einem neuen Fenster/Tab öffnen will oder im bereits bestehenden. Bei einem Submit in einem Formular kann ich das nicht, so gern ich es manchmal auch tun würde. Es gibt eben keinen Rechtsklick auf den Submit-Button mit der Option "Im neuen Fenster öffnen". :(

            das ist doch ein eindeutig eine Schwäche der Browser, keine Schwäche des Standards. Aber daran wird schon gearbeitet: https://bugzilla.mozilla.org/show_bug.cgi?id=17754 (aber erst seit 5.5 Jahren) und du kannst es zumindestens in Firefox schon nachrüsten.

            mfg
            Woodfighter

            1. Hallo Martin, Holzkämpfer,

              das ist doch ein eindeutig eine Schwäche der Browser, keine Schwäche des Standards. Aber daran wird schon gearbeitet:

              .. und ausgeliefert: http://daringfireball.net/misc/2005/04/tiger_details#command-return

              Tim

        2. Hi Ingo,

          Das col-Element selbst dient ja (nur) der Festlegung der Präsentation.

          Wer sagt denn sowas?

          Autsch, tut SELFHTML das? „HTML 4.0 [sic!] bietet eine Syntax an, um dem Browser gleich zu Beginn der Tabelle mitzuteilen, wie viele Spalten die Tabelle hat, und wie breit diese sind.“ [SELFHTML81 Spalten vordefinieren]

          In der Spezifikation von HTML 4.01 steht: „Spaltengruppen gestatten Autoren die Erzeugung von strukturellen Bereichen innerhalb einer Tabelle.“ [HTML401 §11.2.4]

          Gunnar

          --
          “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
          1. Hi,

            Das col-Element selbst dient ja (nur) der Festlegung der Präsentation.

            In der Spezifikation von HTML 4.01 steht: „Spaltengruppen gestatten Autoren die Erzeugung von strukturellen Bereichen innerhalb einer Tabelle.“ [HTML401 §11.2.4]

            col hat aber mit Spaltengruppen (Struktur) nichts zu tun.
            Dein Text sagt zu col:
            Das Element COL gestattet Autoren, ein Attribut für mehreren Spalten gemeinsam zu verwenden, ohne irgendeine strukturelle Gruppierung damit zu verbinden. Das Element COL erstreckt sich über die Anzahl der Spalten, die sich die Attribute des Elements teilen werden.

            Beachte insbesondere: ohne irgendeine strukturelle Gruppierung.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. MudGuard,

              col hat aber mit Spaltengruppen (Struktur) nichts zu tun.

              Ähm, ja.

              Gruß,
              Gunnar

              --
              “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
      2. Hallo Christian,

        Wenn ich aber die Rückgabeseite eines <form>-Request in nem neuen Fenster öffnen will, was dann???

        Das funktioniert in meinem Browser hervorragend.

        Grüße
        Roland