En iOS8 Safari, las inputs readonly se manejan incorrectamente

En Safari, iOS8, centrarse en una date o una input de time abre el selector de date o hora y permite editar el contenido de la input de solo lectura.

Cuando se centra en una input de text, aparece una barra de herramientas en la parte inferior con los botones Anterior, Siguiente y Listo, y no desaparece hasta que se toca Hecho, u otra input en la página se toca.

Cuando la input se enfoca de manera programática desde Javascript, no sucede nada, pero: si se agrega un escucha de events touchstart a alguna parte de la página, al tocar en cualquier lugar aparecerá la date, el selector de time o la barra de herramientas, incluso si el oyente está vacío .

Código de muestra:

<input id="test1" readonly /> <input id="test2" type="date" readonly /> <input id="test3" type="time" readonly /> <script> document.getElementById('test1').focus(); window.addEventListener('touchstart', function () {}); </script> 

Ejemplo en vivo: http://jsfiddle.net/cw3hump4/embedded/result/

¿Alguna idea o solución alternativa sobre cómo evitar esto?

ACTUALIZAR:

Por motivos de usabilidad / accesibilidad, necesito una gestión de enfoque: al tocar la input se abre un cuadro de dialog, cuando se cierra el cuadro de dialog, vuelvo a poner el foco en la input. La input debe ser de solo lectura, para evitar que el keyboard suave / el selector de date / selector de time aparezca, pero no se puede deshabilitar, por lo que puedo establecer un valor y enfocarlo.

Creo que este es un error en Safari iOS8

Aquí está la solución con jQuery.

 $(function() { $('input[readonly]').on('touchstart', function(ev) { return false; }); }); 

EDITAR:

¿Qué tal esto?

 $(function() { $('input[readonly]').on('focus', function(ev) { $(this).trigger('blur'); }); }); 

Intente envolver los elementos de input en un elemento de formulario, como

 <form><input id="test1" readonly /></form> <form><input id="test2" type="date" readonly /></form> <form><input id="test3" type="time" readonly /></form> 

Ios8 no le gusta que los elementos de input no estén envueltos en un elemento de formulario, parece ser un error en ios8.