I'm a recruiter.
I've known for a long time it drives people nuts that job ads don't have salary, or have a wide salary range.
The fact is that many employers don't actually know what they would be willing to pay someone. Until they have met them, assessed them, heard what they salary target is and weighed it up against their skills and experience and calibrated it against the team.
The conversation almost always goes like this: Employers come to me and say "we want a great senior C# .NET developer". I say "what do you want to pay?". They say "don't know, we just want someone great, what do you think we need to pay to get the right person?". I say "I think it will be about $X, but lets put a job ad up and indicate it's top of range $ and see who we get."
It is also true that a single job ad might be aiming to employ a number of people at various positions of seniority and experience.
Government agencies are required to carefully define salary ranges because that is the way they work. So it does not surprise me that governments would legislate to require job ads to do the same - essentially because of ignorance about how the world works.
If it makes you mad that job ads do not list salary, then there are good reasons and you will just have to get over or it not apply for that job.
It's that easy - if the ad doesn't specify salary and that is a key requirement for you, don't get angry, just don't apply.
Being angry about it or feeling that employers/recruiters are playing some sort of manipulative game is ignoring the reality set out above. And when you come into a position that requires recruiting, likely you'll speak to your recruiter and say "what do you think we'll need to pay for someone like this?".
Far more important is to know the salary target that you are aiming for.
EDIT: lots of unhappy responses to this, but don't shoot the messenger. Go ask your team lead/CEO/CTO how recruiting works.