This is a posting I made on the shindig-dev list - this post is to bring the issue to a wider audience. Gadget run in quirks mode (with no DOCTYPE) due to historical reasons. This is to raise awareness that we need to migrate to standards mode, what's driving that decision and how we could go about it.
Currently the gadget specification defines gadgets as running in quirks mode: http://code.google.com/apis/gadgets/docs/spec.html CAJA INLINING Inlining cajoled gadgets is going to force us to switch to standards mode. As the inlined gadget will have to the same DOCTYPE as the container page. All the major OpenSocial partners use standards mode with the exception for Orkut. Complete list of container DOCTYPEs is at the end. If an author has to modify their gadget for caja, it makes sense to convert to standards mode too. This avoids hitting developers with repeated requests for changes or suffering the long term problems of adopting quirks mode. BACKWARDS COMPATIBILITY This was the problem that Kevin raised. A gadget should be able to elect to be rendered in standards mode. If a gadget doesn't request standards mode, then like a page without a DOCTYPE, it's shown in quirks mode - just the same as how gadgets are rendered at the moment. Mix and match of modes is possible since it's inside an iframe: http://brunobowden.dreamhosters.com/gadgets/examples/strict.html Inlined Caja would use the DOCTYPE of the container. If a container wants to do inlining, then I believe it MUST use standards mode. SYNTAX We should not let gadgets specify the full doctype due - that would be ok for iframes but it's impossible with inlining. Instead use a generic boolean: <Content standardsMode="true"> ... </Content> If standardsMode is specified, then the DOCTYPE as added. If the attribute is missing, then the container can do what it likes. This allows it to be opt-in at first but still gives the container flexibility to migrate later. If a gadget developer opts out by using standardsMode="false", then it's always rendered in an iframe with no DOCTYPE. We're discussing a similar syntax for Caja. QUESTIONS How constrained should containers on selecting a DOCTYPE? Obviously it should be standards mode but since gadget developers are going to have a hard time coding to different DOCTYPEs, it would be easier for the container to standardize. I'm not familiar enough with the differences between DOCTYPEs to evaluate this. For standards mode rewriting, should we be stricter again and specify XHTML too? I need to check whether the output from Caja will be XHTML compliant, it may be a requirement for the input too. CONTAINER DOCTYPES Wikipedia documents the browser support for all DOCTYPEs http://en.wikipedia.org/wiki/Quirks_mode. I'm glossing over the "almost standards" mode for IE. The "html" has been lowercased in all DOCTYPEs to make it easier to read. Complete list of DOCTYPEs by container: HTML: Plaxo Profile - Standards <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> Friendster Profile: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http:// www.w3.org/TR/1998/REC-html40-19980424/loose.dtd"> LinkedIn Profile: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// www.w3.org/TR/html4/loose.dtd"> Orkut Profile: Quirks <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> Blogger blog: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/ TR/html4/strict.dtd"> iGoogle: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/ TR/html4/strict.dtd"> XHTML: Facebook Profile & Canvas chrome: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Hi5 Sandbox Profile: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> MySpace Profile: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Salesforce.com: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Ning OpenSocialDemo: Standards <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/ TR/xhtml11/DTD/xhtml11.dtd"> - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Implementing OpenSocial Containers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/opensocial-container?hl=en -~----------~----~----~----~------~----~------~--~---
