Hello,
Currently
MathML attributes mathvariant, displaystyle and scriptlevel [1]
[2] are implemented in WebKit using custom "style resolution"
and "one-glyph rendering" inside the MathML layout code [3] [4]
[5]. These features involve text rendering and interaction with
CSS font-size, so it is difficult to implement them properly and
completely that way. There are known bugs and missing features
right now (e.g. mathvariant transform only applies to
one-character strings, automatic displaystyle/scriptlevel does
not work with fractions, etc)
Several
years ago, Gecko used to do something similar but that was
causing a lot of problems (dynamic update, assertion
failures...). At the end, this is now implemented in Gecko more
reliably by mapping the attributes to internal CSS properties ;
[6] is based on that. When I tried to do something like this in
WebKit three years ago, I was only able to rely on proprietary
-webkit-* extensions exposed to users [7].
So my
questions are:
(1) What
is WebKit's mechanism to implement such stylistic attributes?
(2) Is it
possible to implement internal (i.e. not web-exposed to users)
CSS properties/values in WebKit?
(3) Is it
ok to add more -webkit-* properties/values or should these
properties be standardized at the CSS WG instead?
I
understand answers to these general questions from other browser
project is either use internal properties or standardize them.
Thanks,
Frédéric
PS: For a
concrete example, see [8]. Automatic mathvariant is used for
italic variables while font-size in fractions is calculated
according to displaystyle / scriptlevel rules. The latter is
incorrect (check the attached screenshot) while selection
highlight is broken for the former.
--
Frédéric Wang