Rocket League's approach to this is very good.
The D-pad is bound to several predefined words and phrases that are useful such as "Nice shot!" or "Great pass!". Because of the fast paced nature of the game it's pretty tough to try to abuse this system (maybe by spelling words with the first letters of allowed phrases?) but no one does that.
To appease the folks who wanted to express that they were using a curse word, you can also send "$#@%!". It's really satisfying to be able to express a curse when you accidentally send the ball flying towards your own team's goal, for instance.
Of course they also have straight up text chat where they asterisk out curse words and anything that might look like personal info such as phone numbers. If you're on a console, it's unlikely you even have a keyboard hooked up. And the text input system for controllers is just too slow to type anything worthwhile in the limited time you have during goal-replays. Typing anything more than a few words means you're not helping your team which is naturally shamed and can lead to a server kick.
It drastically reduces the toxic bigotry that usually pops up on extremely popular multiplayer games. The only exception is that people sometimes have bigoted usernames which are tougher to censor for the reasons mentioned in the article.
Anyway, while I do think it's an arms race of sorts, Rocket League has gotten about as close to possible to solving the issue.