Every company I've ever worked for at the very top level of management says all the right things. At the same time I've personally witnessed hiring practices that excluded people who didn't fit the mold, - some applications being rejected based solely on fact the applicant's name wasn't "American" enough. The latter was for a technical position. I reported it and soon left. I doubt much was done because the hiring manager was on the fast track to move up in that organization.
I don't think a company's level of diversity has to exactly match the larger community's but clearly the numbers at these tech firms are completely lopsided. I'm not blaming them necessarily but yes I think they could and should do more. That doesn't mean hiring people who aren't qualified but it might mean doing more than looking at the pool of applicants that comes to you, you may have to find them. For example, they could start apprenticeship programs to train people with potential rather than only choosing from among those who could afford college.
On the bright side many of these same companies are promoting programs to get a more diverse pool of people into the necessary academic training.
If we as a society don't do these things, zip code, ethnicity, and even gender will play too a large a role in determining who becomes a "have" vs a "have not"