if no color set, use kCTForegroundColorFromContextAttributeName