The awkwardness here actually works in favour of abolishing tips and replacing them with the pay being factored into higher prices.
No one wants to be the sucker - human nature is that people are generous if they think everyone else is generous, but if they feel that others are not 'pulling their weight' on generosity and are instead taking advantage, that's the fastest way to dry up other people's generosity. Right-wing media use this fact to undermine support for social welfare - e.g. if 0.001% of welfare payments are fraudulently taken, they set editorial policy that makes it seem like beneficiaries are rorting the system instead of being truly needy.
But when it comes to tipping, the dynamic actually works the other way - people feel generous by tipping, even though it is harmful long term. If a few people ahead of someone in the line don't tip, should they be the sucker who does tip? And for the employee, you want them to be the advocate on the inside for forcing people to pay their share instead of taking advantage - by having the displayed price be the total upfront price that includes the compensation for employees, instead of an optional tip.
Traditionally legal tender means that a person / entity has to accept it for the payment of a debt - i.e. they can't refuse cash and say you didn't pay them because you didn't use some other method.
However, in many retail scenarios there is no debt - there is an exchange of payment for goods, and so the traditional common law legal tender rules do not prevent retailers from refusing that exchange (i.e. customer doesn't get the goods, retailer doesn't get the money, the transaction just never happens) on the grounds of payment methods.
Some places have additional laws on top of legal tender that might require retailers to accept cash.