I've already tried this, but there are two major problems:

1. The additional `touchend` listener. `touchend` will always be fired *before* `mouseup` in Safari, so we cannot set the focus inside it. Also, `touchend` is fired even when you stop scrolling, but that's a relatively minor problem compared to the former.
2. Adding *another* `mouseup` listener. Common sense would suggest that the order of execution event listeners for the same event would be the same as their order of subscription. But no, this is unreliable in safari, the second subscription executed first.