{"action":"created","issue":{"url":"https://api.github.com/repos/CruxFramework/crux/issues/10","labels_url":"https://api.github.com/repos/CruxFramework/crux/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/CruxFramework/crux/issues/10/comments","events_url":"https://api.github.com/repos/CruxFramework/crux/issues/10/events","html_url":"https://github.com/CruxFramework/crux/issues/10","id":67117578,"number":10,"title":"Make CRUX generate w3c compliant HTML","user":{"login":"admtriggo","id":11163759,"avatar_url":"https://avatars.githubusercontent.com/u/11163759?v=3","gravatar_id":"","url":"https://api.github.com/users/admtriggo","html_url":"https://github.com/admtriggo","followers_url":"https://api.github.com/users/admtriggo/followers","following_url":"https://api.github.com/users/admtriggo/following{/other_user}","gists_url":"https://api.github.com/users/admtriggo/gists{/gist_id}","starred_url":"https://api.github.com/users/admtriggo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/admtriggo/subscriptions","organizations_url":"https://api.github.com/users/admtriggo/orgs","repos_url":"https://api.github.com/users/admtriggo/repos","events_url":"https://api.github.com/users/admtriggo/events{/privacy}","received_events_url":"https://api.github.com/users/admtriggo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/CruxFramework/crux/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/CruxFramework/crux/labels/CruxCore","name":"CruxCore","color":"FFFFFF"},{"url":"https://api.github.com/repos/CruxFramework/crux/labels/imported","name":"imported","color":"FFFFFF"},{"url":"https://api.github.com/repos/CruxFramework/crux/labels/Milestone-4.0.0","name":"Milestone-4.0.0","color":"FFFFFF"},{"url":"https://api.github.com/repos/CruxFramework/crux/labels/Priority-Medium","name":"Priority-Medium","color":"FFFFFF"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-08T12:25:50Z","updated_at":"2015-04-08T12:25:52Z","closed_at":null,"body":"_From [brunodep...@gmail.com](https://code.google.com/u/108972312674998482139/) on March 01, 2010 15:57:43_\n\nCRUX uses html tag attributes such as _type, _contenttype, that are not\r\npart of the HTML specification.  When validating a crux project against http://validator.w3.org/ you'll always receive errors because of this\r\n(using the crux project generator batch file, the output project has 18\r\nerrors... one of them because doctype is absent, but the others are mainly\r\nbecause of invalid attributes).\r\n\r\nWould there be another w3c-valid way of doing this? I really appreciate\r\nhaving a 100&#37; w3c valid web project (-:, and some clients could complain\r\nabout html validation... \r\n\r\nCheers\n\n**Attachment:** [crux1.jpg](http://code.google.com/p/crux-framework/issues/detail?id=10)\n\n_Original issue: http://code.google.com/p/crux-framework/issues/detail?id=10_"},"comment":{"url":"https://api.github.com/repos/CruxFramework/crux/issues/comments/90897742","html_url":"https://github.com/CruxFramework/crux/issues/10#issuecomment-90897742","issue_url":"https://api.github.com/repos/CruxFramework/crux/issues/10","id":90897742,"user":{"login":"admtriggo","id":11163759,"avatar_url":"https://avatars.githubusercontent.com/u/11163759?v=3","gravatar_id":"","url":"https://api.github.com/users/admtriggo","html_url":"https://github.com/admtriggo","followers_url":"https://api.github.com/users/admtriggo/followers","following_url":"https://api.github.com/users/admtriggo/following{/other_user}","gists_url":"https://api.github.com/users/admtriggo/gists{/gist_id}","starred_url":"https://api.github.com/users/admtriggo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/admtriggo/subscriptions","organizations_url":"https://api.github.com/users/admtriggo/orgs","repos_url":"https://api.github.com/users/admtriggo/repos","events_url":"https://api.github.com/users/admtriggo/events{/privacy}","received_events_url":"https://api.github.com/users/admtriggo/received_events","type":"User","site_admin":false},"created_at":"2015-04-08T12:25:52Z","updated_at":"2015-04-08T12:25:52Z","body":"_From [tr_busta...@yahoo.com.br](https://code.google.com/u/115454294030253308352/) on March 02, 2010 03:22:18_\n\nHi Bruno,\r\n\r\nThe doctype problem can be easily solved... Just put the doctype declaration on your\r\ncrux.xml page file....\r\n\r\n\r\nThe attributes in the picture are not a problem... The validation you made is\r\nchecking the HTML source received by the browser and not the DOM created by Crux\r\nafter its factories ends the widgets creation. You can see those \\<span> tags as a set\r\nof metadata.... They contains informations that are sent to the crux widgets\r\nfactories... All of those tags are removed from the DOM after factories finishes\r\ntheir job....\r\n\r\nIt is necessary to use \\<span> tags as source of this metadata because HTML is a\r\nclosed set...it can not be extanded. We can not use a tag \\<grid />, for example, on\r\nan HTML page... However, \\<span _type=\"grid\" _onclick=\"...\"></span> is accepted....\r\nThe attributes '_type' and '_onclick' are ignored by the browser on the page\r\nrenderization... On the other hand, if we put an attribute 'onclick', the browser\r\nwill not ignore...it will try to create a handler for a click event. Because of that,\r\nall metadata attributes are preceded by a '_' character.\r\n\r\nThats the Crux approach to create the interface... A set of tags with informations\r\nabout how to create the screen, and a lot of factories (that can be plugged on crux\r\nengine) to interpret those tags and create the widgets on client...\r\n\r\nThat approach makes the size of the javascript file decrease if compared with pure\r\nGWT solution, once the amount of code to create one textbox or a hundred of textboxes\r\nis the same.... You have one textboxFactory that can create textboxes...\r\n\r\nAnd after the screen factory executes, the final result is the same... because all\r\nspan tags are removed and replaced by the widget created...\n\n**Status:** WontFix  \n  **Owner:** tr_busta...@yahoo.com.br  \n  **Labels:** Type-Defect Priority-Medium Component-UI  \n"}}