Formulare: HTML 5?

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 30.04.2011, 14:32:20

Hat sich jemand schon mal Details angesehen oder einen Prototypen gebaut?
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 30.04.2011, 14:40:20

Nein ich hatte noch keine Zeit und noch keinen Anwendungsfall. Im Rahmen des Remake meines Hauptsystems soll allerdings Html5 zum Einsatz kommen, spätestens da werde ich mich dem Thema widmen, das kann aber noch ein paar Wochen bis Monate dauern, meine Prüfungen liegen dazwischen.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 30.04.2011, 21:02:14

An dich dachte ich jetzt auch weniger ... ;)
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 30.04.2011, 21:57:05

Wollte mich schon lange damit auseinandersetzen, bin dank den Prüfungen nächste Woche aber noch nicht dazu gekommen...

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 30.04.2011, 22:07:08

Nur keine Eile. Mir ging es nur darum, dass das Thema nicht im Sand verläuft. :)
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 10.05.2011, 15:08:14

So, ich habe jetzt einmal eine Liste von den neuen Attributen und Eingabefeldern gemacht (und somit auch von den neuen Taglibs...).
Offen wäre dann u.a. nach wie vor die Geschichte mit den Feldern außerhalb des form-Tags und die Validatore für die min, max und step Attribute (siehe Ende des Zitats).
HTML 5 Formulare

--------------------------------------------------------------------------------
Globale Attribute: accesskey, class, contenteditable, contextmenu, dir,
draggable, dropzone

contenteditable: "true", "false", "", nichts
contextmenu: id
dir: "ltr", "rtl", "auto"
draggable: "true", "false"

--------------------------------------------------------------------------------
Attribute: name, disabled, form, autocomplete, autofocus, list, maxlength,
pattern, readonly, required, size, placeholder, value, type, min,
max, step, multiple, formaction, formenctype, formmethod,
formtarget, formnovalidate, height, width, alt, src, type
+ Globale Attribute

Alle Attribute: (= neue Whitelist)
name, disabled, form, autocomplete, autofocus, list, maxlength, pattern,
readonly, required, size, placeholder, value, type, min, max, step, multiple,
formaction, formenctype, formmethod, formtarget, formnovalidate, height, width,
alt, src, type, accesskey, class, contenteditable, contextmenu, dir, draggable,
dropzone

disabled: "disabled", "", nichts
form: id
autocomplete: "on", "off"
autofocus: "autofocus", "", nichts
list: id
maxlength: 0 >
readonly: "readonly", "", nichts
required: "required", "", nichts
size: 0 >
pattern: http://dev.w3.org/html5/markup/datatype ... ta.pattern
min, max, step: siehe Attribut
formaction: URL
formenctype: "application/x-www-form-urlencoded", "multipart/form-data",
"text/plain"
formmethod: "get", "post"
formnovalidate: "formnovalidate", "", nichts

--------------------------------------------------------------------------------
http://dev.w3.org/html5/markup/datatype ... .data.date

[YYYY]: vier oder mehr Zahlen für das Jahr
[MM]: zwei Zahlen für den Monat
[WW]: zwei Zahlen für die Woche
[DD]: zwei Zahlen für den Tag

date: [YYYY]-[MM]-[DD], nach http://tools.ietf.org/html/rfc3339
month: [YYYY]-[MM]
week: [YYYY]-W[WW]

time: [HH]:[MM]:[SS].[SS], nach http://tools.ietf.org/html/rfc3339
[HH] -> Stunden (zwei Zahlen)
[MM] -> Minuten (zwei Zahlen)
[SS] -> Sekunden (zwei Zahlen) - Optional?!
[SS] -> Kommastelle der Sekunden (zwei Zahlen) - Optional?!

--------------------------------------------------------------------------------
Neue Eingabetypen: (Tag: input, Attribut: type)

*) image
Neue Attribute: [Globale Attribute], formaction, autofocus, formenctype,
formmethod, formtarget, formnovalidate, height, width

*) file
Neue Attribute: [Globale Attribute], autofocus, required, multiple

*) submit
Neue Attribute: [Globale Attribute], formaction, autofocus, formenctype,
formmethod, formtarget, formnovalidate

*) color
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, value

value: #000000
(Validator: /\#[0-9a-f]{6}/i)

*) date
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (integer), readonly, required, value

min, max, value: date

*) datetime
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (float), readonly, required, value

min, max, value: dateTtimeZ oder dateTtime-time

*) datetime-local
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (float), readonly, required, value

min, max, value: dateTtime

*) email
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, maxlength, pattern, readonly, required, size, placeholder,
(multiple, value|value)

value: E-Mail

*) month
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (integer), readonly, required, value

min, max, value: month

*) number
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (float), readonly, required, value

value: float

*) range
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (float), value

value: float

*) search
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, maxlength, pattern, readonly, required, size, placeholder, value

*) tel
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, maxlength, pattern, readonly, required, size, placeholder, value

*) time
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (float), readonly, required, value

min, max, value: time

*) url
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, maxlength, pattern, readonly, required, size, placeholder,
value

*) week
Attribute: [Globale Attribute], name, disabled, form, autocomplete, autofocus,
list, min, max, step (integer), readonly, required, value

min, max, value: week

--------------------------------------------------------------------------------
Neue Tags:

form:color, form:date, form:datetime, form:datetime-local, form:email,
form:month, form:number, form:range, form:search, form:tel, form: time,
form:url, form:week

form:datalist, datalist:option

--------------------------------------------------------------------------------
Neue Validatore:

ColorValidator, DateValidator, DateTimeValidator, LocalDateTimeValidator,
MonthValidator, WeekValidator, TimeValidator, URLValidator

Evtl. würden sich auch DateValidator, DateTimeValidator, LocalDateTimeValidator,
MonthValidator und WeekValidator zusammenfassen lassen?

Für die min, max und step Attribute sehe ich folgende Möglichkeiten:

a) die entsprechende Validatore (DateValidator, NumberValidator, ...) beachten,
wenn vorhanden, die Attribute

b) drei weitere Validator: MinimumValidator, MaximumValidator, StepValidator
Diese müssten dann eben je nach type Attribut entscheiden, wie der jeweilige
Wert validiert werden müsste. Dann müsste man aber bei neuen Formularfeldern
auch diese Validatore anpassen, was vermutlich ungünstig ist...

c) entsprechende Validatore: MinNumberValidator, MaxNumberValidator,
StepNumberValidator, MinDateTimeValidator, MaxDateTimeValidator,
StepDateTimeValidator, ...

Wobei das dann 24 Validatore wären... auch keine tolle Lösung.
Gibt es noch andere Vorschläge?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 10.05.2011, 15:45:10

Andere Vorschläge nicht direkt, mich würde aber interessieren was das APF aus Attributen ohne wert macht?

Code: Alles auswählen

<... disabled>

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 10.05.2011, 17:47:03

Attribute ohne Wert werden in XHTML doch ohnehin nicht erlaubt (siehe disabled="disabled"). Der Parser des APF kann jedenfalls Attribute ohne Wert nicht verarbeiten.

@Well: danke für deinen Input, ich werde mir das zeitnah zu Gemüte führen und kommentieren. Die nächsten beiden Tage bin ich aber leider unterwegs...
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 10.05.2011, 17:49:24

In HTML5 ist das aber durchaus zulässig, und ich habe vor die Hauptseite in Zukunft komplett auf Html5 auszuliefern, und das APF sollte denke ich nicht auf XHTML beschränkt bleiben...

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 10.05.2011, 19:51:05

Ich seh mir mal an, was am Parser geändert werden müsste. Das sehe ich aber zeitlich eher für 1.15.
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Formulare: HTML 5?

Beitrag von MrNiceGuy » 10.05.2011, 22:25:19

Irgendwann habe ich glaube ich mal eine Diskussion angestoßen, Features für das APF 2.0 zusammen zu tragen. Ich gebe zu: Ich habe selber irgendwann den Faden verloren und da nicht mehr weitergemacht, aber ich bin mir sicher, dass ich folgende Idee bereits damals hatte, auch wenn sie vielleicht noch nicht hier aufgenommen war:

Meine Idee wäre eine komplett abstrakte Version des Outputs in Form von XML. Dadurch würde nicht nur die Verarbeitung des Outputs mittels Ajax vereinfacht werden, sondern zeitgleich die Anbindung externer Software vereinfacht. Für die Ausgabe zum Browser schwebt mir dann ein Manager mit verschiedenen Treibern vor, ähnlich wie der ConfigurationManager. Sprich: Der Content ist abstrakt und wird nur mittels des entsprechenden Treibers umgesetzt. Ich bin zwar nicht so 100%ig sicher, ob das ohne größere Probleme möglich ist, aber grundsätzlich sollte es machbar sein - mit Datenbanken und Konfigurationen hat es ja schließlich auch geklappt. Damit würde man sicher auch einen Meilenstein setzen, was Frameworks angehen, da eine ungeheure Flexibilität entstünde. Standard-Treiber sollte entsprechend XML/XHTML sein, aber eben auch HTML4/5!?

Da es sich bei dieser Idee um eine extremeUmstellung des gesamten APF handelt würde ich es entsprechend für 2.0 richtig genial finden, was haltet Ihr davon!?
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 10.05.2011, 23:27:18

Ich weiß nicht, ob ich deine Idee richtig verstanden habe ...

... aber im Grunde kann man doch selber entscheiden, ob XML, XHTML oder HTML 4/5 ausgeliefert werden soll (je nachdem eben, wie man sein View bestückt?!)... Afaik sind ja auch die von den Taglibs generierten Tags HTML 4/5 valide (der / am Ende eines einzelnen Tags ist dort ja optional)?!

Für externe Anwendungen würde ich, wenn gewünscht, dann eher eine Art API mit Frontcontroller-Aktionen verwenden (o.ä.) ... Das Ausgabeformat kann man dort aber ja auch wieder selber angeben...

Bei deiner Idee müsste man dann ja die "XML-Seite" nochmals parsen und zu XHTML / HTML 4/5 umbauen ... würde das nicht irre viel Performance ziehen?

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Formulare: HTML 5?

Beitrag von MrNiceGuy » 11.05.2011, 08:48:42

Das ist die Frage, die ich nicht genau beantworten kann. Grundsätzlich hast du es aber fast verstanden, wie ich es meinte. Mir ist heute morgen in der Bahn allerdings eingefallen, dass ich einen kleinen "Fehler" in meinem Gedankengang habe: Grundlage sollte natürlich kein XML ansich sein, sondern ein Daten-Objekt, dass dann mittels Manager/Treiber zur entsprechenden Ausgabe portiert wird.

Hintergrund ist: Man kann zwar aktuell selber entscheiden, welche Form man ausgeben möchte, muss dabei aber eventuell Ausnahmen berücksichtigen und für alles eigene Templates vorhalten. Gäbt es eine generische Schnittstelle, könnte man einfach über einen kleinen Schalter (z.B. übergebener Parameter) die Ausgabe in XML, HTML, XHTML oder was auch immer umschalten, ohne hierfür extra View-Templates vergeben zu müssen. Gerade im Bezug auf AJAX-Anwendungen fände ich diese Möglichkeit wirklich gut.

Allerdings ist es halt die Frage, ob es performance-technisch überhaupt möglich ist das ohne großen Overhead zu realisieren, allerdings wird das APF aktuell ja ohnehin schon als Objekt-Baum dargestellt und entsprechend geparsed, dies würde ja im Grunde "nur" durch eine etwas umfangreichere Berechnung ersetzt und dürfte damit eventuell noch im Rahmen liegen!?
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 11.05.2011, 16:06:36

Ich glaube das geht etwas an dem Thema hier vorbei ;)
Wenn ich dich richtig verstehe, willst du das gesamte Html als DOM Objektbaum parsen und vorhalten, sodass man wie mit js auch auf einzelne container zugreifen kann?
Klingt zwar interessant, halte ich performancetechnisch aber für nicht realisierbar, wenn man nicht deutliche Einbußen hinnehmen will....

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Formulare: HTML 5?

Beitrag von MrNiceGuy » 12.05.2011, 08:26:00

Es geht dabei ja nichtmal um den HTML-Baum, sondern um einen Objekt-Baum vom APF - vollkommen abstrakt dargestellt. Aus diesem Baum soll dann mittels Treiber entsprechend zu HTML, XML oder was auch immer geparsed werden. Aktuell wird ja ohnehin ein Objekt-Baum genutzt, nur dass hier nicht jedes Element enthalten ist. So viel mehr Berechnungen sollten es eigentlich nicht sein!? Hängt allerdings auch ein wenig von der generellen Gestaltung ab, wenn man jedes noch so kleine Element als Objekt präsentiert, wird es natürlich sehr schnell sehr groß, wenn man hingegen bestimmte Elemente in komplexe Irgendwas-Konstrukte (HTML, XML oder was auch immer) umwandeln ließe, wäre das schon wieder relativiert. Ich denke hierbei an Elemente wie z.B. ein Menü, hier würde ich nicht jedes DIV und was weiß ich als Container-Objekt abhandeln, sondern eher ein abstraktes Menü-Objetk erstellen, aus dem dann mittels Treiber ein entsprechendes, komplexes DIV-Konstrukt generiert wird. Wichtig ist hierbei denke ich eine gute Abstraktion mit einem Default-Fallback und der Möglichkeit den Treiber um eigene Elemente zu erweitern (mit Hilfe von Templates und Controllern zum Beispiel).

Geht ein bisschen am Thema vorbei, aber so ist das in Diskussionen nunmal :)
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast