For me, this is an "unavoidable tragedy" where no one is truly at fault, but everyone shares some responsibility.
I can't put 100% of the blame on the driver. He was just doing his job based on the standard operating procedure. Garbage trucks are naturally loud and have a sealed design for the driver's safety and to prevent trash from spilling. If we expect him to check every bin before emptying it, it would not only take too long, but he would also be put at risk because of the dirt, broken glass, and chemicals inside the trash. He had no intention to hurt anyone.
On the other hand, we can't put all the blame on the 12 year-old boy either. He is still a child. In his mind, he was just playing hide and seek and wanted to win the game. He didn't fully realize that the trash bin he thought was a good hiding spot could actually cause his death.
So for me, the one who should really be held accountable is the system itself.
It is the responsibility of the city and the garbage company to create a safer system for example, a trash bin with holes in the lid so someone can breathe and be seen inside, or by having a camera and sensor on the truck. It is also our responsibility as parents and adults to constantly remind children that trash bins, streets, and other dangerous places are not toys.
What happened is very sad. No one wanted this. So instead of looking for someone to put in jail, it's better to make this a lesson so it will never happen again to another child.