...And what if you want to colour just the dot on i? Or just the crossbar on a t? I ask this not to mock what you want to do but to point out that the whole issue is rather tricky.
Just one example, suppose that you want to color the circumflex above
a lowercase i or above a uppercase A: the base letters have distinct
widths (meaning that the diacritic has a different horizontal position),
distinct height (meaning that the diacritic has a different vertical
position), and a distinct contextual effect on its base letter (the
base lowercase i should have its dot removed)...
For solving issues like this, we need to distinguish carefully between the markup level (Philippe's concern, it seems) and the rendering level (John's concern). The markup needs to find a way to represent this kind of separate formatting (and what about other changes - bold, italic, size changes, even a different font face?) without using problematic Unicode sequences. Fonts may have to deal with many tricky issues to support this. Technically both of these are outside the scope of Unicode, but Unicode may be called on to provide the glue by which they can hold together.
A very tentative suggestion for some glue: a character which can take combining marks but whose function is to throw those marks back on to the preceding base character, preceding any markup. This would have to be a zero width base character, not a format character or a combining mark to avoid defective sequences; it would also have to be default ignorable. Or maybe there is an existing character which can be reused e.g. WJ (same counterarguments as recently on the bidi list of course). A very simple implementation could use the backspacing trick Philippe used to position the diacritics roughly. A more adequate one would be a difficult problem for font developers, but one that is soluble in principle.
-- Peter Kirk [EMAIL PROTECTED] (personal) [EMAIL PROTECTED] (work) http://www.qaya.org/

