I would argue that in London it's the fact that talking about salaries is considered rather taboo in tech that perpetuates non-disclosure. I wrote a post about it a while ago: http://blog.zonino.co.uk/on-salaries-in-london-startups/
It's still common practice in the US not to discuss salaries. Which is total BS because transparency on salary can only benefit the workers; the "taboo" nature of the discussion is perpetuated by big companies who try to discourage collective bargaining (btw, forbidding employees from discussing salaries with their co-workers is illegal in the US - despite what your employment contract may say).
I couldn't agree more. If we want more transparency from employers we (as engineers) should start with being transparent with each other. I had no idea that legislation existed in the US - that's really interesting!