HTML6
HTML6 copied to clipboard
Needs client side polyfill
I've made a little parser in JavaScript. It's not finished yet. http://github.com/m93a/nml-parser
EDIT: Updating to 1.1.0, now it can export DOMDocument.
It's just a parser but it can be used:
- to make a html6-html5 convertor
- as a node.js html6 module
- in a browser extension for html6 compatibility
- to use NML in ajax, instead of XML
- to make your disk 20kB smaller
- and much more...
Looks really cool. Hope to see more :)
But before html6-html5 convertor, we need a CSS parser. And maybe a JS framework.
Why do we need a CSS parser? CSS works fine with XML. And why a whole framework?
OK, we can use xhtml with both html and form namespace prefixes set to http://www.w3.org/1999/xhtml. There is just a problem with splitting media tag to img, video and audio.
We have to:
- rewrite all the CSS selectors (
media -> img, video, audioand#foo -> [id=foo]) - make
document.getElementsByTagNameNS('media',"http://www.w3.org/1999/xhtml");select img, video and audio
Oh and also there's a problem with programmatically creating elements with ns prefix. That's impossible!
This comment was editted 5 times.
CSS selectors need to be general and work across XML. CSS doesn't have predefined elements you can select for example. You can style those elements fine right now: http://jsbin.com/iCuDEYE/2/edit
The only thing I can think of is adding 1 selector to make html\:foo a little nicer to write. I'm not sure what you mean by your 2nd example of the ID.
The JS thing should just be part of the polyfill.
I don't mean creating a new spec - our problem is that all media tags will be replaced by a) img b) audio or c) video tag so your styles won't match any element. I don't see any way to make media tag work without changing DOM. That means that the convertor has to change every html:media to img, video or audio.
And the second problem with css is that #foo doesn't work with xml (in all modern browsers - that means all the browsers but MSIE).
Do you understand?
EDIT: Oops, to fast reading. I thought you said that CSS works across all the XML. My fault, correcting the comment.
I've just found an alternative way
- Leave
html:mediaunchanged - Add a tag like
abc:xyzat the end of the body element - Choose the type of media tag (image, video or audio)
- Create image, video or audio tag as a child of
abc:xyz - Make the video/audio/image tag cover the media using javascript and css absolute position
Pros:
- no css modifications needed
- no JS framework needed
Cons:
- not a valid xHTML
abc:xyzcan be still detected using JavaScript- media's computed styles have to be checked every hunderth of a second (not exactly :D)
- no animation and transition support
After a short break (not even a year), I've got a new update! HTML6 Polyfill Beta can be found at m93a/nml-polyfill.