2009-11-14 15 views
5

No quiero repetir el texto alternativo en el título otra vez? ¿Es esto posible con cualquier javascript, jquery, css solution? o cualquier solución que pueda deshabilitar para mostrar alt = text y habilitar title = texr y como información sobre herramientas?¿Hay alguna manera de mostrar alt = "text" como una información sobre herramientas mouseover en Firefox como IE lo hace automáticamente?

+7

Este es un error de Internet Explorer para mostrar el texto alternativo como información sobre herramientas. (Microsoft puede llamar a esto una función, pero el texto alternativo solo debe mostrarse cuando la imagen no se puede mostrar). – Gumbo

Respuesta

23

alt El texto es para una representación alternativa representación de una imagen. title texto es para información sobre herramientas.

El comportamiento de IE es incorrecto en este sentido, y Firefox nunca lo implementará. (El error en la base de datos Bugzilla es #25537, que se verifica WONTFIX.)

No sólo eso, sino que incluso Microsoft has admitted that their behavior is incorrect, y IE 8 no muestra alt texto como información sobre herramientas más!.

Así que no confíe en alt texto que se muestra como una información sobre herramientas. Use title en su lugar.

+0

lo sé, pero no quiero repetir el texto alternativo como texto de título nuevamente y quiero mostrar información sobre herramientas sobre el mouse en ambos navegadores. –

+4

@Jitendra: No deberías repetir el texto 'alt' para el' título' de todos modos. El texto 'alt' debe ser lo que desea que los usuarios vean si ** no pueden ** ver la imagen, mientras que' title' debe ser para la información sobre herramientas. Si tiene tanto 'alt' como' title' definidos en su HTML, IE usará 'title' para el tooltip. Entonces, si solo quieres un elemento para todos los navegadores modernos, usa 'title', no' alt'! –

19

La forma correcta de hacerlo es usar el atributo title.

p. Ej.

<div title="This is your tooltip">...content...</div> 

El atributo "alt", sólo está diseñado para proporcionar un texto "alternativo", cuando se utiliza un elemento de imagen (pero no estará disponible para el usuario ... por ejemplo, los usuarios ciegos, o los usuarios con navegadores basados ​​en texto, etc.)

+0

¿acabas de decir que los usuarios ciegos no pueden ver la imagen pero pueden ver el texto Alt especificado? : o –

+5

@Rakesh Juyal: los usuarios ciegos tendrán un software lector de pantalla. Los lectores de pantalla pueden leer ** texto **, pero no imágenes. –

+0

@Daniel: gr8 nunca lo supe gracias a +1 –

4

Como dice scunliffe, la forma correcta de hacerlo es en el atributo title. Es mejor cumplir con el estándar que confiar en el comportamiento no estándar de IE. Tenga en cuenta que el atributo de título es para información sobre herramientas para los usuarios que pueden ver la imagen, el texto alternativo para los usuarios que no pueden (aunque también pueden ver el título). Si esto realmente te molesta, puedes usar javascript para establecer los atributos de título en los atributos alt para todas tus imágenes, lo que te da un efecto de navegador cruzado. : D

algo como esto:

var images=document.getElementsByTagName("img"); 
for (var item in images) { 
    item.title = item.alt; 
} 

O (estilo DOM W3)

for (var item in images) { 
    item.setAttribute("title", item.getAttribute("alt")); 
} 

OR (jQuery)

$("img").each(function() { this.attr("title", this.attr("alt")); } 

(no han probado cualquiera de estos todavía , por lo que puede ser necesaria una ligera modificación)

+5

Reutilizar el texto 'alt' para el atributo' title' es una mala idea para la accesibilidad. Prácticamente no hay ningún caso donde el mismo texto sea apropiado para ambos. –

+0

Este fue uno de mis primeros puntos en decir al escribir esta respuesta, pero no pude pensar en un buen ejemplo. ¿Podrías proporcionar uno? : D –

+0

ninguno de estos está funcionando –

1

Tenga en cuenta que el usuario puede suprimir title información sobre herramientas de atributos en Firefox configurando el parámetro de configuración avanzada browser.chrome.toolbar_tips en false.

+0

Pero luego no obtienes ningún tipo de información sobre herramientas, que no es lo que OP quiere. –

1

Este script jQuery tooltip tomará los contenidos del título y los mostrará en una información sobre herramientas (incluido el formato HTML). Aunque no soluciona el error IE de mostrar el texto alternativo, puede agregar un script para borrar el atributo alt después de cargar la página; pero como se dijo anteriormente, esta es una mala idea, ya que no permitirá que los lectores de documentos funcionen según lo planeado.

+0

No quiero eliminar el texto alternativo de la fuente. Quiero usar el texto del título como información sobre herramientas en todos los navegadores –

0

respuesta de Gordon era servicial, pero la razón por la que jQuery no funcionó es porque this ha de ser el objeto de un selector de jQuery, así:

jQuery("img").each(function(){ jQuery(this).attr("title",jQuery(this).attr("alt") ) });

También faltaba el ) para cerrar la función .each().

Cuestiones relacionadas