There are similar questions to this that have been asked on SO, but they're either only concerned with resolving their specific implementation, or they don't clearly ask this question. Additionally, none of the answers actually address the issue.
Given the following example:
document.querySelector('span').addEventListener('click', function(event) {
event.stopPropagation();
});
<label>
<input type='checkbox'/>
<span>Click Me!</span>
</label>
Why is this insufficient for preventing the checkbox from being checked when clicking the span?
Instead, it is necessary to call event.preventDefault() to prevent the label from checking (or unchecking) the checkbox. This seems counterintuitive. In this example, this implies that it's the clicking of the span itself that causes the checkbox toggling, not the click that then bubbles up to the label.