2012-10-09 15 views
22

estoy usando jQuery autocompletado en un div, pero estoy recibiendo este lapso extra añadido automáticamente por jQueryjQuery UI autocompletar añadiendo un lapso

"<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">search test</span>" 

¿Cómo puedo evitar que este lapso se creen?

Respuesta

6

Por razones de accesibilidad, las personas ciegas pueden "leer" la cantidad de resultados que se encuentran. Si realmente desea eliminar esto, puede modificar el código fuente:

this.liveRegion = $("<span>", { 
       role: "status", 
       "aria-live": "polite" 
      }) 
      .addClass("ui-helper-hidden-accessible") 
      .insertAfter(this.element); 

Pero no es recomendable.

+0

cómo puede cegar la gente lee? esto no tiene ningún sentido –

+4

para personas ciegas, 'leer' en realidad significa 'escuchar', por algunas herramientas :) – jiguang

+2

Además de las aplicaciones de software de lector de pantalla que convierten el texto en voz sintetizada, hay pantallas en Braille que muestran una página 40 (u 80) caracteres a la vez, secuencialmente. http: //en.wikipedia.org/wiki/Refreshable_Braille_display – Ubuntourist

42

Tengo el mismo problema. así es como he resuelto ... Añadir regla CSS:

.ui-helper-hidden-accessible { display:none; }

+1

esto funcionó para mí. Tengo una pregunta sobre por qué sucede esto (¿por qué aparece este lapso y se vuelve visible con los valores devueltos de autocompletar)? simplemente me sucedió de repente. No sucedió antes. –

+1

Tal vez sea porque actualizas jQuery UI a una versión más nueva. –

+2

Acabo de actualizar a las últimas versiones de JQ, incluida la interfaz de usuario, y comenzó después de actualizar. Curiosamente, la versión anterior con la que estaba trabajando no hizo esto. – TH1981

1

que estaba usando cuadro de flexión CSS para la disposición de los selectores de nth-child, por lo que, este lapso distorsionada mi diseño de columna.

display: none o position: absolute; top: -999999 no resolveré mi problema. Tuve que quitar el elemento del DOM por completo, por lo que, escribí lo siguiente create event manejador:

create: function (e) 
{ 
    e.target.parentElement.removeChild(e.target.parentElement.querySelector(".ui-helper-hidden-accessible")); 
} 
2

Usted puede deshacerse de ella mediante la adición de este controlador de eventos a su autocompletar:

$(element).autocomplete({ 
    ... 
    create: function (e) { 
     $(this).prev('.ui-helper-hidden-accessible').remove(); 
    } 
}); 

Hay no hay daño en eliminarlo a menos que te importe que las personas ciegas accedan a nuestra página. Probé el truco display: none pero eso no funcionó para mí.

0

que realmente no debería eliminar esta (¿desea navegar por una página web que es sólo para las personas ciegas y no se puede acceder al contenido?) ...

no es fácil hacer una sitio web compatible con ada. este lapso es solo una pequeña parte de todo eso.

ocultar elementos con pantalla nada o nada es una mala práctica con respecto a ada. por eso páginas como Facebook esconden algunos elementos aplicándoles sangría a algún lugar fuera de la pantalla:

display:none vs visibility:hidden vs text-indent:9999 How screen reader behave with each one?

para la materia relacionada ada usted podría comenzar aquí: http://www.techrepublic.com/blog/web-designer/creating-an-ada-compliant-website/

tal vez forzando la altura a 0 puede haber de uso en este caso ...

-3

esto funcionará perfectamente:

$(document).ready(function(){ $("span").remove(); }); 
+1

eliminará todos los elementos span en 'HTML DOM' con esta respuesta –

0

Adición de archivos .css trabajado para mí (y por supuesto la eliminación de todos los elementos span trabajaron también, pero eso no es una buena solución):

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" /> 
Cuestiones relacionadas