так до этого и было:

Отменяем для button'a выставление фокуса, если this.domElem не <button> или <a>, 
а в аттаче копипастим логику выставления фокуса, только меняем цель на <input type="file"> и запускаем после того как button стригерил focus или blur

Это решение точно лучше?