A text shadow is just a second rendering of the text, potentially in a different color, and optionally with a blur radius. We can't implement the blur without renderer support for blur filters. But we should be able to implement the rest of text-shadow by duplicating the text.