Add range input support and feature detect module

`s` variable name could be more descriptive