switch {
        case bytes.HasPrefix(text, []byte("[ ] ")):
-               text = append([]byte(`<input type="checkbox" disabled class="task-list-item">`), text[3:]...)
+               text = append([]byte(`<label><input type="checkbox" disabled class="task-list-item">`), text[3:]...)
+               text = append(text, []byte(`</label>`)...)
 
        case bytes.HasPrefix(text, []byte("[x] ")) || bytes.HasPrefix(text, []byte("[X] ")):
-               text = append([]byte(`<input type="checkbox" checked disabled class="task-list-item">`), text[3:]...)
+               text = append([]byte(`<label><input type="checkbox" checked disabled class="task-list-item">`), text[3:]...)
+               text = append(text, []byte(`</label>`)...)
        }
 
        r.Renderer.ListItem(out, text, flags)
 
 `, true, `<p>TODO:</p>
 
 <ul class="task-list">
-<li><input type="checkbox" checked disabled class="task-list-item"> On1</li>
-<li><input type="checkbox" checked disabled class="task-list-item"> On2</li>
-<li><input type="checkbox" disabled class="task-list-item"> Off</li>
+<li><label><input type="checkbox" checked disabled class="task-list-item"> On1</label></li>
+<li><label><input type="checkbox" checked disabled class="task-list-item"> On2</label></li>
+<li><label><input type="checkbox" disabled class="task-list-item"> Off</label></li>
 </ul>
 
 <p>END</p>
                {`* [ ] Off
 
 END`, true, `<ul class="task-list">
-<li><input type="checkbox" disabled class="task-list-item"> Off</li>
+<li><label><input type="checkbox" disabled class="task-list-item"> Off</label></li>
 </ul>
 
 <p>END</p>