[whatwg] Thoughts on HTML 5

Jorgen Horstink mail at jorgenhorstink.nl
Sun Dec 21 10:50:36 PST 2008


Hi Giovanni,

I haven't read your entire comment, but with your point eight will  
break backwards compatibility. As far as I know is HTML5 supposed to  
combine old and new. The problem with interfaces is that you can not  
simply change them. That's just a fact we have to deal with.

jorgen

On Dec 21, 2008, at 7:12 PM, Giovanni Campagna wrote:

> Please Note: all the following is my personal humble opinion.
>
> As I discovered lately, the main problem of HTML5 is its design  
> oriented to keep features that are distributed across browsers, that  
> work or that are simple way to solve big problem. Actually, they are  
> a bunch of different features somehow not integrated to the others.
> Instead, programmer (please note, I use the word programmer, not  
> author or web designer) developing *new* application may more like a  
> more structured and logical organization, like XHTML modularization  
> is.
> HTML5 features, summed in big groups, are (in spec order):
> 1) common syntax for the most used datatypes.
> 2) additional DOM interfaces, which include HTMLElement -  
> HTMLCollection - HTMLFormsControlCollection - HTMLOptionsCollection  
> - DOMTokenList - DOMStringMap
> 3) Elements and Content Models
> 4) Element types: metadata - structure - sectioning - grouping -  
> text - editing - embedding - table - forms - interactive - scripting  
> elements
> 5) User agent requirements
> 6) User Interaction
> 7) Communication
> 8) HTML Syntax
>
> Some of these features can be achieved without any of HTML5, for  
> example
> 1) use XMLSchema datatypes
> 2) you don't need HTMLElement: markup insertion, attributes querying  
> can be done using DOM3Core (that in latest browser are even more  
> performant as no parser is involved), events are far better handled  
> by DOM3Events, styling is included by CSSOM
> you don't need collection either: just use appropriate DOMNodeLists,  
> while for DOMStringMap you may use binding specific features (all  
> Object are hash maps in ECMAScript3): it works this way even in HTML5
> 3) use XHTML2, which is extensible because modularized
> 4) metadata is better handled by XHTML2 Meta Attributes module,  
> which fully integrates the RDF module in any elements;
> structure, sectioning, grouping are the same;
> text is very similar: you don't have time, but you can have <span  
> datatype="xsd:date" content="2008-12-21">Today</span> as in HTML5  
> you have <time value="2008-12-21">Today</time>; for progress and  
> meter semantic you can use role attribute (for styling you always  
> use CSS); editing is the same, but you have an attribute instead of  
> an element, so you don't have the issue that ins and del can contain  
> everything, even a whole document (not including <html>);
> embedding is much more powerful as any element can be replaced by  
> embedded content;
> tables are the same (you don't have tables API; but you can still  
> use DOM3Core);
> XForms are actually more powerful than WebForms2, since you divide  
> presentation from data from action (that is implemented  
> declaratively);
> interactive elements are not needed at all: details is better  
> implemented as it is now (ECMAScript3 + CSS3), datagrid is just a  
> way to put data in a tree model: use plain XML for that; command and  
> a in XHTML2 implemented in any element using href attribute; menu is  
> mostly an ul with some style;
> scripting uses XMLEvents and handler: it looks the same, but it is  
> different as it is more event oriented (scripts are not executed by  
> default, they're executed when some event fires)
> 8) HTML syntax: as I said before, use XML for that
>
> There are instead features that are indeed very useful to develop a  
> web application, but are not achievable using other means that HTML5:
> 1) some way to interact with object (please note: object, not embed:  
> object is for plugins, embed for content) : actually this can be  
> done using something like cross document messaging, assuming that  
> object creates a new browsing context (it already does if the target  
> is text/html or application/xhtml+xml), but we need a specification  
> for message syntax
> 2) the binding specific global scope (that is, what object are  
> available in all scopes, if binding supports this); this is normally  
> the window object, but scripts use certain features only on their  
> own browsing context, so that may be moved from that to global  
> scope, removing the whole window object from scope (for current  
> javascript you can write window.window.window.window.window... and  
> get the same as nothing)
> 3) the Window object (which includes window name, window location,  
> cross document messaging, dialog windows)
> 4) Protocol and Content Handlers
> 5) Session and Local storage
> 6) Database storage
> 7) Drag and Drop
> 8) WebSockets
>
> What I am asking now is so to "modularize HTML". copy those features  
> into separate, interoperable modules, removing legacy features (like  
> window.on-whatever event listener)
> A copy of those will remain in HTML5, because browser implement them  
> at the moment, and the HTML5 goal is that all browser implement the  
> same things in the same ways
>
> Instead, some web developers in the future will think that a  
> modularized and less redudant API is more usable, like I personally  
> do, and switch to that, without mixing with HTML5: actually, I guess  
> what a Database API does inside HTML.
>
> Best regards,
> Giovanni Campagna




More information about the whatwg mailing list