Added support for non-obstructive usage

Added support for non-obstructive usage, such as:

```
<input type="checkbox" id="accept">
<label for="accept">Accept!</label>
```

And

```
<label>
  <input type="checkbox" id="accept">
  Accept!
</label>
```