As you may have noticed, it doesn’t work for some elements, such as pseudo element lik :before. It can be done but that would require much more efforts. The fonts wouldn’t have such problems, you simply override all element’s font-family and that should be it. Also, the redaction isn’t revertible, but the font approach is.

You may also notice that the length of text has changed. That’s because every character has the same width as FULL BLOCK. I believe this would also happen on font approach, just it may be less noticeable. If combining character had redaction, then this JavaScript approach would be perfect with such character, because there would not be any length difference.

The images ain’t redacted, either. It is easy to use some “image placeholder” services to replace them, but I am not up to do that since redact.js is just for quick fun.