go to content | go to menu | przejdź do menu języków


Błędna interpretacja przez IE atrybutu alt w znaczniku img

Data:
10 sierpień 2007
Kategoria:
HTML i XHTML, Skrypty
Author:
Cezary Tomczyk

Internet Explorer w wersji 6 w znaczniku img atrybut alt traktuje również jako title. Alt jest do czegoś innego, niż pokazywanie krótkiej informacji w tzw. dymku. Alt funkcjonuje gdy:

  • obrazek się dopiero ładuje
  • z jakiś powodów obrazek nie może być wczytany, np. zły adres url do niego
  • masz wyłączoną grafikę
  • używasz przeglądarki tekstowej
  • używasz screenreadera (przeglądarki czytającej na głos)
  • wyszukiwarki przeszukują zasoby

Można temu zapobiec przez niewielki skrypt poprawiający ten błąd:

  1. function noAltTooltip(){
  2. images = document.getElementsByTagName('img');
  3. for (var i = 0; i < images.length; i++)
  4. {
  5. var title = images[i].getAttribute('title');
  6. var alt = images[i].getAttribute('alt');
  7. if ((document.all) && (alt) && (!title))
  8. {
  9. images[i].setAttribute('title', '');
  10. }
  11. }
  12. }
  13. // dodawanie zdarzen do funkcji
  14. function addEvent(obj, evType, fn){
  15. if (obj.addEventListener){
  16. obj.addEventListener(evType, fn, true);
  17. return true;
  18. }
  19. else if (obj.attachEvent){
  20. var r = obj.attachEvent("on"+evType, fn);
  21. return r;
  22. }
  23. else {
  24. return false;
  25. }
  26. }
  27. addEvent(window, 'load', function(){
  28. noAltTooltip();
  29. });

Powyższy skrypt najlepiej umieścić w komentarzach warunkowych dla IE. Przykład:

  1. <!--[if lte IE 7]><script src="iefix.js" type="text/javascript"></script><![endif]-->

Więcej informacji o funkcji addEvent znajdziesz na stronie Scott’a Andrew w artykule pt. Crossbrowser DOM Scripting: Event Handlers.

Następny lub poprzedni wpis

Twój komentarz

(required)
(required)




Szukaj