Yes, that's the 'interesting' part. But the default, new templates are standards mode.

-John

On Feb 11, 2008, at 5:57 PM, "Kevin Brown" <[EMAIL PROTECTED]> wrote:

Is this universally true? I was under the impression that Blogger's
templates could have different doctypes.

On Feb 11, 2008 5:16 PM, John Panzer <[EMAIL PROTECTED]> wrote:

One more (future) container for the list...

On Feb 9, 2008 5:44 PM, Bruno Bowden <[EMAIL PROTECTED]> wrote:

I was going to make the same point about inlining but John beat me to it
;-).

Inlining cajoled gadgets is going to force us to switch to standards
mode.
All the major OpenSocial partners use standards mode with the exception
for
Orkut (sorry guys). 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";>


Blogger (Blogspot) pages: 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";>



On Feb 9, 2008 3:10 PM, John Panzer <[EMAIL PROTECTED]> wrote:

If a container does inlined cajoled gadgets, they'll need to match the doctype of the container, no? Blogspot in particular is interesting
here...

-John

On Feb 9, 2008, at 1:22 PM, Paul Lindner <[EMAIL PROTECTED]> wrote:

On Fri, Feb 08, 2008 at 07:36:57PM -0800, Kevin Brown wrote:
Unfortunately, Quirks mode is required by the spec. See Item 6
under
"Compliance" at http://code.google.com/apis/gadgets/docs/spec.html .

That's really unfortunate.  Right now you have a great opportunity
to
make a clean break towards standards mode.  People are going to be
rewriting their Apps for Caja, plus they'll be customizing UI etal
for
each new platform.



This issue has been brought up numerous times in the past, but
there hasn't
been a resolution on it yet. The only reason for this is that many
(if not
all) existing gadgets have to be updated to use standards mode
since the
original iGoogle site used quirks mode.

Where are these discussions taking place?  Internal to Google I
assume?

Has anyone actually tried, say the top 100 apps rendered in
standards
mode?  I really doubt that it's that much of a problem.

Many people (myself included) have attempted to move it towards
standards mode, but so far nobody's come up with a viable solution
for backwards compatibility.

How about this:

* Always render iGoogle gadgets using legacy gmodules.com.
* New widgets (those using opensocial or other new technologies)
will
 be sent through a Shindig based server.
* Mark quirks mode deprecated with a sunset of 1 year from now.

Alternate solutions:

1. If Gadget XML contains proper xmlns namespace then use standards
  mode, other wise quirks mode

   <Module xmlns:gadget="http://shindig.apache.org/ns/0";>

2. Allow developer to specify rendering at the top of the Gadgets
  XML..

  <?xml ... ?>
  ....declaration goes here ....


We should really try to fix this problem if we can.

--
Paul Lindner
hi5 Architect
[EMAIL PROTECTED]



Reply via email to