They weren't designed to be complementary from the start. So, these languages had different origin. Only after a while it turned out that the stack of HTML/CSS/JS make sense together.
This is a very good point. Sometimes I wish that the commenting was the same, but then I remember that these technologies / languages were created at different time periods and all "technically" run in different contexts - which works to explain the differences.