RE: <q> element, XHTML2, and CSS

[this is a personal response]

Personally... I use <q> extensively too.

The problem isn't English vs. multilingual, although the argument has tended to use that as a crutch. This isn't really about languages at all. 

By the way, I made a quick test page at:

In HCG the problem was cited as being with non-English quotes and the various styles of quotes associated with different languages, but the problem is more general.

In XHTML 2.0 the problems cited in I18N's discussion or I18N's discussions with HTML-WG were:

1. Specifying various quote styles for the user-agent to render goes against the general trend of expressing the rendering in XSL or CSS and only encapsulating the semantic meaning in the markup.

2. Experience with list styles (for various languages) was that these were sporadically, if ever, implemented, and that implementations were at best inconsistent and that <q> was similar in its requirements.

3. Embedding of languages was actually complex. In some cases a proper implementation would have the quotes rendered in the style of the surrounding element's language, not of the <q> element itself.

4. CSS has an attribute for it.

5. Internet Explorer in particular (and presumably some other browsers) have never supported rendering quotes for <q> and so many content authors either avoid <q> or put the quotes into the document in addition to the <q>.

The I18N Core WG accepted removing the quotes requirement based on argument (1), coupled with argument (4) and the problems caused by existing practice (5).

CSS 2.1 provides (or provided, if they remove it) a 'quotes' keyword with which one can designate sets of opening and closing quotes. The example given uses the :lang pseudo-attribute to assign these in a language sensitive manner to the <q> element.

I question removing the 'quotes' feature from CSS, since it *is* implemented (Mozilla implements it, for example) and, unlike obscure list styles, it doesn't require a lot of arcane linguistic research to implement. It merely provides the user the opportunity to specify the quote strings to use. Implementation really shouldn't be that hard.

Internet Explorer, notably, does not render the quotes---and it doesn't implement the quotes property in CSS2.1 either. If you render quotes in your stylesheet using :before and :after pseudo-attributes to overcome this (the cited workaround), Mozilla (correctly) suppresses the quotes attribute (and IE *still* doesn't render the quotes). Thus content authors have probably created a lot of content with quote characters in the text stream and not generated from markup to overcome this.

NB> ":quotes" could be considered a special case of :before/:after and could in theory be applied to any element, not just <q>. In fact, they are implemented (in Mozilla at least) only for the <q> element.

It is important to note that the :quote attribute is an explicit styling decision made by the stylesheet designer.

One alleged problem cited in this discussion is the problem of multilingual documents (a French quote embedded in an otherwise German text, for example). It is true that is complex, however we aren't actually talking about multi-language embedding here, just basic rendering in one language at a time. 

If we accept that XHTML doesn't render the quotes automatically, then providing for rendering via CSS seems like a good idea, actually. There is the problem that the embedded quote should often be quoted in the language of its containing element, rather than its own language, which represents a difficult problem to solve via CSS...

Leaving aside the need to boil the ocean for multi-language embedding, the general problem is that of providing inherent support for multiple language formatting and rendering in specifications. In XHTML 2.0, the argument for removing the explicit generation of quotes was that content authors couldn't count on the user agent rendering the right quotes (for their document language) in the right way at the right time and so either avoided the <q> element or typed in the quotes anyway. It was also contends that implementers would have a hard time (as with list styles) implementing a large number of language-related quote style variations---leading inevitably to non-implementation (again, as with list styles). I think these are both valid arguments for not specifying the rendering in XHTML and especially XHTML 2.0.

However, removing *both* the explicit rendering in XHTML *and* the controls for rendering quotes in CSS seems like throwing out every part of the solution along with the problem. I don't like the fact that I can build the semantic relationship of the <q> element into the document but then have to create the physical manifestation of it in the text of the document too. Of course, everyone is free to use q:before and q:after to render their quotes (as long as you manage embedding yourself), but why *not* provide for a language independent pseudo-attribute to get the same result we already have today?

The I18N Core WG felt that we were steadily losing the argument for quotes at the markup level (and that this was actually a good thing). Better to focus on best practices, which include putting the quotes into the document text and suppressing automatic rendering. If CSS also removes support for quoting under user control, then we are putting the burden entirely on the content author and the best practice will be to put quotes in the document... at which point the <q> element will just be shorthand for <span>.

Hence: a FAQ *is* called for, but I also think that CSS should think twice about removing :quotes.


Addison P. Phillips
Globalization Architect, Quest Software
Chair, W3C Internationalization Core Working Group

Internationalization is not a feature.
It is an architecture. 

> -----Original Message-----
> From: Dan Connolly []
> Sent: Friday, July 22, 2005 10:21 AM
> To: Addison Phillips
> Cc:;; Hypertext CG
> Subject: Re: <q> element, XHTML2, and CSS
> On Fri, 2005-07-22 at 09:34 -0700, Addison Phillips wrote:
> [...]
> > 2) to coordinate additional discussions as appropriate to address this
> issue.
> I'd sure like to see test materials.
> I find the <q> element really useful and it works as expected in all
> the tools I've tried; I'd hate to see it go. But my experience is
> all with English.
> Do you have any pointers to examples that don't work as expected?
> Do you know of any open bugs against konqueror or mozilla?
> --
> Dan Connolly, W3C
> D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E

Received on Saturday, 23 July 2005 19:04:24 UTC