Hi,
I disagree with Richard's solution here. I ran into this problem recently and reached out to the Kentico support. Luckily there is a solution to this without writing a custom form control.
First of all, Kentico accepted this as their bug. Checkbox control will generate its own label tag, so you don't need to be worried about it. The problem comes that it generates an empty code " " inside the label tag. I also faced issues regarding accessibility because of this auto-generated tag with " ". That is where we ran into this problem for the first time.
So here is the solution for this. I am quoting here Solution by their Support Engineer Eric Dugre. Eric helped me get this solution.
I've heard back from the developers, and this additional label is intentional. There is no way to change the text by default, but you can do this without any code changes necessary.
To define this text, open the Form Controls module and edit the "Checkbox form control". In the Properties tab, add a new property with field name "Text"(It has to be text, no other name will work). You can add any Field Caption you would like. This property will now appear in the field definition in the Forms module, and the text that you enter in this field will render in the additional label.
That's it. Using this approach, you should not use a separate label tag as form control will generate it own its own.
I hope this helps. We have this solution running on one of our websites, so I know this is a correct solution.
Cheers,
Chetan