works back to android 1.6 and ios 3, tested on browserstack