Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    javascript e accessibilità

    ho un menu con sottomenu, le sottovoci nn devono essere visibili se nn cliccando sulla prima voce di ogni sottomenu

    per via dell'accessibilità ho pensato bene di impostare nel
    css -> visibility: visibile del sottomenu e modificarlo con una funzione in js ricahiamta al caricamento della pagina.
    Questa funzione appunto cambia lo stile al sottomenu con un display:none

    purtroppo fare un elenco dei tag <ul> verificare che siano quelli corretti e appliccare il nuovo stile sembrava un operazione laboriosa tanto che avveniva con un certo ritardo oppure con la sovrapposizione dei[*] e poi una correzione di questa vista.

    Ho pensato di risolvere partendo con un display:none dal css e cambiarlo su richiesta con js

    chi avrà js disabilitato nn potrà vederli se nn disattivando lo stile della pagina


    c'è un modo per aiutare js a svolgere il lavoretto all'onload senza crearmi quei disagi sopra descritti?

  2. #2
    non capisco il nesso accessibilità e style.display = 'none' ... casomai si tratta di JS non intrusivo (qualcuno dice pagina in grado di degradare ... )

    comunque sia posta un esempio così magari capiamo meglio qual'è il problema e come risolverlo
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    all'inizio facevo questo (rendevo invisibili i sottomenu con js, in modo che se fosse stato disabilitato js, le voci fossero ugualmente visibili)
    window.onload = function () {
    var lis = document.getElementsByTagName('ol');
    for(var i=0;i<lis.length;i++){
    if(lis[i].className == 'sub'){
    lis[i].style.display="none";
    lis[i].style.visibility="hidden";
    lis[i].style.height="0";
    }
    }

    }


    visto i problemi di lentezza del giro allora lo sistemo direttamente dallo stile

    #menuS ol.sub {
    width:200px;
    display:none;
    margin:0;
    padding:2px;
    list-style:none;
    }

    proprio ieri per puro caso ho visto il menu da un pc in cui il browser aveva disabilitato gli script
    e .. potete immaginare

  4. #4
    ho letto gli articoli sul javascript nn intrusivo e ho risolto in modo tale che nn ci fosse javascript nella pagina

    ora la cosa strana è che funziona tutto ma mi da un errore
    vi riporto prima il codice e poi vi dico l'errore

    function Show(obj){
    if(document.getElementById && document.createTextNode){
    if(obj.style.display == 'none' ){
    obj.style.display="block";
    return;
    }else if(obj.style.display != "none"){
    obj.style.display="none";
    return;
    }
    }
    }


    function arrayElement(){
    if(document.getElementById && document.createTextNode){
    var ol = document.getElementsByTagName('ol');
    for(var i=0;i<ol.length;i++){
    if(ol[i].className == 'sub'){
    Show(ol[i]);
    ol[i].parentNode.onclick=function(){
    for(var i=0;this.childNodes.length;i++){
    if(this.childNodes[i].className && this.childNodes[i].className == 'sub' ){
    Show(this.childNodes[i]);
    }
    }
    }

    }
    }

    }

    }

    window.onload = function () {
    arrayElement();
    }
    l'errore è

    this.childNodes[i].className è nullo o nn è un oggetto

    nn capisco l'errore
    qualcuno mi può aiutare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.