At least for the latter there are regulations in place in the taxi market here in Europe.
Finally citizens can decide. Vote for politicians which going to make change injust law (or what we see as injust). This works at least sometimes. Homosexuality was a criminal offense in most countries forty years ago.