Re: Final thoughts on <q>

Ian Hickson wrote:
> [...] my impression is that the best thing for us to do is to say that <q>
> should get punctuation marks like HTML4 says [...]

HTML4 says this:

[[[
Visual user agents must ensure that the content of the Q element is rendered
with delimiting quotation marks.
]]]

It doesn't specify which character must be used. This aspect is not
interoperable in the main browsers, as documented in recent discussion.

[[[
User agents should render quotation marks in a language-sensitive manner
(see the lang attribute). Many languages adopt different quotation styles
for outer and inner (nested) quotations, which should be respected by
user-agents.
]]]

The reference to lang gives no UA requirements for what the
"language-sensitive manner" is for *any* value of the lang attribute.
Elsewhere in this thread, the differing conventions within each language,
the fact these change over time and the funkyness of the rules for several
major languages (such as French and Russian) seem to make this requirement
impossible.

So, what are UAs supposed to implement? At the moment, they are not
interoperable even for the basic case. In particular, IE7 does not generate
quotation marks.

> [...] since within a year all the browsers will do that [...]

With IE8 doing different things for some selection of languages, the
"language-sensitive" aspect will not be interoperable.

If HTML5 is to make <q> generate quote marks, it will need to specify what
UAs are supposed to do:

* I imagine specifying and implementing <q> to generate quote marks for
every language used on the web would be impractical.
* If we say it always generates English quotes, that's hardly fulfilling the
goal of internationalisation.
* If we enshrine one convention in each of 5 major languages, that may not
be an 80% solution. (It only solves a portion of the cases in each of a
portion of the languages used on the web.)

> [...] and then to encourage authors to use CSS to style their quote marks.

Given how most websites use <table> for layout and <font> for phrase markup,
this seems unlikely to won't happen. Indeed, the low updake of <q> confirms
that it hasn't happened so far.

> Authors are still free to avoid using <q> and just use quotation marks
> directly in their markup if they desire.

True. However, wrapping an element around quoted text offers authors greater
flexibility for styling and document semantics. At the moment, authors can't
use <q> for this due to its unusual side-effect of generating quotation
marks outside of the 2 most popular browsers at this time (IE6 & IE7).

> The backwards-compatibility direction is a fundamental principle of the
> HTML5 work.

As the uptake of <q> is so low and the market leading browser doesn't
generate quotes, now seems like the least damaging time make <q> more useful
for authors. We could score several goals with one ball by removing the
automatic generation of quotation marks on <q>:

* Simplifies the UA requirements, especially for internationalisation.
* Removes a point of low interoperability from the web.
* <q> becomes consistent with other phrase-level elements.
* More predictable for authors to use (works like <b>, <em> and so on).
* Authors can continue current practice of writing quotation marks
themselves but can now use <q> for styling quoted text more easily.
* <q cite> provides cross-referencing without the quote mark side-effect.

-- 
Ben 'Cerbera' Millard
<http://projectcerbera.com/web/study/>

Received on Wednesday, 5 November 2008 07:33:36 UTC