Text is normally one indivisible block, so you can't animate part of it. The fix is wrapping each character (or word) in its own <span> with JS, then applying a stagger animation across those spans. For text that wraps across lines, splitting by word is safer — splitting by character can throw off line-wrap reflow.
For accessibility, keep the original text available via aria-label, and mark the split spans aria-hidden.
When to use
Use it for a headline you want to emphasize once. On body copy it just gets in the way of reading.