"Have you sung for her?"
Translation:Har du sjungit för henne?
so till is acceptable right? because he has sung a song specifically for her.
It's not really acceptable because it's used so rarely and in so specific contexts. Accepting it would be like accepting at in English here. Maybe we should change the English though, because they'd usually say to. We put for on purpose to try to help people avoid this mistake.
I wouldn't change it to 'to.' 'For' just has a different, equally acceptable and common meaning. When you sing 'for' someone, it means that you're doing it as a favor, or to make them feel better. Singing 'to' someone doesn't imply anything beyond the act itself.
Wouldn't "åt" be acceptable too? After all, we don't know what the original sentence means exactly, she may have lost her voice for an evening, or got a cold, or have been arrested for drink driving, and be unable to perform her show.
We think accepting that would not be helpful, since it would probably make people believe you could use the two interchangeably, which you really can't. The general idea is that if a sentence requires adding a less likely context and could give people the wrong impression, it won't be accepted.