Неудачный дизайн — это тот, который не справляется с возложенной на него задачей. При этом иногда нужно чтобы буквы плохо читались и не было контраста. Если вы про сайт на котором мы с вами находимся, то еще не вечер. Он будет значительно изменен, если создатели будут работать над его развитием.
Бороться с этим нужно на этапе выбора разработчика. Ставьте такие условия изначально, чтобы ваш проект не подписывали. Нужно отметить что практика действительно общепринята в интернете. И если у вас например скромный бюджет вам будет сложно найти разработчика готового мириться с такими претензиями.