It called progressive enhancement. You test whether you have a feature and then code around it if you don't.
e.g. When createObjectUrl was a new thing. I ended up doing something using AJAX and doing some processing server side for IE and Edge. Now I could have done all the processing server-side. However 80%+ of the users use Chrome. So instead of checking everything on the server, I could offload 80% of that to the browser.
"Coding around it" means handling an additional error state, which can be in varying degrees of complexity depending on what the feature is doing for your app.
Yes, obviously.. It really depends on how much time you have, what browsers they care about supporting etc.
There is a tooling out there to assist you and most of the compatibility issues are well documented now. 10 or so years ago when I started that really wasn't the case.
e.g. When createObjectUrl was a new thing. I ended up doing something using AJAX and doing some processing server side for IE and Edge. Now I could have done all the processing server-side. However 80%+ of the users use Chrome. So instead of checking everything on the server, I could offload 80% of that to the browser.