It's the responsibility of the traffic engineers to make sure the yellow light is long enough to accommodate reasonable braking time and distance for all of the traffic that can be on the road, travelling at the posted speed limit. They can lower the speed limit, increase the yellow light duration, or put up a sign limiting the max vehicle weight.
It's not reasonable to expect every driver to know detailed information like yellow light times for every intersection and section of road.
It's a big enough problem that there's a group trying to do something about it.
http://shortyellowlights.com/standards/
EDIT: according to the link, the yellow light for a 55 mph road should last 6 seconds.
Chicago was caught making their yellow lights purposely short on some intersections to make more money.
It's similar to icy roads. If you go the normal speed limit and you slide into another car, it's your fault. The fact that the speed limit was higher than your speed doesn't release the driver from responsibility.