Here’s a handy tool for determining if your colors have high enough contrast: https://leaverou.github.io/contrast-ratio/
A big part of this is the result of this weird idea that you should never use black (interestingly, that site just barely meets the W3C contrast requirements for that size text).
Low contrast text is not just a problem for people with bad vision. It’s also a big problem when you are using older monitors. A lot of sites look fine on my MBPr but then when I view them on my old LCD monitor they are almost entirely unreadable. So make sure you review your design on a non-retina screen!