- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 04 Jan 2010 00:02:15 -0500
- To: Brad Kemper <brad.kemper@gmail.com>
- CC: www-style list <www-style@w3.org>
On 1/3/10 8:42 PM, Brad Kemper wrote:
>> p::text("f") { color: blue; }
>>
>> and the text contains the word "fluoride" in a font with an "fl"
>> ligature. In that case there are two characters, one glyph. Are you
>> saying that glyph should be either all blue or all not blue? Which one?
>
> Good question, which I don't know the answer to. I would think "not all
> blue". What do you suggest? Stick to character level, not glyph level?
Probably, yes. That's what Gecko does for selections that only cover
part of a ligature...
I'm not sure there's a perfect solution here.
>> What if "bar" is split over two adjacent textnodes in the DOM?
>
> Forgive my ignorance, but when does that happen?
Simple example #1:
<!DOCTYPE html>
<body>
<script>
document.body.appendChild(document.createTextNode("ba"));
document.body.appendChild(document.createTextNode("r"));
</script>
Simple example #2:
<!DOCTYPE html>
<body>
ba<!--comment, so the textnodes aren't even quite
adjacent in the DOM-->r
Simple example #3:
<!DOCTYPE html>
<body>
ba<script></script>r
(again, not even adjacent in the DOM; user-perceived as one word.
Simple example #4, equivalent to the above:
<!DOCTYPE html>
<body>
ba<script>document.write("r")</script>
Example #5, that might depend on the exact parser algorithm used and
might not ever lead to multiple textnodes in an HTML5 parser but I think
does in some cases in existing parsers:
<!DOCTYPE html>
<body>bar
with an HTTP packet boundary between the 'a' and the 'r'.
Example #6, which depends on exact behavior still being hammered out in
the HTML5 spec:
<!DOCTYPE html>
<body><script>
document.write("ba"); document.write("r");
</script>
Example #7: editable content (designMode/contentEditable) can probably
lead to random textnode boundaries as text is inserted, then removed,
then edited, wrapped in tags, unwrapped from the tags, etc. I don't
think there's anything that specifies what the resulting DOM should look
like on the individual textnode level yet.
> Can they be treated as one?
Probably yes. The issue is deciding what cases to treat as one, in some
ways....
-Boris
Received on Monday, 4 January 2010 05:02:51 UTC