Matthias Scharwies: SELF-Wiki: zugängliches Dropdown-Menü

Beitrag lesen

Servus!

@@Matthias Scharwies

function dropdownExtension () {
	const submenus = document.querySelectorAll('nav li > ul');
	console.log(submenus)

Das sollte wohl raus.

    submenus.forEach(function (submenu) {

Ist eine einfache Schleife for(let submenu of submenus) nicht besser lesbar als forEach mit Funktion darin? (Und wenn man schon letzteres macht, bietet sich eine Pfeilfunktion an.)

      submenu.classList.add('geändert');
	  let button = document.createElement('button');

Nicht let, sondern const. Das gilt auch für die nachfolgenden.

	  button.setAttribute('aria-expanded','false')
	  let span   = document.createElement('span');
      let myText = document.createTextNode('Untermenü aufklappen');
      span.appendChild(myText);
	  span.classList.add('visually-hidden');
	  button.appendChild(span);
      submenu.before(button);
    });
}

Anstatt alle Element-, Attribut- und Textknoten einzeln zu generieren und in den Baum zu hängen, was aufwendig, schlecht lesbar und auch wenig performant ist, bietet sich an, das in einem Rutsch mit insertAdjacentHTML() zu machen:

submenu.insertAdjacentHTML('beforebegin', `
  <button aria-expanded="false">
    <span class="visually-hidden">Untermenü aufklappen</span>
  </button>
`);

Ja, viel besser!

Herzliche Grüße

Matthias Scharwies

--
Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
0 37

CSS Navbar ok oder gehts übersichtlicher?

JJ
  • css
  • programmiertechnik
  1. 0
    Matthias Scharwies
  2. 0
    Gunnar Bittersmann
    • inclusive design
    1. 0
      JJ
      1. 0
        Gunnar Bittersmann
        1. 0
          JJ
          1. 0
            Gunnar Bittersmann
            • css
            • inclusive design
            1. 0
              JJ
              • css
              • danke
              • inclusive design
              1. 0
                Matthias Scharwies
            2. 0
              Matthias Scharwies
              1. 0
                Matthias Scharwies
                1. 0
                  Gunnar Bittersmann
                  • aria
                  1. 0
                    Matthias Scharwies
                    1. 0
                      Gunnar Bittersmann
                      • html
              2. 0
                Gunnar Bittersmann
                • aria
                • html
                1. 0
                  Matthias Scharwies
                2. 0
                  Gunnar Bittersmann
                  1. 0
                    Matthias Scharwies
              3. 0
                Gunnar Bittersmann
                • html
            3. 0
              JJ
              1. 0
                Matthias Scharwies
                1. 0
                  JJ
                  1. 0
                    Matthias Scharwies
                    1. 0
                      JJ
                      1. 0
                        Auge
                        • css
                        • inclusive design
                        • meinung
              2. 0
                JürgenB
      2. 0

        SELF-Wiki: zugängliches Dropdown-Menü

        Matthias Scharwies
        • html
        • inclusive design
        1. 0
          JürgenB
        2. 0
          JJ
          • danke
          • html
          • inclusive design
          1. 0
            Matthias Scharwies
            1. 0
              Gunnar Bittersmann
              • javascript
              1. 0
                Matthias Scharwies
                1. 0
                  Matthias Scharwies
                  1. 0
                    Matthias Scharwies
                    • css
                    • javascript
                    1. 1
                      JürgenB
                    2. 1
                      Der Martin
                      1. 0
                        Der Martin
                        • menschelei