Add `InputTagHelper`

- first part of #1245 (mostly needs tests)
nit: `special-case`