Took forever. I opened the github issue more than 5 years back. This implementation is solid though - full backwards compatibility with checkbox, stying support.
Considering the constraints, I think very well done safari. Please get the second implementor on board.