Doesn't `ls` behaves like this, printing in multiple columns when the output is a tty?
To use an analogy from web browsers, the equivaleny guideline would be asking websites not to detect features by reading the User-Agent, and using feature detection instead.