Placing all the blame for American students' low level of knowledge compared to that of students from other countries on teachers and/or the government is silly. Not enough blame is placed on the students themselves. Unless a student has a severe learning disability or extraordinary stressors in their life, it is mostly their fault if they don't succeed in school. I myself did very poorly in high school, coming dangerously close to failing virtually every semester. I eventually did fail and didn't graduate with the rest of my class, having to take summer school to earn my diploma. But it was 100% my fault. I knew exactly what I had to do to succeed, and I had full access to every learning resource I could ever need, but I chose to be lazy and slack off instead. A healthy child who attends school every day and has access to the ridiculous amount of educational information freely available on the internet (or even a library card) should always be able to learn if they have the desire.
We today have access to an unprecendeted amount of information. Just having a library card gives you a huge learning advantage over people who lived just 100 years ago. When you take into consideration the fact that most American children today, even those from poor families, have access to the internet (and along with it, more free educational info. than a dedicated student from 100 years ago could even fathom), it doesn't make sense to say that a student who is healthy (mentally & physically), without extraordinary stressors, & literate is not learning because they are not given the opportunity to learn. In other words, a child who isn't even enrolled in school still has access to educational resources that a child from a century ago could only dream of. With the added benefit of regular schooling, most children have every opportunity to learn. If they aren't, it's probably an issue of motivation. The root of the issue could be personal, parental, societal, or a combination of the 3.