[css3-text; css3-fonts] Uppercasing ß 2011 edition

Hi,

I've got an edge case for text-tranform:uppercase when the to uppercased text contains an "ß".

As you may know ß (U+00DF) is a weird character used in some of the german alphabets. Its peculiarity stems from the fact that it started as a ligature and then morphed into a character of its own. But it never got an uppercase counterpart. Common usage in german ß-using scripts are these rules:

toupper("ß") = SS
toupper("ß") = SZ  // somewhat more exotic

Both rules are contained in the Unicode database and browser support is mostly flawless.

 
The edge case: There are some contexts in which it is preferable not so change the chars while uppercasing. Gravestones are an example. Legacy documents. Legal documents, concerning names, like identify cards. On my german identity card my name is written as "TIM TEPAßE", a weird mixture of upper and lower case characters.

In this case the lack of a capital ß came to light. For this reason alone the code point U+1E9E for a capital sharp S was encoded in Unicode 5.1. It's a code point which is not a target of toupper(). And for the time being it's a code point without a glyph in the most fonts. But support is slowly growing.

So, I thought about revamping my dormant homepage. Somewhere I'd like to have the following DOM:

<footer>
  ...
  <address>A page by <a href="...">Tim Tepaße</a>.</adress>
</footer>

.... and in the layout section I thought of something like this:

address > a {
  text-transform: uppercase;
}

(Ok, something more complex, of course.)

You can anticipate my thinking: If there's a new character in town and there's a usage of writing names not using the traditional uppercasing: why shouldn't I use this in the web? But for reasons of machine readability I'd rather not have "TIM TEPA&#x1E9E;e" in my DOM but the titlecase'd variant.

text-transform: uppercase fails to fullfil this wish. Frankly I don't know how this mini problem could be solved in the CSS ecosystem. A new value for text-transform clearly would be overkill; a new property too. CSS 3 Fonts has some new properties for picking ligatures out of fonts, but then the new capital sharp S isn't a ligature but a character. Or my understanding of OpenType features is just lacking.

Any ideas?


– Tim

Received on Wednesday, 9 November 2011 08:30:26 UTC