Emacs cannot warn you that a file does not contain text unless it either does open it (so that it can see what the contents are), or otherwise asks some other program to find out (perhaps using something like the Unix file command).
The problem with the latter approach is that Emacs can handle many kinds of binary file, so you would then need that external program to also know which kinds of binary file Emacs recognises, including support added by add-on libraries, which can vary dynamically and per-user.
I don't think there are any good options there.
What is it specifically that you are trying to avoid?